我正在与决策树分类器一起尝试根据演出类型预测男性或女性。一旦使用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输出
任何想法或建议都将非常有帮助!
答案 0 :(得分:0)
我认为这不是完整的树。您是在说预测方法始终输出Male吗?
从图中我做了几个观察:
也许尝试将其转换为png?
用这个 -
dot -Tpng tree.dot -o tree.png