下面是我认为与我的问题有关的代码的详细信息。
False/0
〜66%和True/1
= 34%pandas_df['PP'] =(pandas_df['DET'].fillna(0) <1).astype('str')
False 48114
True 25089
Name: FP, dtype: int64
X= pandas_df[predictors]
y2= pandas_df.PP
tree_clf =DecisionTreeClassifier(max_depth=3, random_state=42,min_samples_leaf=500)
tree_clf.fit(X, y2)
dot_data2 =tree.export_graphviz(tree_clf,out_file=None,feature_names=(),....
pydot_graph = pydotplus.graph_from_dot_data(dot_data2)
pydot_graph.set_size('"0.5,0.5!"')
pydot_graph.write_png('resized_tree.png')
DTgraph=graphviz.Source(dot_data2)
DTgraph
该代码没有错误。图看起来很有意义。
但是:在每个显示的叶子/节点中,它表示为Class=False
。我通过创建另一个变量PP2只是将PP 0翻转为1和1翻转为0进行了测试。它说Class = True,因为在PP2中它是True,即66%。
我可以忍受PP2,稍微扭一下头就可以正确理解它。但是噩梦把这棵树呈现给商业观众。我通读了sklearn文档和用户指南。没有找到强制其预测TRUE概率的方法。我误读了Class = False吗?
有时整个树的颜色是蓝色。有一点褐色。我找不到任何可以说明的文件。并且颜色的度数随基尼值而变化。我知道在SAS Enterprise Miner决策树中,颜色表示分析性含义。在这里无法推断出类似的内容。
目标变量pp2是48114 = True,25089 = False。我只是通过使用一个预测变量来简单地处理我的情况。我想我复制了我最初的帖子的精髓
接下来仅是四个终端节点