【机器学习应用】【Python】模型评估(2)—— 网格搜索 Grid Search
机器学习算法都有不同的超参数,通过调整超参找到最优的模型,几乎是每一个用机器学习算法解决问题的必经步骤。
要找到最佳超参数,除了for
循环以外,还可以使用一个实用的方法——网格搜索(Grid Search)。网格搜索其实就是根据一系列我们想要测试的超参数组合,创建不同模型,并检验它们的准确度。
例如测试从1到10k近邻数的模型准确度:n_neighbors=range(1,10)
如果只调整一个超参数,使用for
循环还比较简单,但当我们要调整两个以上的参数时,就会有n x m个组合需要我们去尝试,也就形成了一个网格。
以调整SVM的C值和gamma值为例:
要测试每个网格的组合,我们可以写一个简单的for
循环来实现:
# Simple grid search
from sklearn.svm import SVC
best_score = 0
for gamma in [0.001, 0.01, 0.1, 1, 10, 100]:
for C in [0.001