【发布时间】:2019-06-30 22:16:14
【问题描述】:
我正在尝试使用 RandomForest 恢复多输出分类器的特征重要性。
MultiOutput 模型没有显示任何问题:
import numpy as np
import pandas as pd
import sklearn
from sklearn.datasets import make_multilabel_classification
from sklearn.datasets import make_classification
from sklearn.multioutput import MultiOutputClassifier
from sklearn.ensemble import RandomForestClassifier
## Generate data
x, y = make_multilabel_classification(n_samples=1000,
n_features=15,
n_labels = 5,
n_classes=3,
random_state=12,
allow_unlabeled = True)
x_train = x[:700,:]
x_test = x[701:,:]
y_train = y[:700,:]
y_test = y[701:,:]
## Generate model
forest = RandomForestClassifier(n_estimators = 100, random_state = 1)
multi_forest = MultiOutputClassifier(forest, n_jobs = -1).fit(x_train, y_train)
## Make prediction
dfOutput_multi_forest = multi_forest.predict_proba(x_test)
预测dfOutput_multi_forest没有显示任何问题,但我想恢复multi_forest的特征重要性用于解释输出。
使用multi_forest.feature_importance_ 会引发以下错误消息:
AttributeError: 'MultiOutputClassifier' object has no attribute 'feature_importance_'
有谁知道如何检索特征重要性? 我正在使用 scikit v0.20.2
【问题讨论】:
标签: python scikit-learn random-forest