k-折划分训练集和测试集

将数据分成训练集和验证集“必须”根据标签进行。遇到分类问题,使用分层分割就对了。在Python中,用scikit-learn很容易就做到了。(CV)
遇到回归问题,一个简单的K-Fold分割就可以了。当然,也还有很多复杂的方法能够在维持训练集和验证集原有分布的同时将数据分割开来。这个就留给读者们自己去练习啦。
在这里插入图片描述
k-折交叉验证 。 k-折交叉验证将训练集划分为 k 个较小的集合(其他方法会在下面描述,主要原则基本相同)。 每一个 k 折都会遵循下面的过程:

  • 将 k-1 份训练集子集作为 training data (训练集)训练模型,
  • 将剩余的 1 份训练集子集用于模型验证(也就是把它当做一个测试集来计算模型的性能指标,例如准确率)。
    在这里插入图片描述

KFold

在这里插入图片描述

from sklearn.cross_validation import KFold
eval_size = 0.10
kf = KFold(len(y), round(1.0 / eval_size))
train_indices, valid_indices = next(iter(kf))
X_train, y_train = X[train_indices], y[train_indices]
X_valid, y_valid = X[train_indices], y[valid_indices]

StratifiedKFold

StratifiedKFold是KFold的变体,保留了训练和测试数据集中的类比率
在这里插入图片描述

from sklearn.cross_validation import StratifiedKFold
#StratifiedKFold是KFold的变体,保留了训练和测试数据集中的类比率
eval_size = 0.10
kf = StratifiedKFold(y,round(1.0 / eval_size))
train_indices, valid_indices = next(iter(kf))
X_train, y_train = X[train_indices], y[train_indices]
X_valid, y_valid = X[train_indices], y[valid_indices]

参考链接:https://scikit-learn.org/stable/modules/cross_validation.html?highlight=stratifiedkfold
http://www.scikitlearn.com.cn/0.21.3/30/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值