sklearn: model_selection

本文介绍了sklearn库中的model_selection模块,主要用于数据的训练集和测试集划分。重点讲解了train_test_split函数以及KFold、GroupKFold、StratifiedKFold和ShuffleSplit等交叉验证类的使用,强调了在0.20.0版本中旧版模块将被移除,建议避免使用。
摘要由CSDN通过智能技术生成

model_selection 主要提供 交叉验证结果评估 的工具, cross_validation 模块作为老版本中的模块, 拥有同样的方法, 在0.20.0版本中将会本移除, 因此尽量不要使用cross_validation 模块.

  • sklearn.model_selection.train_test_split()

作用: 随机地将样本集合分为训练集和测试集.

'''
参数:
    *arrays: 被分割的数据集, 他们的长度(shape[0]或len)相同, 可以接受lists, numpy arrays, dataframes类型的数据;
    test_size: 测试集大小, 可以为float, int, None, 默认为None;
        float: 值在0.0到1.0中间, 表示测试集占数据集的比例大小;
        int: 测试集包含的样本的绝对数值;
        None: 根据train_size自动设置, 如果train_size也为None, test_size将被设置为0.25;
    train_size: 训练集大小, 可以为float, int, None, 默认为None;
        float: 值在0.0到1.0中间, 表示训练集占数据集的比例大小;
        int: 训练集包含的样本的绝对数值;
        None: 根据test_size自动设置, 如果test_size也为None, train_size将被设置为0.75;
    random_state: 随机种子;
    stratify: 对样本类别的标记列表, 默认为None, 可以设置为array-like, 长度与被分割的数据array中的长度相同, 其中的每个值表示对应样本的所属类别, 如[0,0,0,1,1]表示前3个样本数据属于第0类, 后两个样本数据属于第1类;
    随机取样本时, 如果该参数不是None, 则在每个类别的样本中按比例抽取训练集和测试集, 即抽取后的训练集总样本和测试集总样本中的不同类别的样本比例保持不变.
'''
# stratify参数使用方法
X = np.random.rand(100, 3)
y = np.random.rand(100) * 2 + 100
stratify = np.ones(100)
stratify[50:] = 2
print(train_test_split(X, y, stratify=stratify))

以下为进行样本划分的类, 拥有共同的方法get_n_splits()split()

首先介绍这两个共有方法:

  • get_n_splits()
'''
作用: 返回分割后的子样本集合(Folds)的数量, 即划分类初始化时设置的n_splits参数.
参数:
    X: (must)被划分的数据;
返回: 返回分割后的子样本集合(Folds)的数量, 即划分类初始化时设置的n_splits参数.   
'''
  • split()
'''
作用: 对样本进行划分, 代码生成使用yield, 因此使用for循环进行调用, 每次返回一次分割结果.
参数:
    X: (must)样本特征, shape为(n_samples, n_features);
    y: 样本标签, 长度为n_samples
    groups: shape为(n_samples,), 每个样本对应的集合分类, 如[0,0,0,1,1].
输出:
    train: 本次分割产生的训练集样本索引(indices);
    test: 本次分割产生的测试集样本索引(indices);
'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值