Классификатор дерева решений выводит «Male», если true, и «Male», если false? - PullRequest
0 голосов
/ 07 декабря 2018

Я работаю с классификатором дерева решений, чтобы попытаться предсказать Мужчину или Женщину на основе жанра шоу.Как только я визуализирую дерево решений с помощью graphviz, график выводит Male как True и False.У меня проблемы с этим вопросом.

Есть вероятность, что это не мой код, а мой функционал и целевые переменные.Вот код, который находится в блокноте блокнота jupyter:

Male = tmp[tmp['gender'] == 'M']
Female = tmp[tmp['gender'] == 'F' ]
X = tmp.loc[:, ['Fantasy', 'Romance']]
# 'Cars', 'Drama', 'Game','SliceofLife','Music', 'Psychological', 'Fantasy', 'Horror','Historical','Space','Sci-Fi', 'Magic', 'Adventure', 'Samurai', 'ShounenAi', 'Mecha', 'Thriller', 'Demons', 'Kids', 'Romance', 'Sports', 'Seinen', 'School', 'ShoujoAi', 'Comedy']]
y = tmp['gender']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0)

model_dtc = DecisionTreeClassifier() 
model_dtc = model_dtc.fit(X_train, y_train)
y_pred = model_dtc.predict(X_test)

df_dtc = pd.DataFrame({'Actual': y_test, 'Predicted': y_pred})  

tree.export_graphviz(model_dtc, out_file='gender_classifier.dot', feature_names=['Fantasy', 'Romance'],class_names=tmp['gender'] ,filled=True, rounded=True,special_characters=True)

dot_data = tree.export_graphviz(model_dtc, out_file=None, feature_names = ['Fantasy','Romance'], class_names = tmp['gender'] , filled=True, rounded=True, special_characters=True)
graph = graphviz.Source(dot_data)
graph 

вывод графика graphviz output

Любые мысли или предложения будут чрезвычайно полезны!

1 Ответ

0 голосов
/ 07 декабря 2018

Я думаю, что это не полное дерево.Вы хотите сказать, что метод прогнозирования всегда имеет вывод Male?

Из графика я сделал пару наблюдений:

  1. Может быть, я ошибаюсь в этом, но если ваши данныеимеет два класса, тогда массив value в графе должен содержать только 2 значения, я вижу три.
  2. Вы не установили параметр max_depth, не так ли?Если нет, то дерево должно расширяться до тех пор, пока узлы не станут чистыми, что здесь не так.

Может быть, попытаться преобразовать его в png?Используйте это - dot -Tpng tree.dot -o tree.png

...