我正在尝试从RandomForestClassifier
的树中提取每个节点的类计数。我的数据集中有3个班级,因此我希望看到类似[30,50,100]
的结果(第一个班级为30个,第二个班级为50个,第三个班级为100个。数字本身没有意义,但应为整数) ,但我得到的结果类似[80.353,60.123,85.357]
。为什么我会加倍?这也没有任何意义,好像您遵循单个树节点的切割一样,就不可能获得3个类别的非离散结果。
我尝试了单个决策树,结果总是整数。这很好,很期待。
clf=tree.DecisionTreeClassifier(max_depth=3,min_samples_split=0.05,min_samples_leaf=0.05)
clf=clf.fit(X_train,y_train)
clf.tree_.value
我明白了
结果
array([[[ 168., 1296., 261.]],
[[ 120., 734., 87.]], etc
所有不错的整数。
如果我尝试从RandomForest获取一棵树
from sklearn.ensemble import RandomForestClassifier
rfClf=RandomForestClassifier(n_estimators=100,max_depth=3,random_state=0,min_sample
s_split=0.05,min_samples_leaf=0.05,class_weight='balanced')
rfClf.fit(X_train,y_train)
clf=rfClf.estimators_[0]
clf.tree_.value
结果:
array([[[602.38095238, 570.5632716 , 579.40613027]],
[[136.9047619 , 96.72067901, 33.04597701]],
为什么会出现非整数,以及如何解释结果。在节点0处,我有602和1/3的结果A,以及570的半个结果B?
非常感谢您的帮助。预先感谢