Как найти класс в графвиз-графе Случайного леса scikit-learn? - PullRequest
1 голос
/ 11 апреля 2019

Я обучаю Классификатор случайных лесов с 10 оценками.Затем я сохраняю все графы дерева с graphviz в виде файлов точек и PNG.Наконец, я делаю RandomForest.predict.

Исходя из результатов прогноза, я выбрал один из прогнозируемых классов и искал их на графиках с помощью поиска по точечному файлу (просто поиск по простому тексту с помощью STRG +).F, который работал с другой моделью).Но я не могу найти этот класс.Когда я смотрю в png-файл, я вижу только один класс в узлах.(Я не могу показать графики здесь).Это странно, потому что если бы не было какого-либо узла с разными классами, он бы не предсказал их.

Моя цель - отследить путь, которым объект данных предсказывает свой класс.

Вот соответствующие части моего кода:

rfclf = RandomForestClassifier(class_weight = 'balanced')
rfclf.fit(x,y)

вывод:

RandomForestClassifier (bootstrap = True, class_weight = 'сбалансированный', критерий = 'gini', max_depth =None, max_features = 'auto', max_leaf_nodes = None, min_impurity_decrease = 0.0, min_impurity_split = None, min_samples_leaf = 1, min_samples_split = 2, min_weight_fraction_leaf = 0.0, n_estimators = 10, n_jose = random_se_se_se_se_sese =0, warm_start = False)

estimator=rfclf.estimators_[8] #or [0],[1],[2],.....[9] because there are 10 estimators
# Export as dot-file
export_graphviz(estimator, out_file='Graphs/rfclf8.dot', 
                feature_names = x.columns,
                class_names = y,
                rounded = True, proportion = False, 
                precision = 2, filled = True)

# convert to PNG with system command (needs Graphviz)
from subprocess import call
call(['dot', '-Tpng', 'Graphs/rfclf8.dot', '-o', 'Graphs/rfclf8.png', '-Gdpi=600'])
#predict
rfclf.predict(dfP)

output: array (['- разные классы -, dtype = object)

Что-то не так вкод?Он хорошо работал для другого набора данных.

1 Ответ

0 голосов
/ 12 апреля 2019

Чтобы отследить пути, взятые для классификации конкретного образца, вы должны использовать solution_path () из RandomForestClassifier.Он доступен с scikit-learn 0.18.0

Пример кода доступен по адресу https://scikit -learn.org / stable / auto_examples / tree / plot_unveil_tree_structure.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...