下面是我认为与我的问题相关的代码的详细信息。
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吗?