如何在SkLearning上拆分均衡训练集和测试集上的数据 [英] How to split data on balanced training set and test set on sklearn
本文介绍了如何在SkLearning上拆分均衡训练集和测试集上的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用skLearning执行多分类任务。我需要将所有数据拆分为Train_Set和TestSet。我想从每个班级随机抽取相同的样本号。 实际上,我觉得这个功能很有趣
X_train, X_test, y_train, y_test = cross_validation.train_test_split(Data, Target, test_size=0.3, random_state=0)
但它给出了不平衡的数据集!任何建议。
推荐答案
您可以使用StratifiedShuffleSplit创建与原始数据集具有相同百分比的类的数据集:
import numpy as np
from sklearn.model_selection import StratifiedShuffleSplit
X = np.array([[1, 3], [3, 7], [2, 4], [4, 8]])
y = np.array([0, 1, 0, 1])
stratSplit = StratifiedShuffleSplit(y, n_iter=1, test_size=0.5, random_state=42)
for train_idx, test_idx in stratSplit:
X_train=X[train_idx]
y_train=y[train_idx]
print(X_train)
# [[3 7]
# [2 4]]
print(y_train)
# [1 0]
这篇关于如何在SkLearning上拆分均衡训练集和测试集上的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文