超参数调参,一种方法是用GridSearchCV,grid_search = GridSearchCV(clf,param_grid,n_jobs=-1,verbose=2)
clf 是要使用的模型,param_grid 指要调整的超参数,用字典表示,n_jobs 指用电脑的CPU个数,-1代表全部都用,verbose 指CV表示输出形式。
拿着grid_search 就可以去fit 训练集了。训练好之后,可以用clf = grid_search.best_estimator_ 表示最优超参数对应的估计器。然后就可以调整超参数为最优状态的估计器去预测目标值了 y_pre = clf.predict(X_test)。最后再用clf.score(X_test,y_pre) 查看下模型的准确率。
总结一下目前掌握的建模流程:
1、预处理
2、选择模型
3、调整模型的超参数
4、预测
preprocessing...
select model, eg.clf...
grid_search = GridSearchCV(clf, param_grid, n_job=-2, verbos=2) #创建模型的网格搜索实例
grid_search.fit(x_train, y_train) #用训练集进行拟合,调整超参数和模型
grid_search.best_params_ #会返回param_grid里设置的超参数的最优值,也会返回对应的准确率
clf = grid_search.best_estimator_ #最优超参数对应的估计器
y_pre = clf.predict(x_test) #拿最优估计器进行预测
clf.score(x_test, y_pre) #查看预测的准确率