Найти - Пользователи
Полная версия: Усреднение.
Начало » Центр помощи » Усреднение.
1
Belg
Catboost, случайный лес и логическая модель обучались на одних и тех же данных. Хочу усреднить результаты их предсказаний. Как можно это реализовать?
scidam
Можно предположить, что используется scikit-learn.

В вашем случае можно использовать VotingClassifier с параметром voting='soft'.

При voting='soft' вероятности предсказаний каждого классификатора будут сложены, а результатом
классификации будет тот класс, который даст максимальную сумму. Это тоже самое, что и осреднение –
только без деления на число классификаторов.

Отсюда следует,
чтобы VotingClassfier работал с параметром voting=soft, нужно, чтобы передаваемые ему классификаторы (estimators),
имели метод predict_proba. Поскольку Catboost имеет api совместимый с scikit-learn (исходя из документации от яндекса) – у него есть такой метод, остальные – логистическая регрессия и случайный лес – тоже (если они взяты из sklearn) имеют метод predict_proba.

В общем, какой-то такой псевдокод должен привести к желаемому результату:

 avg_clf = VotingClassifier([('CB_classifier', CatBoostClassifier(...)),
                                          ('RF_classifier', RandomForestClassfier(...)),
                                          ('Logit', LogisticRegression(....))], voting='soft' )
avg_clf.fit('your train dataset') 
avg_clf.predict_proba('new data')   # or .predict('new data')



This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB