首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用过采样和欠采样的组合?使用不平衡学习

如何使用过采样和欠采样的组合?使用不平衡学习
EN

Stack Overflow用户
提问于 2019-10-12 17:52:00
回答 1查看 411关注 0票数 1

我想重新采样一些大数据(类大小: 8mio vs 2700),我希望通过过采样类2和欠采样类1来获得每个样本的50.000个样本。imblearn似乎提供了过采样和欠采样的组合,但我不明白它是如何工作的。

代码语言:javascript
复制
from collections import Counter
from imblearn.over_sampling import SMOTENC
from imblearn.under_sampling import TomekLinks
from imblearn.combine import SMOTETomek

smt = SMOTETomek(random_state=1)
X_resamp, y_resamp = smt.fit_resample(data_all[29000:30000], labels_all[29000:30000])

在数据看起来像

代码语言:javascript
复制
>>Counter(labels_all[29000:30000])
>>Counter({0: 968, 9: 32})

在那之后

代码语言:javascript
复制
>>Counter(y_resamp)
>>Counter({0: 968, 9: 968})

就像我所期望或希望的那样

代码语言:javascript
复制
>>Counter(y_resamp)
>>Counter({0: 100, 9: 100})
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-14 19:51:09

似乎只有32条记录属于9类,所以它会对该类进行过采样,并将其数据记录与0类的数据记录对齐,因此使用9: 968

你正在谈论的是将数据集减少到100条记录,你可以从XY中随机抽取每个类的100条记录(相同的100条记录),或者像y_resamp[:100]一样抽取前100条记录

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58352912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档