Simple ClassifierをAdaBoostの弱学習器として使う

今回は,Simple ClassifierをAdaBoostの弱学習器として使ってみる.非線形な決定境界を実現するために,RBFSamplerを噛ませている.例にある,adaboost.pyを見ていただければと思うが,簡単にいうと,以下のようにしてモデルを作る.

from sklearn.ensemble import AdaBoostClassifier
from sklearn.kernel_approximation import RBFSampler
from sklearn.pipeline import Pipeline

classifier = AdaBoostClassifier(SimpleRandomBinaryClassifier(
        convert_y=True,
        random_state=0
), algorithm='SAMME', n_estimators=100, random_state=0)
pipe = Pipeline([
    ('transformer', RBFSampler()),
    ('classifier', classifier)
])

これをcirclesmoonsに適用すると,以下のような決定境界を得る.

enter image description here

enter image description here

結構うまく分類できているように見える.学習も早いので,弱学習器としては結構使えるのではないかと思う.しかし,まだマルチクラス対応をしていないので,実用上は微妙かも.一刻も早くマルチクラス対応したいと思います.

Written with StackEdit.

0 件のコメント:

コメントを投稿

機械学習の問題設定

機械学習の問題設定 機械学習の問題設定を見直したのでメモ. ( Ω , F , P ) (\Omega, \mathcal{F}, P) ( Ω , F , P ) : ベースとなる確率空間 ( X , F X ) (\mathcal...