如何从GridsearchCV获取feature_importances_

罗伯特·雷迪施

我刚开始编程,这个问题可能很容易解决,但是我已经坚持了一段时间,而且我认为我的方法显然是错误的。如标题所示,我一直在尝试对RandomForest预测进行网格搜索,以找到适用于我的模型的最佳参数,然后查看具有最佳参数的模型的最重要特征。我使用的软件包:

import nltk
from nltk.corpus import stopwords
import pandas as pd
import string
import re
import pickle
import os
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import KFold, cross_val_score
from sklearn.metrics import precision_recall_fscore_support as score
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV

经过一些数据清理和预处理之后,我进行了如下网格搜索,其中x_features是具有数据tfidfvectorized功能的DataFrame:

param = {'n_estimators':[10, 50, 150], 'max_depth':[10, 30, 50, None], 'min_impurity_decrease':[0, 0.01, 0.05, 0.1], 'class_weight':["balanced", None]}
gs = GridSearchCV(rf, param, cv=5, n_jobs=-1)
gs_fit = gs.fit(x_features, mydata['label'])
optimal_param = pd.DataFrame(gs_fit.cv_results_).sort_values('mean_test_score', ascending = False)[0:5]
optimal_param1 = gs_fit.best_params_

我在这里的想法是,也许我可以使自己更轻松,然后将optimum_param1复制到我的RandomForestClassifier()中,然后将其像这样或多或少地适合我的训练数据:

rf = RandomForestClassifier(optimal_param2)
rf_model= rf.fit(x_train, y_train)

但是optimum_param2是一个字典。因此,我认为将其转换为字符串并消除过多的符号(sub:for =,delete {,delete})将使其工作。这显然失败了,因为n_estimators,max_depth等的数字仍然是字符串,并且它应该是整数。我最终想要实现的是或多或少像这样获得最重要功能的输出:

top25_features = sorted(zip(rf_model.feature_importances_, x_train.columns),reverse=True)[0:25]

我意识到gs已经是一个完整的RF模型,但是它没有我一直在寻找的attribute_importances_属性。对于如何使它起作用的任何想法,我将非常感谢。

马克西姆·坎

运行后gs_fit=gs.fit(X,y),您便拥有了所需的一切,而无需进行任何重新培训。

首先,您可以通过执行以下操作访问最佳模型:

best_estimator = gs_fit.best_estimator_

这将返回产生最佳结果的随机森林。然后,您可以通过以下方式访问此模型的功能重要性

best_features = best_estimator.feature_importances_

显然,您可以将它们链接起来并直接执行以下操作:

best_features = gs_fit.best_estimator_.feature_importances_

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

来自分类Dev

在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

来自分类Dev

python:如何正确调用RandomForestClassifier的feature_importances_()

来自分类Dev

根据feature_importances_减少特征数量

来自分类Dev

python:如何从feature_importances获取真实的功能名称

来自分类Dev

在ExtraTreesClassifier中显示为NoneType的feature_importances_:TypeError:'NoneType'对象不可迭代

来自分类Dev

在ExtraTreesClassifier中显示为NoneType的feature_importances_:TypeError:'NoneType'对象不可迭代

来自分类Dev

如何从gridSearchCV的输出中获取要素名称

来自分类Dev

为什么在heatmap和feature_importances中得到两个不同的值?

来自分类Dev

如何访问GridSearchCV的SGDClassifier参数?

来自分类Dev

如何保存GridSearchCV xgboost模型?

来自分类Dev

如何获取.NET Webbrowser控件以始终遵守FEATURE_BROWSER_EMULATION注册表项?

来自分类Dev

如何用GridSearchCV绘制网格分数?

来自分类Dev

如何绘制sklearn的GridSearchCV结果与参数?

来自分类Dev

如何使用GridSearchCV的结果绘制验证曲线?

来自分类Dev

如何在GridSearchCV中访问ColumnTransformer元素

来自分类Dev

如何使用最佳参数识别GridSearchCV

来自分类Dev

使用scikit-learn从GridSearchCV获取进度更新

来自分类Dev

如何执行交叉验证以及GridSearchCV()具体如何?

来自分类Dev

使用-feature重新运行以获取详细信息,使用gradle构建时如何查看scala功能警告?

来自分类Dev

如何使用GridSearchCV输出进行scikit预测?

来自分类Dev

如何从sklearn GridSearchCV同时获得MSE和R2?

来自分类Dev

scikit学习GridSearchCV best_score_如何计算?

来自分类Dev

(GridSearchCV)拟合模型后如何打印估计系数?(SGDRegressor)

来自分类Dev

如何在Python中找到GridSearchCV的所有参数?

来自分类Dev

如何结合使用GridSearchCV和SelectFromModel来减少特征数量?

来自分类Dev

如何实现sklearn的Estimator接口以用于GridSearchCV管道?

来自分类Dev

如何从GridSearchCV输出可视化XGBoost树?

来自分类Dev

如何对不同程度的多项式使用GridSearchCV?

Related 相关文章

  1. 1

    在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

  2. 2

    在Scikit-learn的RandomForestRegressor中如何排列“ feature_importances_”

  3. 3

    python:如何正确调用RandomForestClassifier的feature_importances_()

  4. 4

    根据feature_importances_减少特征数量

  5. 5

    python:如何从feature_importances获取真实的功能名称

  6. 6

    在ExtraTreesClassifier中显示为NoneType的feature_importances_:TypeError:'NoneType'对象不可迭代

  7. 7

    在ExtraTreesClassifier中显示为NoneType的feature_importances_:TypeError:'NoneType'对象不可迭代

  8. 8

    如何从gridSearchCV的输出中获取要素名称

  9. 9

    为什么在heatmap和feature_importances中得到两个不同的值?

  10. 10

    如何访问GridSearchCV的SGDClassifier参数?

  11. 11

    如何保存GridSearchCV xgboost模型?

  12. 12

    如何获取.NET Webbrowser控件以始终遵守FEATURE_BROWSER_EMULATION注册表项?

  13. 13

    如何用GridSearchCV绘制网格分数?

  14. 14

    如何绘制sklearn的GridSearchCV结果与参数?

  15. 15

    如何使用GridSearchCV的结果绘制验证曲线?

  16. 16

    如何在GridSearchCV中访问ColumnTransformer元素

  17. 17

    如何使用最佳参数识别GridSearchCV

  18. 18

    使用scikit-learn从GridSearchCV获取进度更新

  19. 19

    如何执行交叉验证以及GridSearchCV()具体如何?

  20. 20

    使用-feature重新运行以获取详细信息,使用gradle构建时如何查看scala功能警告?

  21. 21

    如何使用GridSearchCV输出进行scikit预测?

  22. 22

    如何从sklearn GridSearchCV同时获得MSE和R2?

  23. 23

    scikit学习GridSearchCV best_score_如何计算?

  24. 24

    (GridSearchCV)拟合模型后如何打印估计系数?(SGDRegressor)

  25. 25

    如何在Python中找到GridSearchCV的所有参数?

  26. 26

    如何结合使用GridSearchCV和SelectFromModel来减少特征数量?

  27. 27

    如何实现sklearn的Estimator接口以用于GridSearchCV管道?

  28. 28

    如何从GridSearchCV输出可视化XGBoost树?

  29. 29

    如何对不同程度的多项式使用GridSearchCV?

热门标签

归档