获取随机森林中决策树的价值

get the value of decision trees in random forests

是否可以知道我得到预测值的树木数量? 我用随机森林算法做了一个物体检测项目

from sklearn.ensemble import RandomForestClassifier
RF_model = RandomForestClassifier(n_estimators = 50, random_state = 42)

# Train the model on training data
RF_model.fit(X_for_RF, y_train)

这里我有 50 棵树,我需要知道有多少棵树得到了这个预测值。

假设随机森林提取物对我来说这是苹果,然后我需要得到它判定为苹果的树的数量,例如“有 30 棵树告诉我这是苹果,另外 20 棵判定它是香蕉".

是的,这可以使用 estimators_ 属性实现:

RF_model = RandomForestClassifier(n_estimators = 50, random_state = 42)
RF_model.fit(X_for_RF, y_train)

trees = RF_model.estimators_
# Get all 50 tree predictions for the first instance
preds_for_0 = [tree.predict(X_for_RF[0].reshape(1, -1))[0] for tree in trees]

此处 trees 是来自 sklearn.treen_estimators(此处 50DecisionTreeClassifier() 个对象的列表。要从每棵树中获取 class 标签,您可以简单地使用 predict() 方法。

列表preds_for_0(长度50)存储每个组成树为X_for_RF[0]预测的标签。浏览此列表将很容易为您提供多数标签,以及哪棵树为实例提供了什么标签。