问题标签 [smote]
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 - 过采样时如何保持/扩展索引
我有一个这样的数据框,我想对列“角色”进行过采样(在实际情况下,行/列的数量比这个最小的例子大得多)
这就是我正在做的事情:
它可以工作,但问题是我需要保留索引(pop_13vdpn1_site_1 等)这可能吗?
python - Defore 过采样数据显示 0
我正在研究我的数据集,对此我很陌生。下面是代码:
我正在尝试对我的数据集应用过采样,但是当我在过采样之前对其进行计数时,它在输出中显示为 0,但它确实显示数据集有数据:
下面是输出:
我正在尝试了解输出并进行处理。
python - 支持混淆矩阵
我有一个不平衡的数据集,我正在使用 SMOTE 算法对其进行平衡。在我打印混淆矩阵时进行过采样后,它显示了以下输出:
支持:'0' 91 支持:'1' 209
我有一个包含 1000 个标签的数据集 1 出现 700 次,标签 0 出现 300 次,我使用 0.3 作为测试数据,但为什么它显示我支持 91 和 209?
即使我不应用 SMOTE 算法,它也会显示 91 和 209,并且在应用 SMOTE 之后它是相同的。
r - R中的Smote函数
任何人都知道如何在我的情况下设置 perc.over 和 perc.under ?我尝试了几种组合,但并没有给我带来好的结果。我希望我的目标变量被分成几乎 50/50。我的训练集有 266776,我的目标变量在这个数据集中的当前比率是 88/12。这是我的代码。smoted_data <- SMOTE(响应 ~ ., data= train,perc.over = 100)
r - 如何在 R 中同时使用 smote 函数和 XGboost
有人知道如何在 R 中同时使用 smote 函数和 XGboost 吗?我先使用 smote 函数来平衡类,然后使用 XGboost 进行训练。但是,xgb.cv 函数中的参数之一是 label,它需要 as.matrix 类型,这意味着数据必须是数字。但是当我使用 smote 函数时,我将目标变量转换为因子,因为它是必需的。现在我不能使用xgb。
python - SMOTE - 无法将字符串转换为浮点数
我想我在下面的代码中遗漏了一些东西。
当我收到错误消息时
ValueError:无法将字符串转换为浮点数:---> 19 X_resampled, y_resampled = SMOTE().fit_resample(X_train, y_train)
数据示例是
我会考虑同时转换训练集和测试集以解决导致错误的问题,但我不知道如何同时应用于两者。我在谷歌上试过一些例子,但它并没有解决这个问题。
python - 出现错误:KeyError:“只有系列名称可用于系列 dtype 映射中的键。” 当尝试做 pandas Smote 算法时
我的数据有点不平衡,所以我在做逻辑回归模型之前尝试做一个 SMOTE 算法。当我这样做时,我收到错误:KeyError: 'Only the Series name can be used for the key in Series dtype mappings.' 有人可以帮我弄清楚为什么吗?这是代码:
谢谢!
python - 过采样后召回率高,精度低的问题
我有一个类别不平衡的分类问题,在过采样之后,我得到了很高的召回率、准确率和 roc(大约 0.85),而我的精度和 f1 相当低(0.50)。我使用了各种 smote 和欠采样,但我从未在精度和召回率之间取得某种平衡。我已经进行了一些参数调整,但是当我尝试提高精度时,我的召回率当然会下降。你对我如何在不影响召回率的情况下提高精度有什么建议吗?
machine-learning - 不平衡数据集的标记化
我正在处理我想用 doc2vec 转换的电子邮件内容数据集。这是一个带标签的数据集(垃圾邮件/非垃圾邮件),它是不平衡的(90-10 比率)。我的问题是:在标记电子邮件的内容时,我应该首先过采样(使用 SMOTE),还是可以按原样使用数据集?
scikit-learn - 无法将组合的 SMOTE 和 RandomUnderSampler 管道馈送到主管道
我目前正在使用不平衡数据集,为了处理不平衡,我计划将 SMOTE 和 ADASYN 与 RandomUnderSampler 结合起来,以及单独的欠采样、过采样、SMOTE 和 ADASYN(总共 6 种采样方式,我将作为参数传递在 GridSearchCV 中)。我为此创建了两个管道。
我的计划是将这两个管道输入主管道,如下所示:
FeatureTransformer()是一个特征选择器类:
当我调用Smote_Under_pipeline.fit()或Adasyn_Under_pipeline.fit()时,它可以工作(下面的示例代码):
但是当我当时尝试初始化Main_Pipeline时,解释器会抛出一个错误:
我正在使用Imbalance-learn提供的管道。
我无法理解错误。在使用 scikit-learn 管道时,所有中间估计器都有自己的fit()和fit_transform()方法,imblearn 管道提供了处理fit_resample()方法的额外功能,这两种方法都公开了:Smote_Under_pipeline和Adasyn_Under_pipeline。那么,它可以在Main_Pipeline中调用,那为什么会抛出错误呢?两个采样管道都暴露了fit()方法以及fit_resample(),这是原因吗?