您是在问如何更改每个估算器的权重
单独或如何改变每棵树的答案权重
做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,随机森林为每个输出获取最大概率(在所有树中),因此您可以单独处理每个决策树的预测概率。