Расчет важности объекта для каждого объекта для каждого дерева в случайном лесу - PullRequest
1 голос
/ 11 апреля 2019

Я использую библиотеку Python sklearn.ensemble.RandomForestClassifier. Я хочу знать важность функции для каждой функции для всего дерева. Предположим, у меня есть P функции и M деревья. Я хочу вычислить матрицу PxM, в которой важность каждой функции рассчитывается для каждого дерева. Здесь - исходный код sklearn для значений функций Random Forest. В этом методе я думаю, что all_importances переменная - матрица PxM. Но как я могу получить доступ к этой переменной?

Заранее спасибо.

1 Ответ

1 голос
/ 11 апреля 2019

Вы получаете доступ к отдельным деревьям, используя .estimators_, а затем вызываете feature_importances_

Вот пример:

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=4,
                           n_informative=2, n_redundant=0,
                           random_state=0, shuffle=False)
clf = RandomForestClassifier(n_estimators=5, max_depth=2,
                             random_state=0)
clf.fit(X, y)

feature_imp_ = [tree.feature_importances_.T for tree in clf.estimators_]

выход:

[array([0.02057642, 0.96636638, 0.        , 0.01305721]),
 array([0.86128406, 0.        , 0.13871594, 0.        ]),
 array([0.00471007, 0.98648234, 0.        , 0.00880759]),
 array([0.02730208, 0.97269792, 0.        , 0.        ]),
 array([0.65919044, 0.34080956, 0.        , 0.        ])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...