我的数据不平衡,我想对多数类进行随机子采样,其中每个子样本的大小都与少数类相同...我认为这已经在Weka和Matlab上实现了,这在sklearn上?
最佳答案
假设您的数据看起来像是从此代码生成的内容:
import numpy as np
x = np.random.randn(100, 3)
y = np.array([int(i % 5 == 0) for i in range(100)])
(
y
的1/5仅为1,这是少数类)。要查找少数群体的人数,请执行以下操作:
>>> np.sum(y == 1)
20
要查找包含多数类的子集,请执行以下操作:
majority_x, majority_y = x[y == 0, :], y[y == 0]
要查找大小为20的随机子集,请执行以下操作:
inds = np.random.choice(range(majority_x.shape[0]), 20)
其次是
majority_x[inds, :]
和
majority_y[inds]
关于python - 多数类别的随机子采样,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34829381/