多数类的随机子抽样



>我有一个不平衡的数据,我想对多数类执行随机子抽样,其中每个子样本的大小与少数类的大小相同......我认为这已经在 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)])

(只有 1/5 的y是 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]

相关内容

  • 没有找到相关文章

最新更新