【发布时间】:2016-04-22 03:04:11
【问题描述】:
我有一个不平衡的数据,我想对多数类执行随机子采样,其中每个子样本的大小与少数类相同......我认为这已经在 Weka 和 Matlab 上实现,有吗sklearn 上的等价物?
【问题讨论】:
标签: python numpy scikit-learn subsampling
我有一个不平衡的数据,我想对多数类执行随机子采样,其中每个子样本的大小与少数类相同......我认为这已经在 Weka 和 Matlab 上实现,有吗sklearn 上的等价物?
【问题讨论】:
标签: python numpy scikit-learn subsampling
假设您的数据看起来像是从这段代码生成的:
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]
【讨论】: