python - 一次从 GridSearch 设置多个参数

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

在我的数据集上使用 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 中有没有解决这个问题的方法?

最佳答案

scikit-learn 有本地方法来完成您在这里尝试的操作。您需要做的是将新对象保存为之前拟合中的最佳参数组合。这可以通过以下方式实现:

new_clf = grid.clf.best_estimator_

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

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

关于python - 一次从 GridSearch 设置多个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46247758/

相关文章:

python - 由特征选择(即 chi2 方法)产生的 p 值的含义是什么?

machine-learning - 尽管已编译为 GPU 运行,但通过 Scikit learn API 的 XGB 似乎并未在 GPU 中运行

python - Selenium 无法切换选项卡和提取 url

python - Django 与 Pylons

python - 由于简单的自定义 Keras 损失函数,准确性指标失败

matlab - 使用 PCA 降维 - MATLAB

opencv - 如何检测面部角度?

python - 用 5 分钟范围内最接近的行值填充缺失值

python - 使用矩阵测试两个 Sprite 是否重叠

svm - scikit学习svc coef0参数范围