Sklearn train_test_split参数详解

1 重要参数

train_test_split函数:
将数组或矩阵划分为训练集和测试集

sklearn.model_selection.train_test_split
(*arrays, test_size=None, 
train_size=None, random_state=None, 
shuffle=True, stratify=None)
***参数***
# *arrays:sequence of indexables with same length / shape[0]
# 具有相同行数的可索引的序列(可以是lists|numpy arrays|scipy-sparse matrices|pandas dataframes)
# test_size:float or int, default=None
# 测试集大小(如果是float:0-1之间|如果是整数,代表测试集的样本数量|如果为None,就看train_size,如果train_size也没有,默认设置为0.25)
# train_sizefloat or int, default=None
# 训练集大小(如果是float:0-1之间|如果是整数,代表测试集的样本数量|如果为None,就看test_size)
# random_state,int, RandomState instance or None, default=None
# 随机数:在对数据分割之前设置数据的打断方式,在多个函数调用之间传递一个可重复输出的int
# shuffle,bool, default=True
# 是否在数据分割前打乱数据,If shuffle=False then stratify must be None.
# stratify:array-like, default=None
# 分层,不经常用,如果不是“无”,则以分层方式拆分数据,并将其用作类标签。阅读《用户指南》中的更多内容。

random_state参数:提供使用的随机数生成器

  1. None (default)
    使用numpy.random中的全局随机状态实例。多次调用该函数将重用同一实例,并将产生不同的结果。
  2. An integer
    Use a new random number generator seeded by the given integer
    使用一个新的随机数生成器,以给定的整数为种子。**使用int将在不同的调用中产生相同的结果。**然而,值得检查的是,在许多不同的随机种子中,您的结果是否稳定。流行的整数随机种子是0和42。整数值必须在[0,2^32-1]范围内。

Sklearn使用的随机数生成器是Mersenne Twister pseudo-random number generator
参考链接:

在这里插入图片描述

    1. A numpy.random.RandomState instance
      使用提供的随机状态,只影响同一随机状态实例的其他用户。多次调用函数将重用同一实例,并将产生不同的结果。

返回值

# splitting:list, length=2 * len(arrays)
# 包含训练-测试的列表

2 例子

import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)

在这里插入图片描述

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

在这里插入图片描述

train_test_split(y, shuffle=False)
[[0, 1, 2], [3, 4]]

3 注意

  1. 当shuffle=True且random_state取整数,划分得到的是乱序的子集,如果random_state的值不变,那么每次运行得到的数据集不变。
  2. 当shuffle=True且random_state =None,划分得到的是乱序的子集,每次运行的带的数据集发生变化。
  3. 当shuffle=False,无论random_state是否为定值都不影响划分结果,划分得到的是顺序的子集(每次都不发生变化)。
  4. 为保证数据打乱且每次实验的划分一致,只需设定random_state为整数(0-42),shuffle函数中默认=True(注意:random_state选取的差异会对模型精度造成影响)

学习链接:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值