График дерева решений / точность определения относительно максимальной глубины - PullRequest
0 голосов
/ 04 февраля 2020

Я пытался изобразить точность своего поезда и тестового набора из модели дерева решений. Поскольку я новичок в использовании python, я не был уверен, какой тип графического пакета мне следует использовать. Я использовал простой для l oop для получения распечатанных результатов, но не уверен, как] Я могу построить его.

Спасибо!

Мой код:

for x in max_depth_list :

  dtc =DecisionTreeClassifier(max_depth=x)
  dtc.fit(train_x,train_y)

  train_z = dtc.predict(train_x)
  train_z_prob = dtc.predict_proba(train_x)[:,1]

  test_z = dtc.predict(test_x)
  test_z_prob = dtc.predict_proba(test_x)[:,1]

  print("split: {}".format(x))
  print("model accuracy: {}".format(accuracy_score(test_y, test_z)))

желаемый график введите описание изображения здесь

1 Ответ

0 голосов
/ 04 февраля 2020

График на изображении, которое вы разместили, скорее всего, был создан с помощью модуля matplotlib.pyplot. Вы, вероятно, можете построить похожий график, выполнив что-то вроде этого, предположив, что вы импортировали другие необходимые зависимости:

import numpy as np
import matplotlib.pyplot as plt

max_depth_list = [1,2,3,4]

train_errors = [] # Log training errors for each model
test_errors = [] # Log testing errors for each model

for x in max_depth_list:
    dtc = DecisionTreeClassifier(max_depth=x) 
    dtc.fit(train_x,train_y)
    train_z = dtc.predict(train_x)
    test_z = dtc.predict(test_x)
    train_errors.append(accuracy_score(train_x, train_z))
    test_errors.append(accuracy_score(test_y, test_z))

x = np.arange(len(max_depth_list)) + 1 # Create domain for plot
plt.plot(x, train_errors, label='Training Error') # Plot training error over domain
plt.plot(x, test_errors, label='Testing Error') # Plot testing error over domain
plt.xlabel('Maximum Depth') # Label x-axis
plt.ylabel('Total Error') # Label y-axis
plt.legend() # Show plot labels as legend
plt.plot() # Show graph

Я также новичок в этом сообществе, поэтому я не в состоянии дать совет другим пользователям. Тем не менее, это, вероятно, хорошая идея отформатировать ваш исходный код для лучшей читаемости и представления. Просто один на один.

Надеюсь, это поможет. Дайте мне знать, если что-то неясно.

...