Sklearn使用train_test_split同时控制类之间的比率

时间:2018-03-22 15:06:16

标签: python scikit-learn

使用scikit-learn的train_test_split工具时,我想在控制类之间的比例的同时拆分数据。这就是问题所在:

from sklearn.model_selection import train_test_split
from collections import Counter

x_coords = range(100)
labels = ['a']*90 + ['b']*10
x_train, x_test, label_train, label_test = train_test_split(x_coords, labels, test_size=20)

print(Counter(label_test))

给出:'a':18, 'b':2。另一个随机分组给出了'a':20

因此随机选择了20个样本,但忽略了标记。我想控制类之间的比例。我现在手动操作,通过使用train_test_split将每个类分别分成一个列车和测试集,然后重新组合所有测试和训练集。有没有人知道更优雅,基于sklearn的方式呢?

我看到here可以这样做,以便保持原始数据中各类之间的比率,但我想自己指定比率。

0 个答案:

没有答案