DecisiontreeClassifier,为什么值的总和是错误的?

2024-05-29 01:36:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我可视化了我的decisiontreeclassifier,我注意到,样本的总和是错误的,或者以不同的方式表示“值”值与样本的值不匹配(屏幕截图)?我是否误解了我的决策树?我想如果在我的节点中得到100个样本,40个是真的,60个是假的,那么我在下一个节点中得到了40个(或60个)样本,这些样本被再次划分

import matplotlib.pyplot as plt
from sklearn import tree
tree1=DecisionTreeClassifier(criterion="entropy",max_features=13,max_leaf_nodes=75,min_impurity_decrease=0.001,min_samples_leaf=12,min_samples_split=20,splitter="best",max_depth=9)

tree1.fit(X_train,y_train)
feature_names=Daten.drop("Abwanderung_LabelEncode",axis=1).columns
class_names=["Keine Abwanderung","Abwanderung"]
fig = plt.figure(figsize=(25,20))
_ = tree.plot_tree(tree1, 
               feature_names=feature_names,
               class_names=class_names,
               rounded=True,
               filled=True)

Screenshot of a part of my decisiontree


Tags: importtree节点namestrainpltminmax
2条回答

情节是正确的

value中的两个值不是要转到子节点的样本数;相反,它们是节点中的负类计数和正类计数。例如,748=101+647;该节点中有748个样本,其中647个为正类。子节点有685和63个样本,685+63=647。左边的子节点有47个负样本,右边的节点有54个,47+54=101,负样本的总数

value字段并不表示拆分的大小,而是表示每个类存在多少数据点。例如,顶部节点voicemail_tarif_labelencode <= 0.5处的拆分有748个样本,101个属于索引0处的类,647个属于索引1处的类。它不显示数据点的数量<;=0.5和那些>;0.5. 如果现在查看下两个节点,则这些样本大小之和(685+63)=748,这是父节点中的样本数

相关问题 更多 >

    热门问题