数据划分
我们可以使用交叉验证或其他划分数据集的方法对数据集多次划分,以得出模型平均的性能而不是偶然结果。sklearn 有很多划分数据集的方法,它们都在model_selection 里面,常用的有
- K折交叉验证:
- KFold 普通K折交叉验证
- StratifiedKFold(保证每一类的比例相等)
- 留一法:
- LeaveOneOut (留一)
- LeavePOut (留P验证,当P = 1 时变成留一法)
- 随机划分法:
- ShuffleSplit (随机打乱后划分数据集)
- StratifiedShuffleSplit (随机打乱后,返回分层划分,每个划分类的比例与样本原始比例一致)
以上方法除了留一法都有几个同样的参数:
- n_splits:设置划分次数
- random_state:设置随机种子
以上的划分方法各有各的优点,留一法、K折交叉验证充分利用了数据,但开销比随机划分要高,随机划分方法可以较好的控制训练集与测试集的比例。(通过设置train_size参数)。关于划分数据集的使用可以参照上面例子中的ShuffleSplit的用法,其他的函数使用方法大同小异,详细可查看官方文档。