Day 50 :模型的调优 交叉验证与网格搜索

本文介绍了交叉验证的概念,强调其在提升模型稳定性中的作用,特别是在K-fold交叉验证中的应用。接着,详细讲解了网格搜索,用于优化模型的超参数,如k近邻算法中的k值。通过设定多个参数组合,使用10折交叉验证评估,找出最佳参数。最后,提到了网格搜索交叉验证的API,包括如何设置参数和获取最佳结果。
摘要由CSDN通过智能技术生成

2021/2/7

交叉验证

是为了让模型更加稳定可信
交叉验证会把训练集继续分为训练集验证集。确定好把数据分成几等分就是 几折交叉验证K-fold cross-validation

比如说四折交叉验证,其实就是把数据集分为4份 其中验证集是其中的一份,然后验证4次。这样4个训练集通过模型后会有4个准确率,并求出平均值。
在这里插入图片描述

网格搜索

像算法模型中有很多的参数需要手动设定(如k近邻算法中的k 值)这种就是超参数。但是每次设定一个值后,再运行一次模型看结果,每次设定值就需要重新操作一遍 的方法很复杂。所以会对模型,提前预设几种超参数组合,然后每组超参数会采用交叉验证来进行评估,最后选择出最优的参数组合。
在这里插入图片描述
像k近邻算法中 k值预设3,5,7三个值。再运用10折交叉验证,得到3种不同的平均准确率,进行比较就能知道3个k值中哪个k值是最好的。如果模型中有两个超参数,比如a[2,3,5], b[6,5] 那么就运用网格搜索两两组合 进行验证 [2,6],[2,5],[3,6],[3,5],[5,6][5,5] 6种组合代入模型 进行验证。

网格搜索交叉验证API

sklearn,model_selection.GridSearchCV(estimator,param_grid=None,cv=None)对估计器的指定参数进行详尽搜索

  • estimator:估计器对象
  • param_grid:估计器参数(dict){“n_neighbors”:[1,3,5]}字典类型
  • cv:指定几折交叉验证
  • fit:输入训练数据
  • score:准确率
  • 结果分析
  • best_score_:在交叉验证中验证的最好结果
  • best_estimator_:最好的参数模型
  • cv_results_:每次交叉验证后的测试集准确率结果和训练集准确率结果

先用k近邻法 确定最好的k值。注意如果初始的knn设定k值了,运用网格搜索交叉验证时就先不要设定k值了

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.preprocessing import StandardScaler
import pandas as pd

# 注意返回值, 训练集 train  x_train, y_train        测试集  test   x_test, y_test
 x_train,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值