今回は,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)
])
これをcircles
,moons
に適用すると,以下のような決定境界を得る.
結構うまく分類できているように見える.学習も早いので,弱学習器としては結構使えるのではないかと思う.しかし,まだマルチクラス対応をしていないので,実用上は微妙かも.一刻も早くマルチクラス対応したいと思います.
Written with StackEdit.
0 件のコメント:
コメントを投稿