我目前正在使用scikit-learn实现随机森林。
是否有可能改变生成的随机森林中每个估算器的权重?
我目前正在使用scikit-learn实现随机森林。
是否有可能改变生成的随机森林中每个估算器的权重?
predict()
时如何更改投票系统中每棵树的答案权重?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]
来选择第一个。
然后,如果您阅读决策树文档,您可以更改feature_importances_。
如果您的问题是如何更改随机森林投票系统,那么我建议您查看代码,但是让我告诉您,修改此功能不是一个好决定。
正如您在这里所看到的,随机森林对于每个输出都采用最大概率(所有树中的概率),因此您可以单独使用每个决策树的预测概率来进行操作。