网格搜索是一种常用的调参手段,是一种穷举方法。给定一系列超参,然后再所有超参组合中穷举遍历,从所有组合中选出最优的一组超参数,其实就是暴力方法在全部解中找最优解。从所有的参数中找到在验证集上精度最高的参数,这其实是一个训练和比较的过程。
为什么叫网格搜索,因为假设有两个超参,每个超参都有一组候选参数。这两组候选参数可以两两组合,把所有组合列出来就是一个二维的网格(多个超参两两组合可以看作是岗高维空间的网格),遍历网格中的所有节点,选出最优解。所以叫网格搜索。
sklearn.model_selection.GridSearchCV(estimator,param_grid,cv)
estimator:估计器对象
param_grid:估计器参数,参数名称(字符串)作为key,要测试的参数列表作为value的字典,或这样的字典构成的列表
cv:整型,指定K折交叉验证
方法:
fit:输入训练数据
score:准确率
best_score_:交叉验证中测试的最好的结果
best_estimator_:交叉验证中测试的最好的参数模型
best_params_:交叉验证中测试的最好的参数
cv_results_:每次交叉验证的结果
如果给定的样本数据充足,进行模型选择的 种简单方法是随机地将数据集切分成三部分,分别为训练集(training set )、验证集(validation set )和测试集 (tesset )。训练集用来训练模型,验证集用于模型的选择,而测试集用于最终对学习方法的评估。在学习到的不同复杂度的模型中 选择对验证集有最小预测误差的模型由于验证集有足够多 的数据,用它对模型进行选择也是有效的。
但是,在许多实际应用中数据是不充足的。为了选择好的模型,可以采用 交叉验证方法 交叉验证的基本想法是重复地使用数据:把给定的数据进行切分,将切分的数据集组合为训练集与测试集,在此基础上反复地进行训练、测试以及模型选择。
交叉验证的好处在于:
1.可以保证所有数据都有被训练和验证的机会,也尽最大可能让优化的模型性能表现的更加可信;
2.从有限的学习数据获取尽可能多的有效信息;
3.可以在一定程度上避免过拟合的问题。
参考:https://www.cnblogs.com/wj-1314/p/10422159.html