获取随机森林中决策树的价值
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.tree
的 n_estimators
(此处 50)DecisionTreeClassifier()
个对象的列表。要从每棵树中获取 class 标签,您可以简单地使用 predict()
方法。
列表preds_for_0
(长度50)存储每个组成树为X_for_RF[0]
预测的标签。浏览此列表将很容易为您提供多数标签,以及哪棵树为实例提供了什么标签。
是否可以知道我得到预测值的树木数量? 我用随机森林算法做了一个物体检测项目
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.tree
的 n_estimators
(此处 50)DecisionTreeClassifier()
个对象的列表。要从每棵树中获取 class 标签,您可以简单地使用 predict()
方法。
列表preds_for_0
(长度50)存储每个组成树为X_for_RF[0]
预测的标签。浏览此列表将很容易为您提供多数标签,以及哪棵树为实例提供了什么标签。