【问题标题】:Changing the weights of each tree in a random forest改变随机森林中每棵树的权重
【发布时间】:2020-02-10 08:26:39
【问题描述】:

我目前正在 scikit-learn 下研究随机森林。

有没有一种可能的方法来改变生成的随机森林中使用的每个估计器的权重?

【问题讨论】:

  • 您好 NWgs,欢迎来到 StackOverflow!为了帮助 SO 社区的其他人回答您的问题,最好提供minimal reproducible example。这样,其他人可以指出您的代码有什么问题。另请参阅this question,了解如何提出更好的问题。干杯:)
  • 嗨 NWgs,你有什么理由想要这样做吗?根据您的问题,最好从统计社区获得帮助:stats.stackexchange.com

标签: python scikit-learn


【解决方案1】:

您是在问如何更改每个估算器的权重 单独或如何改变每棵树的答案权重 做predict()时的投票系统?

当你有一个拟合的随机森林时,参数 estimators_ 返回一个决策树数组,所有这些都可以单独编辑,f.e:

from sklearn.ensemble import RandomForestClassifier

model = RandomForestClassifier(n_estimators=2)

df = pd.DataFrame([[1, True], [2, False]])

model.fit(df[0].to_numpy().reshape(-1,1), df[1])

print(model.estimators_)

输出:

[DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',
                    max_depth=None, max_features='auto', max_leaf_nodes=None,
                    min_impurity_decrease=0.0, min_impurity_split=None,
                    min_samples_leaf=1, min_samples_split=2,
                    min_weight_fraction_leaf=0.0, presort='deprecated',
                    random_state=1942352063, splitter='best'),
 DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',
                        max_depth=None, max_features='auto', max_leaf_nodes=None,
                        min_impurity_decrease=0.0, min_impurity_split=None,
                        min_samples_leaf=1, min_samples_split=2,
                        min_weight_fraction_leaf=0.0, presort='deprecated',
                        random_state=1414900336, splitter='best')]

所以你可以使用model.estimators_[0]来选择第一个。

然后,如果您阅读了Decision tree docu,则可以更改feature_importances_。

如果您的问题是如何更改随机森林投票系统,那么我建议您使用look at the code,但让我告诉您,修改此功能不是一个好的决定。

如您所见here,随机森林为每个输出获取最大概率(在所有树中),因此您可以单独处理每个决策树的预测概率。

【讨论】:

  • 感谢您的详细回复。是的,我目前正在测试生成的随机森林的权重,看看它是否优于内置的权重生成器。我会按照你的建议进入代码。
  • 我正在寻找一个与 MATLAB 中的相关或相似的 python/scikit 学习功能:TreeBagger。您可以在此类上自定义树的创建。 BaggingClassifier和这个类似吗?
猜你喜欢
  • 2013-10-26
  • 2018-05-27
  • 2019-09-01
  • 2019-11-16
  • 2014-04-20
  • 2020-02-28
  • 2014-05-05
  • 2018-05-23
  • 2016-10-08
相关资源
最近更新 更多