如何在SkLearning上拆分均衡训练集和测试集上的数据 [英] How to split data on balanced training set and test set on sklearn

查看:0
本文介绍了如何在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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆