为什么该决策树每一步的值之和不等于样本数?

2023-12-14

我正在阅读有关决策树和装袋分类器的内容,并且我试图展示装袋分类器中使用的第一个决策树。我对输出感到困惑。

from sklearn.model_selection import train_test_split
from sklearn.datasets import make_moons
from sklearn.ensemble import BaggingClassifier
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import export_graphviz
from graphviz import Source

X, y = make_moons(n_samples=500, noise=0.30, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)

bag_clf = BaggingClassifier(
    DecisionTreeClassifier(), 
    n_estimators=500,
    max_samples=100, 
    bootstrap=True, 
    n_jobs=-1)
bag_clf.fit(X_train, y_train)

Source(tree.export_graphviz(bag_clf.estimators_[0], out_file=None))

这是输出的一个片段

enter image description here

据我了解,value应该显示有多少样本被分类为每个类别。在这种情况下,不应该是value字段总计为samples场地?为什么这里的情况不是这样呢?


不错的收获。

似乎额外的引导样本包含在value,但不在总数中samples;逐字重复您的代码,但更改为bootstrap=False消除差异:

enter image description here

随机森林中的行为类似,分类器和回归器 - 分别参见:

  • 为什么“值”之和不等于 scikit-learn RandomForestClassifier 中“样本”的数量?
  • sklearn RandomForestRegressor 显示的树值存在差异
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么该决策树每一步的值之和不等于样本数? 的相关文章