Python机器学习笔记(二十二、模型评估-交叉验证)
交叉验证(cross-validation)是一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。
在交叉验证中,数据被多次划分,并且需要训练多个模型。最常用的交叉验证是k折交叉验证(k-fold cross-validation),其中k是由用户指定的数字,通常取5或10。
在执行5折交叉验证时,首先将数据划分为(大致)相等的5部分,每一部分叫作折(fold)。接下来训练一系列模型。使用第1折作为测试集、其他折(2~5)作为训练集来训练第一个模型。利用2~5折中的数据来构建模型,然后在1折上评估精度。之后构建另一个模型,这次使用2折作为测试集,1、3、4、5折中的数据作为训练集。分别利用3、4、5折作为测试集继续重复这一过程。对于将数据划分为训练集和测试集的这5次划分,每一次都要计算精度。最后我们得到了5个精度值。整个过程如图1所示。