我目前正在scikit-learn下研究随机森林。
是否有可能改变在随机森林中使用的每个估计量的权重?
答案 0 :(得分:0)
您是否在询问如何更改每个估计量的权重 单独或如何更改 进行
predict()
时的投票系统?
拥有合适的随机森林时,参数estimators_返回决策树数组,并且可以单独编辑所有决策树,例如:
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,随机森林对于每个输出而言(所有树中的)概率最大,因此您可以分别处理每个决策树的预测概率。