Sklearn AdaBoost с полиномом SVM предсказывает все 1 - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь создать модель, используя AdaBoost с полиномиальным SVM в качестве базового классификатора.

Фрагмент кода выглядит следующим образом:

base_clf = SVC(kernel='poly', degree=3, class_weight='balanced', gamma='scale', probability=True)
model = AdaBoostClassifier(base_estimator=base_clf, n_estimators=10)
model.fit(X_train, y_train)
y_predict = model.predict(X_test)

Проблема, с которой я сталкиваюсь, заключается в том, чтомодель всегда предсказывает только 1

Неправильно ли использовать AdaBoost с SVM в качестве базового классификатора? Пожалуйста, руководство.

1 Ответ

1 голос
/ 22 октября 2019

Неправильно ли использовать AdaBoost с SVM в качестве базового классификатора? Пожалуйста, руководство.

На практике мы никогда не используем SVM в качестве базовых классификаторов для Adaboost.

Adaboost (и аналогичные методы ансамбля) были задуманы ~ 20 лет назадиспользование деревьев решений (DT) в качестве базовых классификаторов (более конкретно, решение пни , т.е. DT с глубиной только 1);есть веская причина, почему до сих пор, если вы не укажете явно аргумент base_classifier, он принимает значение DecisionTreeClassifier(max_depth=1), то есть пень решения.

DT подходят для такого объединения, потому что онипо существу, нестабильные классификаторы, что не относится к SVM, следовательно, последние не должны предлагать что-либо, когда они используются в качестве базовых классификаторов для повышения алгоритмов.

...