问题标签 [imblearn]
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.
machine-learning - 过采样:SMOTE 参数“比率”
jupyter notebook 让我出错:
init () 得到了一个意外的关键字参数“比率”
我的代码:
smote = SMOTE(ratio = 'minority', random_state=10)
也可以试试:
smote = SMOTE(ratio = 0.5, random_state=10)
但它给了我同样的错误信息。
如何解决这个问题?谢谢。
machine-learning - 如何在 Imblearn 中获取已创建样本的索引
我在包含约 55800 个样本的数据集上使用不同的imblearn过采样方法。大约 200 个是 1 类,其余是 0 类。我正在使用各种过采样策略对 1 类进行过采样。
它不会提高我的模型质量,因此我不想仔细查看生成的样本。但是如何访问它们?有什么方法可以获取创建的索引吗?
在采样之前和之后循环遍历示例列表,过滤掉非重复项,这要求太高了,并且冻结了我的笔记本电脑。
keras - 不平衡为> 2维数据学习“balanced_batch_generator”
我正在使用不平衡学习的“balanced_batch_generator”来尝试对具有 4 维的图像数组执行欠采样。我运行了下面的代码:
并得到以下错误:
我知道这个函数不接受> 2维数据但是我想知道是否有解决这个问题的方法。我会通过手动拆分数据自己执行欠采样/过采样,但是我想利用 keras 很好实现的功能,例如NearMiss
智能地对我的数据进行采样。
python - 导入 ADASYN 的问题
我尝试在我的 MAC 上导入 ADASYN。但这里有一些我无法解决的问题。我的代码:
from imblearn.over_sampling import ADASYN
问题是:
machine-learning - RandomOverSampler 条件创建均等分布
我目前正在从事一个基于 ML 的项目,我的数据存在轻微的不平衡,需要过度采样技术。特征 (X_train) 维度是 (90664, 190),目标 (Y_binary_train_trans) 是 (90664, )。但是,代码运行并仍然输出相同的、不均等的目标分布。这是用于 RandomOverSampler 的代码,它也已尝试使用 smote;
machine-learning - 针对类不平衡结合重采样和特定算法
我正在研究一个多标签文本分类问题(目标标签总数 90)。数据分布有一个长尾和大约 1900k 条记录。目前,我正在研究具有相似目标分布的大约 10 万条记录的小样本。
一些算法提供了处理类不平衡的功能,如 PAC、LinearSVC。目前,我也在做 SMOTE 来为除多数和 RandomUnderSampler 之外的所有样本生成样本,以抑制多数类的不平衡。
同时使用算法参数和 imblearn 管道来处理类不平衡是否正确?
machine-learning - scikit-learn 和 imblearn:GridSearchCV/RandomSearchCV 是否也将预处理应用于验证集?
我目前正在将 sklearn 用于学校项目,我对 GridsearchCV 如何应用预处理算法(如 PCA 或因子分析)有一些疑问。假设我执行了坚持:
然后,我声明一些超参数并执行 GridSearchCV(它与 RandomSearchCV 相同,但无论如何):
我的问题是:我的老师告诉我,在 ak fold cv 的情况下,你永远不应该在验证集上拟合预处理算法(这里是 PCA),而只能在火车分割上(这里火车分割和验证分割都是 X_tr 的子集,当然它们每次折叠都会改变)。因此,如果我在这里有 PCA(),它应该适合用于训练模型的折叠部分,最终当我针对验证拆分测试结果模型时,使用获得的 PCA 模型对其进行预处理,使其与训练集相匹配。这确保了无论如何都不会泄漏。
sklearn 是否考虑到这一点?
如果确实如此:假设现在我想使用 imblearn 对不平衡集执行过采样:
仍然根据我的老师的说法,您也不应该对验证拆分执行过采样,因为这可能会导致不准确的准确性。所以上面关于 PCA 的关于在第二时刻转换验证集的声明在这里不适用。sklearn/imblearn 是否也考虑了这一点?
提前谢谢了
gridsearchcv - 使用 imblearn 管道和 SMOTE 降低分数
我有一个管道:
而 best_score_ 是 0.9981313067607172
但是,如果我从管道中排除重新采样并在外部执行它:
而且我(在多次运行中)得到了更好的结果:0.9999888503305302
在管道外部使用重新采样有什么区别?
python - 如何过采样 3d 数组?
我试图根据 2 个特征来预测新闻文章的类别:作者姓名和文章标题。
我使用 CountVectorizer 和 TfidfTransformer 分别转换了两列。因此,我现在拥有的是一个 3D 数组(即数组列表的数组),每一行包含每个数据实例的 [author_tfid, summary_tfid]:
但是,当我尝试使用 imblearn 的 RandomOversampler.fit_transform(X_train) 时,出现以下错误:
尝试搜索论坛和谷歌,但似乎找不到任何有这个问题的人。所以想找出对 3D 数组进行过采样的错误/正确方法。
python - SMOTE 为所有分类数据集提供数组大小/ValueError
我正在使用 SMOTE-NC 对分类数据进行过采样。我只有 1 个功能和 10500 个样本。
运行以下代码时,我收到错误:
代码:
如果我理解正确,形状X_new
应该是 (n_samples, n_features),即 10500 X 1。我不知道为什么在 ValueError 中将其视为 shape=(10500,0)
有人可以在这里帮助我吗?