我正在阅读有关决策树和装袋分类器的内容,并且我试图展示装袋分类器中使用的第一个决策树。我对输出感到困惑。
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))
这是输出的一个片段
据我了解,value
应该显示有多少样本被分类为每个类别。在这种情况下,不应该是value
字段总计为samples
场地?为什么这里的情况不是这样呢?
不错的收获。
似乎额外的引导样本包含在value
,但不在总数中samples
;逐字重复您的代码,但更改为bootstrap=False
消除差异:
随机森林中的行为类似,分类器和回归器 - 分别参见:
- 为什么“值”之和不等于 scikit-learn RandomForestClassifier 中“样本”的数量?
- sklearn RandomForestRegressor 显示的树值存在差异
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)