Я обучаю Классификатор случайных лесов с 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)
Что-то не так вкод?Он хорошо работал для другого набора данных.