AdaBoostClassifier与不同的基础学习者

vde*_*sai 16 machine-learning adaboost scikit-learn

我正在尝试将AdaBoostClassifier与DecisionTree之外的基础学习器一起使用.我尝试过SVM和KNeighborsClassifier,但是我收到了错误.有人可以指出可以与AdaBoostClassifier一起使用的分类器吗?

vde*_*sai 36

好的,我们有一个系统的方法来找出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
Run Code Online (Sandbox Code Playgroud)

这导致以下输出:AdaBoostClassifier,BernoulliNB,DecisionTreeClassifier,ExtraTreeClassifier,ExtraTreesClassifier,MultinomialNB,NuSVC,Perceptron,RandomForestClassifier,RidgeClassifierCV,SGDClassifier,SVC.

如果分类器未实现predict_proba,则必须设置AdaBoostClassifier参数algorithm ='SAMME'.

感谢Andreas展示如何列出所有估算器.


Dev*_*kur 5

您不应将 SVM 与 Adaboost 一起使用。Adaboost 应该使用弱分类器。使用像 SVM 这样的分类器会导致过拟合。