交叉验证与网格搜索

交叉验证

交叉验证:将拿到的训练数据,分为训练和验证集。以下图为例:将数据分成4份,其中一份作为验证集。然后经过4次(组)的测试,每次都更换不同的验证集。即得到4组模型的结果,取平均值作为最络结果。又称4折交叉验证。实际业务中常使用10折交叉验证。

我们在做数据集划分是时候将数据分为训练集和测试集,但是为了让从训练得到模型结果更加准确。做以下处理:

·训练舞:训练集+验证集
·测试集:测试集

在这里插入图片描述

超参数搜索-网格搜索(Grid Search)

通常情况下,有很多参数是需要手动指定的(如k-近邻算法中的K值),这种叫超参数。
但是手动过程繁杂,所以需要对模型预设几种超参数组合,每组超参数都采用交叉验证来进行评估。
最后选出最优参数组合建立模型。
如:如k-近邻算法中,
    选择K=3-->模型1--交叉验证(准确率)
    选择K=5-->模型2--交叉验证(准确率)
    选择K=7-->模型3--交叉验证(准确率)
    选择K=9-->模型4--交叉验证(准确率)
    选择K=11-->模型5--交叉验证(准确率)
    ......
    最终选定最优模型的过程。

模型选择与调优API

sklearn.model_selection.GridSearchCV(estimator,param_grid=None,cv=None)#网格搜索和交叉验证
对估计器的指定参数值进行详尽搜索
    。estimator:估计器对象
    。param_grid:估计器参数(dic){
    
    "n_neighbors":[1,3,5,...]}
    。cv:指定几折交叉验证
.fit():输入训练数据
.score():准确率
结果分析:
    ·最佳参数:best_params_
    ·最佳结果:best_score_
    ·最佳估计器:best_estimator_
    ·交叉验证结果:cv_results_

猜你喜欢

转载自blog.csdn.net/qq_38851184/article/details/112541758