前面看了一些基础的机器学习算法,今晚用到sklearn了,才发现原来还可以自动去调参数。。。记录一下
- GridSearchCV
网格搜索交叉验证,关键在于交叉验证,意思就是把训练数据集拆分成训练集和验证集,拆分成不同组合来验证对于某个分类器取什么参数值最好
方法参数:
class sklearn.model_selection.GridSearchCV(estimator, param_grid, scoring=None, fit_params=None, n_jobs=None, iid=’warn’, refit=True, cv=’warn’, verbose=0, pre_dispatch=‘2*n_jobs’, error_score=’raise-deprecating’, return_train_score=’warn’)[source]
estimator:你想用的分类器,比如KNN
param_grid:要预测的参数列表,比如对KNN来说最重要的是n_neighbors
scoring :准确度评价标准,默认None,这时需要使用score函数;或者如scoring=’roc_auc’,根据所选模型不同,评价准则不同。字符串(函数名),或是可调用对象,需要其函数签名形如:scorer(estimator, X, y);如果是None,则使用estimator的误差估计函数。
cv :交叉验证参数,默认None,使用三折交叉验证。指定fold数量,默认为3,也可以是yield训练/测试数据的生成器,比如KFold和StratifiedKFold
refi