了解 sklearn grid_search

Posted

技术标签:

【中文标题】了解 sklearn grid_search【英文标题】:Understanding sklearn grid_search 【发布时间】:2016-03-31 06:21:27 【问题描述】:

我很难理解grid_search 类的工作原理。我想找到可以与RandomForestClassifier 一起使用的最佳max_depth 参数。我指定了我希望搜索运行的可能选项,并且我希望模块输出“最合适的”max_depth 选项。

from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestClassifier
from sklearn import grid_search

iris= load_iris()    
forest_parameters = 'max_depth': [1,2,3,4]
forest = RandomForestClassifier()
explorer = grid_search.GridSearchCV(forest, forest_parameters)
explorer.fit(iris['data'], iris['target'])

给定一组可能的选项[1,2,3,4],我希望我的explorer 网格搜索模块返回最佳max_depth 参数。为什么None的默认值还在使用?如何使用grid_search 找到“最佳拟合”参数?

Out[13]: 
GridSearchCV(cv=None, error_score='raise',
       estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',
       ---> max_depth=None, max_features='auto', max_leaf_nodes=None,
            min_samples_leaf=1, min_samples_split=2,
            min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,
            oob_score=False, random_state=None, verbose=0,
            warm_start=False),
       fit_params=, iid=True, loss_func=None, n_jobs=1,
       param_grid='max_depth': [1, 2, 3, 4], pre_dispatch='2*n_jobs',
       refit=True, score_func=None, scoring=None, verbose=0)

【问题讨论】:

【参考方案1】:

这些只是调用网格搜索的参数。要确定最佳参数,请使用 explorer.best_params_,或者您可以使用 explorer.best_estimator_ 找到估计器,前提是启用了 refit

【讨论】:

如何访问这些值? est_estimator_best_params_ 不是 listed methods。在我的示例中,当我检查 explorer.best_params_explorer.best_estimator_ 时出现属性错误。 它们列在您链接到的页面的属性部分。他们应该在致电fit 后到那里。

以上是关于了解 sklearn grid_search的主要内容,如果未能解决你的问题,请参考以下文章

了解sklearn的KNNImputer

SKLearn 多分类,无需预先了解 Python 中的分类

了解 sklearn 中 CountVectorizer 中的“ngram_range”参数

了解 sklearn grid_search

sklearn“RidgeClassifier”有啥作用?

sklearn 高斯朴素贝叶斯 - 为啥是“高斯”?