我可视化了我的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)
情节是正确的
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,这是父节点中的样本数相关问题 更多 >
编程相关推荐