随机森林分类器的“单个树”的节点提供每个类别的非整数计数

时间:2019-05-25 22:03:47

标签: scikit-learn random-forest

我正在尝试从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?

非常感谢您的帮助。预先感谢

0 个答案:

没有答案