首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从RandomForest中获取特性重要性?如何使用scikit-multilearn库?

如何从RandomForest中获取特性重要性?如何使用scikit-multilearn库?
EN

Data Science用户
提问于 2020-02-11 13:33:54
回答 1查看 622关注 0票数 3

我正在研究多标签分类问题,二进制案例。作为一个目标变量,有5个0-1值的列。

对于模型培训,我使用scikit多学科图书馆。下面是我的代码,用于训练具有二进制相关性和RandomForest的模型。

代码语言:javascript
运行
复制
parameters = [
{
    'classifier': [RandomForestClassifier(random_state=42)],

    'classifier__n_estimators': [50, 100, 200],
    'classifier__max_features': ['auto', 'sqrt', 'log2'],
    'classifier__max_depth' : [4, 6, 8, 10, 12],
    'classifier__criterion' :['gini', 'entropy']}]

clf = RandomizedSearchCV(BinaryRelevance(), parameters, scoring='f1_weighted', cv=5, \
n_jobs=-1, verbose=10, random_state=10)
clf.fit(X_train, y_train)

如何从模型中提取特征重要性?我应该从这个模型中获取最好的参数,然后使用sklearn的RandomForest分别应用于每个标签的数据吗?

EN

回答 1

Data Science用户

发布于 2020-02-11 13:56:31

首先,为了直接回答您的问题,使用scikit学习获得特性重要性的最简单方法是这样做,其中model是保持分类器的变量。

代码语言:javascript
运行
复制
print(model.feature_importances_)

但是,这种方法只存在于某些集合模型上,即:

  • AdaBoostClassifier
  • AdaBoostRegressor
  • ExtraTreesClassifier
  • ExtraTreesRegressor
  • GradientBoostingClassifer
  • GradientBoostingRegressor
  • RandomForestClassifier
  • RandomForestRegressor
  • RandomTreesEmbedding

如果你想知道为什么,网上有一本关于可解释机器学习的非常棒的免费书。以下是一段节选:

实现可解释性的最简单方法是只使用创建可解释模型的算法子集。线性回归、logistic回归和决策树是常用的可解释模型。

一旦您选择了正确的模型,请注意使用特性重要性!看这里,它对随机数据的排名非常高。本文建议使用置换重要性以及下拉列重要性。

他们创建了一个名为拉皮条客的库来做这件事,但是这里有一个教程却从scikit自己那里学到了如何做到这两种方法--学习。我在下面的教程中粘贴了置换重要性示例:

代码语言:javascript
运行
复制
from sklearn.inspection import permutation_importance

result = permutation_importance(rf, X_test, y_test, n_repeats=10,
                                random_state=42, n_jobs=2)
sorted_idx = result.importances_mean.argsort()

fig, ax = plt.subplots()
ax.boxplot(result.importances[sorted_idx].T,
           vert=False, labels=X_test.columns[sorted_idx])
ax.set_title("Permutation Importances (test set)")
fig.tight_layout()
plt.show()
票数 4
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/67892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档