网格搜索(Grid Search)是一种通过遍历给定的超参数组合来优化模型表现的方法。
机器学习算法中有两类参数:一类是从训练集中学习到的参数,比如逻辑回归中的权重参数和偏差参数,另一类是超参数(Hyperparameter),也就是需要人工设定的参数,比如正则项系数或者决策树的深度。
网格搜索通过寻找最佳的超参数组合,可以进一步帮助提高模型的性能。
算法思想
网格搜索的思想非常简单,属于暴力(Brute Force)算法:穷尽每个超参数的组合来评估对应的模型性能,然后挑选模型性能的超参数。
数据导入和预处理
1 | import pandas as pd |
算法实现
创建管道对象:
1 | from sklearn.preprocessing import StandardScaler |
通过网格搜索所有超参数组合(下面是 8 + 64 = 72 个)中的准确率最高的一个:
1 | from sklearn.model_selection import GridSearchCV |
网格搜索得到的最优模型的准确率、参数、以及模型调用如下:
1 | print(gs.best_score_) |