Как мне получить понятный вывод DecisionTreeClassifier?

#python #scikit-learn #decision-tree

#python #scikit-learn #дерево решений

Вопрос:

2 проблемы, над которыми я провел пару часов исследований без разрешения. Когда я создаю дерево DecisionTreeClassifier, используя «tree.plot_tree(my_model) с 2 уровнями, я могу четко видеть дерево. Переменные представлены как X [55], и я не нашел, как заменить X [55] именем переменной, например, «температура». Когда я устанавливаю уровни равными 3 или выше, а график невозможно прочитать. Увеличение размера просто делает размытые символы больше, но все равно размытыми.

Вот некоторый код:

 X = df.drop ( ['target_var'], axis = 1 )
y = df [ [ 'target_var' ] ]
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)

model = tree.DecisionTreeClassifier( max_depth = 3 )

model.fit(X_train, y_train)
y_predict = model.predict(X_test)
accuracy_score(y_test, y_predict)

tree.plot_tree(model )
  

Ответ №1:

Часто требуется изменить размер графиков matplotlib, используя значения параметров rc, такие как размер рисунка и размер шрифта. Вы также можете изменить dpi, если хотите сильно увеличивать и уменьшать масштаб.

 import matplotlib as mpl
mpl.rcParams['figure.dpi'] = 300
mpl.rcParams['figure.figsize'] = [14, 10] # 14 by 10 inch
mpl.rcParams['font.size'] = 15
  

Что касается задания имен переменных, вы можете сделать это с помощью аргумента feature_names, просто передайте имена в виде списка строк.
https://scikit-learn.org/stable/modules/generated/sklearn.tree.plot_tree.html

Комментарии:

1. Это также изменит все, что использует эти значения, которые должны включать построение графиков библиотек sklearn.