交叉验证法,是划分数据集的一种方法,目的就是为了得到更加准确可信的模型评分。
网格搜索是模型调参的有力工具。寻找最优超参数的工具!
只需要将若干参数传递给网格搜索对象,它自动帮我们完成不同超参数的组合、模型训练、模型评估,
最终返回一组最优的超参数。
代码实现:利用KNN算法实现交叉验证网格搜索
1)K折交叉验证
数据集被分为K个大小相同的子集。每个子集轮流作为验证集,其余的K-1个子集用于训练。使用 scikit-learn 库中cross_val_score() 进行 K 折交叉验证,cross_val_score() 函数是一个非常有用的工具,用于评估机器学习模型的性能。通过交叉验证,它可以估算模型在未知数据上的表现。
2)留一交叉验证(LOOCV)
对于数据集中的每一个数据点,模型都会在除了这个点之外的所有数据上进行训练,然后在这个点上进行测试。可以使用 scikit-learn 库中LeaveOneOut()
进行留一交叉验证。