超参数:即不直接在估计器内学习的参数。在 scikit-learn 包中,它们作为估计器类中构造函数的参数进行传递。
超参数优化:搜索超参数空间以便获得最好交叉验证分数
sklearn.model_selection.GridSearchCV
通过参数网格上的交叉验证网格搜索对估算器的指定参数值进行详尽搜索。
常用参数列表
参数名称参数类型作用
estimator估计器对象指明估计器对象,如RandomForest和AdaBoost等param_grid词典或词典列表带有参数名称(字符串)作为键的字典以及用作值的参数设置列表,即指定估计器需要优化的参数(该参数可以是一个范围值),如n_estimators和learning_rate等scoring字符串列表或字典指定多个评估指标n_jobs整数型int并行运行的作业数量。cv整数型int交叉验证折叠的数量verboseinterger消息的详细程度,数值越高,消息越详细
属性
属性名称属性类型作用
cv_results_numpy(masked)ndarrays的字典交叉验证的结果统计列表best_estimator_estimator或dict由搜索选择的估算器best_score_floatbest_estimator的平均交叉验证分数best_params_字典在保持数据上给出最佳结果的参数设置。best_index_intcv_results_与最佳候选参数设置相对应的(阵列的)索引。scorer_函数或字典用于保存数据以选择模型的最佳参数n_splits_int交叉验证拆分的数量(折叠/迭代)
举例
rf_est = RandomForestClassifier(random_state=
0)
rf_param_grid = {
'n_estimators': [
500],
'min_samples_split': [
2,
3],
'max_depth': [
20],
'learning_rate': [
0.01,
0.1]}
rf_grid = model_selection.GridSearchCV(rf_est, rf_param_grid, n_jobs=
25, cv=
10, verbose=
1)
其他超参数优化方法
超参数优化方法作用
model_selection.ParameterGrid每个参数的网格具有不连续的数值。model_selection.ParameterSampler从给定分布取样的参数上的发生器。model_selection.RandomizedSearchCV随机搜索超参数。model_selection.fit_grid_point在一组参数上运行拟合。