sklearn.tree.DecisionTreeClassifier是否停留在预测最频繁的类别?

问题描述 投票:0回答:1

下面是我认为与我的问题有关的代码的详细信息。

  1. 我像这样创建了目标二进制变量PP,并附加了PP的分布。如您所见,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
  1. 下面是型号代码。目标是像大多数模型一样预测TRUE的概率]
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)
  1. 然后我将模型可视化如下(由于很长,我特意留了空白feature_name)
 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吗?

python scikit-learn decision-tree
1个回答
0
投票

有时整个树的颜色是蓝色。有一点褐色。我找不到任何可以说明的文件。并且颜色的度数随基尼值而变化。我知道在SAS Enterprise Miner决策树中,颜色表示分析性含义。在这里无法推断出类似的内容。

目标变量pp2是48114 = True,25089 = False。我只是通过使用一个预测变量来简单地处理我的情况。我想我复制了我最初的帖子的精髓

  1. Root:itemcounts≤1.5 gini = 0.451样本= 73203值= [25089,48114] class = False2T。基尼= 0.478样本= 29076值= [11465,17611]类别= False2楼itemcounts≤7.5 gini = 0.427样本= 44127值= [13624,30503] class = False2T-3T项目数≤4.5ini = 0.432samples = 41498value = [13089,28409] class = False2T-3F项数≤14.5 gini = 0.324样本= 2629值= [535,2094] class = False

接下来仅是四个终端节点

© www.soinside.com 2019 - 2024. All rights reserved.