上一次用了验证曲线来找最优超参数。
今天来看看网格搜索(grid search),也是一种常用的找最优超参数的算法。
网格搜索实际上就是暴力搜索:
首先为想要调参的参数设定一组候选值,然后网格搜索会穷举各种参数组合,根据设定的评分机制找到最好的那一组设置。
以支持向量机分类器 SVC 为例,用 GridSearchCV 进行调参:
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import classification_report
from sklearn.svm import SVC
1. 导入数据集,分成 train 和 test 集:
digits = datasets.load_digits()
n_samples = len(digits.images)
X = digits.images.reshape((n_samples, -1))
y = digits.target
X_train, X_test, y_train, y_test = train_test_split(
X, y, test_size=0.5, random_state=0)
2. 备选的参数搭配有下面两组,并分别设定一定的候选值:
例如我们用下面两个 grids:
kernel='rbf