解决:机器学习模型中的调参选择(替代循环方法)
如何解决:将需要调整的参数整理成一个字典列表,传进GridSearchCV过程
以随机森林为例如下:
#网格搜索
from sklearn.grid_search import GridSearchCV
param_test1 ={'n_estimators':[500,520,530],
'max_features':[0.74,0.75,0.77],
'min_samples_leaf':[2,3,4],}
gsearch1= GridSearchCV(estimator = RandomForestClassifier(bootstrap=True
, lass_weight=None,criterion='gini',max_depth=7
,max_leaf_nodes=None,min_impurity_split=1e-07,
min_samples_split=2, min_weight_fraction_leaf=0.0,
n_jobs=1, oob_score= True, random_state=None,
verbose=0, warm_start=False),
param_grid =param_test1,scoring='roc_auc',cv=5)
gsearch1.fit(X,y)
gsearch1.grid_scores_, gsearch1.best_params_, gsearch1.best_score_
其中:
param_test1 中存储需要搜索的参数名、参数区间;
GridSearchCV 中包括使用什么算法、不需调整的参数及值+需要调整的参数即param_grid = param_test1
搜索会返回如下结果(示例) 每组参数对应的评分值(可选准确率、roc等),最优参数。
网格搜索结果示例
网友评论