首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >决策树分类器输出“男性”(如果是真的)和“男性”(如果错误)?

决策树分类器输出“男性”(如果是真的)和“男性”(如果错误)?
EN

Stack Overflow用户
提问于 2018-12-07 08:07:44
回答 1查看 978关注 0票数 0

我正在使用决策树分类器来尝试根据一种类型的节目来预测男性或女性。一旦我使用graphviz可视化决策树,该图形就会将男性输出为真和假。我在这个问题上有困难。

有可能不是我的代码错了,而是我的特性和目标变量。下面是jupyter记事本块中的代码:

代码语言:javascript
复制
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 

图形输出

任何想法或建议都是非常有用的!

EN

回答 1

Stack Overflow用户

发布于 2018-12-07 15:44:16

我认为这不是一棵完整的树。你是说预测方法总是有输出的男性吗?

根据这张图,我做了一些观察:

  1. 也许我错了,但是如果您的数据有两个类,那么图中的值数组应该只包含2个vals,我看到了3个。
  2. 您没有设置任何max_depth参数,对吗?如果不是,树应该展开,直到节点是纯的,这不是这里的情况。

也许试着把它转换成巴布亚新几内亚?使用这个- dot -Tpng tree.dot -o tree.png

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53665535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档