我尝试使用AdaBoostClassifier并选择DecisionTree之外的基础学习器。我尝试过SVM和KNeighborsClassifier,但都遇到了错误。AdaBoostClassifier可以使用哪些分类器作为基础学习器?
回答:
好的,我们有一个系统的方法来找出AdaBoostClassifier支持的所有基础学习器。兼容的基础学习器的fit方法需要支持sample_weight,可以通过运行以下代码来获取:
import inspectfrom sklearn.utils.testing import all_estimatorsfor 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.
如果分类器没有实现predict_proba
,你需要将AdaBoostClassifier的参数algorithm设置为’SAMME’。