1.K折交叉验证
单次k折交叉验证每一个数据顶多作为一次测试集(因为数据划分已经固定),对k-fold交叉验证运行的结果进行平均可以得到算法性能的(几乎)无偏估计,但方差很高;想要获得更多的切分方式:N次K折交叉验证(每次进行k折交叉验证时有不同的数据划分,共K*N个模型,取平均。
实现:
单次k折:sklearn.model_selection -kfold
多次k折:sklearn.model_selection-repeatedkfold
2.MCCV
蒙特卡罗交叉验证(MCCV) =重复随机子抽样验证(RRSSV)
MCCV进行多次随机划分,每一个数据可能多次作为测试集,因此划分方式更多样,但是偏差很大
即:样本可能在同一集合(训练集/测试集)中出现多次,这就是蒙特卡洛和k-fold交叉验证的主要区别。
实现:train_test_split(即留出法HOLD OUT)执行多次=MCCV