问题标签 [oversampling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 如何在管道中重新采样文本(不平衡组)?
我正在尝试使用 MultinomialNB 进行一些文本分类,但我遇到了问题,因为我的数据不平衡。(为简单起见,以下是一些示例数据。实际上,我的数据要大得多。)我正在尝试使用过采样对数据进行重新采样,理想情况下我希望将其构建到此管道中。
下面的管道在没有过度采样的情况下工作正常,但同样,在现实生活中我的数据需要它。这是非常不平衡的。
使用此当前代码,我不断收到错误消息:“TypeError:所有中间步骤都应该是转换器并实现拟合和转换。”
如何将 RandomOverSampler 构建到此管道中?
machine-learning - 训练 ML 模型的正确顺序是什么?
我有一个包含不平衡的多类因变量的数据集。我想知道训练模型的正确顺序是什么:
1)标准化-过采样-traintestsplit
2)traintestsplit-标准化-过采样
3)traintestsplit-oversampling-standardizing
python - 如何过采样以修复时间序列数据中的类别不平衡?
我有一个每小时频率的时间序列和每天的标签。我想通过过采样来解决类不平衡问题,同时保留每一天的序列。理想情况下,我可以使用 ADASYN 或其他比随机过采样更好的方法。以下是数据的样子:
我想使用 ADASYN 或 SMOTE,但即使是随机过采样来修复类不平衡也会很好。
期望的结果是像原始的一样以小时为增量,每天有一个标签,并且类是平衡的:
python - 在 Python 3 中对数据框进行过采样并保留其统计属性的最佳方法是什么?
我有以下玩具df:
这只是一个示例。原来有超过 1200 行。对其进行过采样以保留其统计特性的最佳方法是什么?
我用谷歌搜索了一段时间,我只遇到了不平衡类的重采样算法。但这不是我想要的,无论如何我对平衡数据不感兴趣,我只是想以或多或少保留原始数据分布和统计属性的方式产生更多样本。
提前致谢
r - 是否有可以使用连续和分类特征进行 SMOTE 的包或功能?
我有一个不平衡的数据集,其中包含一个分类因变量和连续分类的特征变量。我知道 DMwR 包中的 SMOTE 函数只能处理连续特征。是否有包可以处理 Chawla在他的论文中描述的分类和连续特征?
python - IPython 内核 Jupyter Notebook 中的多核处理真的可以加快执行时间吗?
我在 python3 jupyter notebook 上运行数据集过采样代码:-
片段
但这需要太长时间才能执行。当我检查系统监视器时,它显示只有一个 CPU 核心正在以 100% 的容量使用。
所以我研究了如何使用所有可用的内核。
机器规格
我的机器相当强大,有 6 个核心。
Jupyter 功能:IPCluster
值得庆幸的是,笔记本电脑具有使用多个内核的功能。我运行并测试如下: -
在 Ubuntu 终端中:-
安装 ipyparallel 模块
运行集群
在 Jupyter 笔记本中:
案例一:使用睡眠
单核
输出多核
输出观察
多核差别不大。差不多5秒。因此不同的测试用例
测试用例 2:带循环
单核
输出多核
输出观察
同样,差别不大,几乎只有 8 秒。
问题
- 多核处理真的有助于加速指令执行吗?
- 否则,如何使我的代码片段
SVMSMOTE fit_resample()
运行得更快?
python - 如何避免 SMOTE 功能名称不匹配?
我正在构建一个 GBM 来计算可能性非常低的东西,并且我的模型的性能与具有我的特征的随机数一致(即很糟糕),所以我试图使用 Smote 来克服我的结果的支配地位(98.55% 0, 1.45 % 1)。
这里的解决方案似乎暗示我的问题来自不是数组的类型,但我的代码暗示它是。
我的数据如下所示:
我做了一个火车测试拆分
当我适合我的模型时,它可以工作
但是,如果我使用
然后改装我的模型并使用
然后我得到
我希望能够使用我更新的模型进行预测
我是否误解了 SMOTE 的工作原理?我没有正确应用它吗?
python - 如何在使用 SMOTE 进行过采样时修复样本 < K-neighbours 错误?
我正在为 11 个标签设计一个多类分类器。我SMOTE
用来解决抽样问题。但是我面临以下错误:-
SMOTE 错误
错误
为什么它说我只有 1 个 n_samples?
当我为 100k 行(并且只有 4 个标签)的更小的数据集尝试相同的代码时,它运行得很好。
有关输入的详细信息
输入参数
X_f
Y_f
输入参数的维度
我尝试使用其他imblearn
包装技术
调试 SMOTE fit_resample() 方法我知道 SMOTE 通过使用少数数据点的最近邻居之间的欧几里德距离来合成少数样本来工作。所以我打印出 ../python3.6/site-packages/sklearn/neighbors/base.py 文件中的 n_samples 变量。它显示样本从 5236 -> 103 -> 3 稳步减少,然后我得到了错误。我不明白发生了什么事。
- 使用
SVMSMOTE
:- 计算时间太长(超过 2 天),并且 PC 崩溃。 - 使用
RandomOverSampler
:- 模型的准确率很差,为 45% - 使用不同的
sampling_strategy
:-minority
仅适用于。 - 此处和此处提供的建议也未成功。老实说,我无法理解他们。
- 当我将数据集减少到 100k、1k 和 5k 行时,收到了同样的错误。
尽管尝试了,但我对它的了解并不多。我是采样的新手。你能帮我解决这个问题吗?
python - 过采样类不平衡训练/测试拆分“发现样本数量不一致的输入变量”解决方案?
尝试按照本文对不平衡分类执行过采样。我的班级比例约为8:1。
https://www.kaggle.com/rafjaa/resampling-strategies-for-imbalanced-datasets/notebook
我对管道+编码结构感到困惑。
- 您应该在训练/测试拆分后过度采样吗?
- 如果是这样,您如何处理目标标签从 X 中删除的事实?我尝试保留它,然后执行过采样,然后在 X_train/X_test 上删除标签并替换我的管道中的新训练集但是我得到错误“找到具有不一致数量的样本的输入变量”,因为形状不一致,因为新的结束-sampling df 以 50/50 标签分布加倍。
我理解这个问题但是当想要执行过采样以减少类不平衡时如何解决这个问题?
r - 平衡数据与分类变量时 Rose 抽样中的错误
我试图平衡我的数据,其中多数类的比例为 99%,而稀有类的比例为 1%。我的响应变量是二进制的,我的自变量是二进制、整数和分类变量。
我正在使用 ROSE 包的 ROSE 函数,但出现以下错误:“rose.sampl(n, N, p, ind.majo, majoY, ind.mino, minoY, y, classy, 中的错误:当前实现ROSE 只处理连续变量和分类变量。”
我知道错误是由于我的自变量造成的,但我无法弄清楚这个错误的主要原因是什么以及如何解决它。你有遇到过这样的错误吗?