从 GridSearchCV 获取特征重要性
Posted
技术标签:
【中文标题】从 GridSearchCV 获取特征重要性【英文标题】:Get feature importance from GridSearchCV 【发布时间】:2018-06-30 19:56:57 【问题描述】:有没有办法从 sklearn 的 GridSearchCV 中获取特征重要性?
例如:
from sklearn.model_selection import GridSearchCV
print("starting grid search ......")
optimized_GBM = GridSearchCV(LGBMRegressor(),
params,
cv=3,
n_jobs=-1)
#
optimized_GBM.fit(tr, yvar)
preds2 = optimized_GBM.predict(te)
有没有办法可以访问功能重要性?
也许像
optimized_GBM.feature_importances_
【问题讨论】:
【参考方案1】:这个有效
optimized_GBM.best_estimator_.feature_importances_
【讨论】:
另外:如果您使用的是管道,.i.e.您的估算器是一个管道对象,您必须添加管道步骤名称:optimized_GBM.best_estimator_.named_steps["step_name"].feature_importances_
@aptha-gowda 有没有办法同时提取特征名称?即变量的名称?
@00schneider 如果我做 PCA 然后在我的管道中拟合一个模型,我如何恢复模型中原始变量的重要性。【参考方案2】:
知道了。它是这样的:
optimized_GBM.best_estimator_.feature_importance()
如果你碰巧通过管道运行它并收到object has no attribute 'feature_importance'
试试
optimize_GBM.best_estimator_.named_steps["step_name"].feature_importances_
其中step_name
是您管道中的对应名称
【讨论】:
您是否遇到了object has no attribute 'feature_importance'
错误?
不,我没有收到任何错误。这对我有用。我使用的是python 3.6。但是,这是在一月份,因此函数调用可能已按照其他答案的建议进行了更改。【参考方案3】:
这取决于您选择的型号。如果您选择 SVM,您将没有特征重要性参数,但在决策树中您会得到它
【讨论】:
以上是关于从 GridSearchCV 获取特征重要性的主要内容,如果未能解决你的问题,请参考以下文章
如何从 GridsearchCV 获取 feature_importances_
从 gridsearchCV 中的 RFECV 检索选定的特征
如何在 python 中的 sklearn 中获取 GridSearchCV 中的选定功能
当我使用管道对线性 svc 进行预处理、训练和测试时,如何获得最重要的特征系数?