sklearn.model_selection.train_test_split函数

函数原型
sklearn.model_selection.train_test_split(
    *arrays,
    test_size=None,
    train_size=None,
    random_state=None,
    shuffle=True,
    stratify=None,
)
函数说明

train_test_split函数用于将数据集细分为训练集和测试集。参数*arrays表示待划分的数据集,可以是列表、numpy数组、scipy稀疏矩阵或pandas的数据。

参数test_size如果为浮点数,则表示测试集占数据集的百分比;如果为整数,则表示测试集的数量。参数train_size如果为浮点数,则表示训练集占数据集的百分比;如果为整数,则表示训练集的数量。

参数random_state表示随机数的种子,参数shuffle表示是否打乱数据。

参数stratify是为了保持split前类的分布。比如有100个数据,80个属于A类,20个属于B类。如果train_test_split(… test_size=0.25, stratify = y), 那么split之后数据如下:
training: 75个数据,其中60个属于A类,15个属于B类。
testing: 25个数据,其中20个属于A类,5个属于B类。

函数使用
>>> from sklearn import model_selection, datasets
>>> data, labels = datasets.load_iris(return_X_y=True)
>>> train_data, test_data = model_selection.train_test_split(data, test_size=0.4)
>>> len(train_data)
90
>>> len(test_data)
60
>>> train_labels, test_labels = model_selection.train_test_split(labels, test_size=0.4)
>>> train_labels
array([0, 1, 0, 0, 0, 0, 1, 2, 0, 0, 2, 2, 2, 2, 1, 0, 0, 1, 1, 2, 0, 0,
       2, 0, 1, 1, 1, 1, 0, 1, 2, 2, 1, 1, 0, 1, 2, 2, 2, 0, 2, 2, 1, 1,
       1, 1, 2, 1, 2, 0, 0, 2, 0, 0, 1, 0, 2, 2, 0, 1, 2, 0, 1, 0, 2, 2,
       0, 1, 0, 1, 1, 2, 1, 1, 1, 0, 2, 0, 1, 2, 1, 0, 0, 0, 1, 2, 0, 0,
       0, 0])
>>> train_labels, test_labels = model_selection.train_test_split(labels, test_size=0.4, random_state=10)
>>> train_labels
array([0, 0, 2, 1, 2, 0, 2, 0, 1, 1, 0, 2, 2, 2, 2, 2, 0, 1, 2, 1, 0, 2,
       1, 1, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0, 2, 2, 1, 1, 2, 2, 2, 2, 1, 0,
       0, 1, 0, 0, 2, 1, 0, 0, 0, 1, 0, 1, 0, 1, 2, 0, 1, 1, 2, 0, 2, 0,
       1, 1, 2, 2, 0, 1, 2, 2, 1, 1, 2, 0, 2, 0, 0, 1, 0, 2, 2, 2, 1, 0,
       2, 0])
>>> train_labels, test_labels = model_selection.train_test_split(labels, test_size=0.4, random_state=10, shuffle=False)
>>> train_labels
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
       0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
       1, 1])
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不负韶华ღ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值