Вы спрашиваете, как изменить вес каждого оценщика индивидуально или как изменить вес ответа каждого дерева в системе голосования при выполнении 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]
.
Затем, если вы прочитаете документ Дерево решений , вы можете изменить feature_importances_ .
Если Ваш вопрос заключается в том, как изменить систему случайного голосования, тогда я рекомендую вам взглянуть на код , но позвольте мне сказать вам, что изменить эту функцию - не очень хорошее решение. .
Как вы можете видеть здесь , случайный лес получает для каждого выхода наибольшую вероятность (из всех деревьев), поэтому вы можете работать с вероятностью прогнозирования каждого дерева решений в отдельности.