Подтвердить что ты не робот

AdaBoostClassifier с различными базовыми учениками

Я пытаюсь использовать AdaBoostClassifier с базовым учеником, отличным от DecisionTree. Я пробовал SVM и KNeighborsClassifier, но я получаю ошибки. Может ли кто-нибудь указать классификаторы, которые можно использовать с AdaBoostClassifier?

4b9b3361

Ответ 1

Хорошо, у нас есть систематический метод, чтобы узнать всех базовых учащихся, поддерживаемых AdaBoostClassifier. Метод совместимого базового ученика должен поддерживать sample_weight, который можно получить, выполнив следующий код:

import inspect
from sklearn.utils.testing import all_estimators
for name, clf in all_estimators(type_filter='classifier'):
    if 'sample_weight' in inspect.getargspec(clf().fit)[0]:
       print name

Это приводит к следующему результату: AdaBoostClassifier, BernoulliNB, DecisionTreeClassifier, ExtraTreeClassifier, ExtraTreesClassifier, MultinomialNB, NuSVC, Perceptron, RandomForestClassifier, RidgeClassifierCV, SGDClassifier, SVC.

Если классификатор не реализует pred_proba, вам нужно будет установить алгоритм параметра AdaBoostClassifier = 'SAMME'.

Спасибо Андреасу за то, что он показал, как перечислить все оценки.

Ответ 2

Вы не должны использовать SVM с Adaboost. Adaboost должен использовать слабый классификатор. Использование классификаторов, таких как SVM, приведет к переопределению.

Ответ 3

Любой классификатор, который поддерживает передачу весов пробы, должен работать. SVC - один из таких классификаторов. Какое конкретное сообщение об ошибке (и трассировка) вы получаете? Можете ли вы предоставить минимальный вариант воспроизведения для этой ошибки (например, как http://gist.github.com)?