模型调参时常用到的Grid Search是什么意思?

  统计/机器学习 模型验证 开放问题    浏览次数:17754        分享
1

模型调参时常用到的Grid Search是什么意思?最好能有直白一点的解释,谢谢!


 

信春哥   2018-02-08 21:06



   3个回答 
9

正如mosthated说的,Grid Search就是穷举,穷举所有的超参组合。

当你对决策树调参,如果只对一个超参优化,比如树的最大深度,尝试[3, 5, 7]。那么可以表示为

如果你还想对分裂标准进行调参,分别试试gini和entropy,那么就相当要对$2\times 3 = 6$组参数进行尝试。如下图

所以这就是为什么叫做gird search,网格搜索。grid search是对网格中每个交点进行遍历,从而找到最好的一个组合。

网格的维度就是超参的个数。如果有$k$个超参,每个超参有$m$个候选,那么我们就要遍历$k^m$个组合。所以说尽管效果不错,但是计算代价是非常非常大的。


SofaSofa数据科学社区DS面试题库 DS面经

五丁大包   2018-02-27 12:23

3

官网介绍http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html

如下给出GridSearchCV的一个例子

# 随机森林分类模型
RFC = RandomForestClassifier()

##设置备选属性用于grid search
rf_param_grid = {"max_depth": [None],
              "max_features": [1, 3, 10],
              "min_samples_split": [2, 3, 10],
              "min_samples_leaf": [1, 3, 10],
              "bootstrap": [False],
              "n_estimators" :[100,300],
              "criterion": ["gini"]}
#用于系统地遍历多种参数组合,通过交叉验证确定最佳效果参数
gsRFC = GridSearchCV(RFC,param_grid = rf_param_grid, cv=kfold, scoring="accuracy", n_jobs= 4, verbose = 1)

gsRFC.fit(X_train,Y_train)
#得到最佳参数组合
RFC_best = gsRFC.best_estimator_

# Best score
gsRFC.best_score_


SofaSofa数据科学社区DS面试题库 DS面经

betten   2018-02-27 15:32

2

就是穷举法,你把想测试的参数的数值以字典形式搞进去,这个东西能给你列出来对应的预测精度

SofaSofa数据科学社区DS面试题库 DS面经

mosthated   2018-02-25 03:01



  相关讨论

建模时一定需要验证集或者测试集吗?

当数据量很小的时候,怎么做模型验证?

训练误差、测试误差、泛化误差的区别

十折交叉验证

交叉验证是如何进行的?

如何在保持查全率不变的情况下提高查准率?

micro和macro F1 score分别是什么意思?

Stratified k-fold cross validation(分层交叉验证)

测试集和验证集的区别?

如果我用交叉验证,还是否需要单独分出测试集?

  随便看看

micro和macro F1 score分别是什么意思?

keras里sparse_categorical_crossentropy和categorical_crossentropy什么不同?

什么是混淆矩阵(confusion matrix)

模型调参时常用到的Grid Search是什么意思?

关于方差膨胀因子(VIF)的问题