如何在scikit-learn中的管道GridSearchCV中访问估计量的属性?

高拉夫·夏尔马

我想在以下代码中访问DecisionTreeRegressor的feature_importances_属性:

#Create an estimator
from sklearn.tree import DecisionTreeRegressor
tree_reg = DecisionTreeRegressor(criterion='mse', random_state=0)

#Create parametre grid for GridSearchCV
param_grid = {  'max_depth':np.linspace(start=4, stop=12, num=9),
                'max_leaf_nodes':[i for i in range(10,20,1)]}

# Construct gridsearchcv on param space
from sklearn.model_selection import ShuffleSplit
from sklearn.model_selection import GridSearchCV
cv = ShuffleSplit(n_splits=10, test_size=0.30, random_state=0)
grid = GridSearchCV(estimator=tree_reg, param_grid=param_grid, cv=cv, refit=True)

#Make Pipeline
from sklearn.pipeline import Pipeline
pipe = Pipeline(steps=[('preprocess', StandardScaler()), ('grid_search', grid)])
pipe.fit(X_train, y_train)

feat_impo = tree_reg.feature_importances_ #getting ERROR on this line

我想访问DecisionTreeRegressor的feature_importances_属性,但是在执行tree_reg.feature_importances_时出现以下错误:

sklearn.exceptions.NotFittedError: This DecisionTreeRegressor instance is
not fitted yet. Call 'fit' with appropriate arguments before using this method.

我也试过这个:

grid.__getattribute__('estimator').feature_importances_

但是我得到了完全一样的结果。

但是,当我在没有管道和网格搜索的情况下运行该程序时,即仅使用DecisionTreeRegressor时,我便可以轻松使用来访问feature_importances_tree_reg.feature_importances_并获得理想的结果而不会出现任何错误。

如何访问DecisionTreeRegressor的feature_importances_属性?

高拉夫·夏尔马

最后,我找到了正确的方法,

best_est = grid.best_estimator_
feat_impo = best_est.feature_importances_

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Scikit-Learn中的详细输出估计GridSearchCV的进度?

如何在scikit-learn(sklearn)的管道中应用StandardScaler?

GridSearchCV(sklearn)中的多个估计量

如何在GridSearchCV(随机森林分类器Scikit)上获得最佳估计器

您如何在Python的scikit-learn中访问树深度?

如何在scikit-learn中预测时间序列?

GridSearch在OneVsRestClassifier中查找估计量

如何使用R中的QR分解计算最小二乘估计量的方差?

如何在Scikit-Learn(sklearn)中将GridSearchCV中的log_loss与多类标签一起使用?

如何在scikit TfidfVectorizer中赋予适当的名词更多的重量

如何在scikit学习管道中绑定参数?

如何在Python中安装和使用scikit-learn

嵌套交叉验证:cross_validate如何将GridSearchCV作为其输入估计量处理?

如何在scikit-learn中正确执行交叉验证?

如何在scikit SVC中打印功能的相应权重?

如何在scikit学习管线中实现RandomUnderSampler?

我如何遍历估计量?

如何在R中建立回归估计量线性组合的置信区间?

如何在scikit-learn的DecisionTreeRegressor中获取节点的MSE?

如何在scikit-learn或Neuraxle中并行运行2条管道?

如何在scikit-learn的TransformedTargetRegressor管道中从训练有素的估计器访问属性?

您可以从sklearn网格搜索(GridSearchCV)中获得所有估计量吗?

参数不会传递给scikit-learn GridSearchCV中的自定义估计器

如何在scikit-learn CountVectorizer中计算词频

如何在scikit-learn中使用tfidf计算功能?

如何将估计量传递给NLTK的NgramModel?

如何在scikit Learn,Python中处理名义数据?

如何在 Scikit-learn 中使用 NumPy 数组

如何在 scikit 学习管道中包含标签编码?