web-dev-qa-db-ja.com

さまざまな基本学習者を持つAdaBoostClassifier

DecisionTree以外の基本学習者でAdaBoostClassifierを使用しようとしています。 SVMとKNeighborsClassifierを試しましたが、エラーが発生します。 AdaBoostClassifierで使用できる分類子を指摘できる人はいますか?

16
vdesai

わかりました。AdaBoostClassifierでサポートされているすべての基本学習者を見つけるための体系的なメソッドがあります。互換性のある基本学習者のfitメソッドは、次のコードを実行することで取得できる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。

分類子がpredict_probaを実装していない場合は、AdaBoostClassifierパラメーターalgorithm = 'SAMME'を設定する必要があります。

すべての推定量をリストする方法を示してくれたAndreasに感謝します。

36
vdesai

AdaboostでSVMを使用しないでください。 Adaboostはweak-classifierを使用する必要があります。 SVMのような分類器を使用すると、過剰適合になります。

4

サンプルの重みの受け渡しをサポートする分類器はすべて機能するはずです。 SVCはそのような分類子の1つです。どのような特定のエラーメッセージ(およびトレースバック)が表示されますか?このエラーの最小限の再現ケースを提供できますか(例: http://Gist.github.com )?

2
ogrisel