交叉验证是一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。在交叉验证中,数据被多次划分,并且需要训练多个模型,最常用的交叉验证是K折交叉验证(k-fold-cross-validation,将数据平局分成k个部分,每个部分叫做一折),其中k表示有用户指定的数字,通常是5或10。然后在每个折(模型)上分别评估精度,最后我们得到K个精度,下图是5折交叉验证的示意图:
mglearn.plots.plot_cross_validation()
![fed915e46889332c61195243823ec4f3.png](https://img-blog.csdnimg.cn/img_convert/fed915e46889332c61195243823ec4f3.png)
5折交叉验证中的数据划分
通常来说,数据的前五分之一是1折,第二个五分之一是2折,以此类推。
scikit-learn中的交叉验证:scikit-learn是利用model_selection模块中的cross_val_score函数来实现交叉验证的,函数中的参数是我们想要评估的模型、训练数据与真实标签,我们在iris数据集上对LogisticRegression进行评估。
from sklearn.datasets import load_iris
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression