【问题标题】:Set multiple parameters from GridSearch at once一次从 GridSearch 设置多个参数
【发布时间】:2018-02-25 03:06:14
【问题描述】:

在我的数据集上使用 GridSearchCV 后,我想提取所有最佳参数。

from sklearn.tree import DecisionTreeClassifier

params_grid = {'max_depth': np.arange(3, 10),
              'max_leaf_nodes':list(xrange(20,100,20)),
              'max_features':list(xrange(2,10,2))
               }
my_dt = DecisionTreeClassifier()
grid_clf = GridSearchCV(my_dt, params_grid)
grid_clf.fit(xtrain, ytrain)

best_plist = grid_clf.best_params_

现在我想创建一个新的DecisionTreeClassifier 对象并将其参数设置为与best_plist 相同。问题是我是手动为每个参数做这样的:

new_clf = DecisionTreeClassifier()
new_clf.max_depth=bestplit['max_depth']  # and so on for all the parameters

但是,我将分析多个 ML 算法,并且需要一种通用的方法来设置新对象的参数,而不是对每个算法进行硬编码。我只是想知道在 sklearn 中是否有任何解决方法?

【问题讨论】:

  • 您可以直接使用grid_clf.best_estimator_,它将返回具有最佳参数的估计器。

标签: python machine-learning scikit-learn grid-search


【解决方案1】:

scikit-learn 有本地方式来做你在这里尝试的事情。您需要做的是将您的新对象保存为您之前拟合的最佳参数组合。这可以通过

来实现
new_clf = grid.clf.best_estimator_

这将创建一个新的学习器对象,在您之前的搜索中具有最佳配置。

PD:这是一个老问题,也许你已经想通了,但仍然没有答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多