在机器学习的模型中,通常有两类参数,第一类是通过训练数据学习得到的参数,也就是模型的系数,如回归模型中的权重系数,第二类是模型算法中需要进行设置和优化的超参,如logistic回归中的正则化系数和决策树中的树的深度参数等。在上一篇文章中,我们通过验证曲线来寻找最优的超参,在这篇文章中,将通过一种功能更为强大的寻找超参的技巧:网格搜索,它可以寻找最优的超参组合,来提高模型的性能。
一、网格(grid search)搜索寻找超参
网格搜索:网格搜索其实是一种暴力搜索参数的方法,它通过我们指定不同的超参列表进行穷举搜索,并计算每一个超参组合对于模型性能的影响,来获取最优的超参组合。下面通过sklearn来实现网格搜索寻找超参
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.preprocessing import LabelEncoder
from sklearn.pipeline import Pipeline
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV
if __name__ == "__main__":
#读取数据
data = pd.read_csv("G:/dataset/wdbc.csv")
#获取X
X = data.ix[:,2:32]
#获取字符串类别标签
label_y = data.ix[:,1]
#将字符串的标签转为数字
label = L