このデモの解説
このページは、機械学習のアルゴリズムの一つであるAdaBoost (Adaptive Boosting) の動作を視覚的に理解するためのデモです。AdaBoostは、単純な学習モデル(弱学習器)を複数組み合わせることで、精度の高い一つの強力なモデル(強学習器)を構築するアンサンブル学習の一種です。
AdaBoostと決定株の仕組み
このデモでは、弱学習器として決定株 (Decision Stump) を使用しています。決定株は、データを分類するために「垂直線」または「水平線」を1本だけ引く、非常にシンプルな分類器です。
AdaBoostの学習は、以下のステップを繰り返すことで進行します。
- 初期化: すべてのデータ点に均等な「重み(重要度)」を与えます。
- 弱学習器の学習: 現在のデータ点の「重み」を考慮して、最も分類エラーが少なくなるような決定株(最適な線の引き方)を見つけます。
- 弱学習器の評価: 学習した決定株の性能(エラー率)を評価し、その性能に基づいて「発言力の強さ(重み α)」を決定します。エラーが少ない賢い決定株ほど、大きな発言力を持ちます。
- データ点の重みの更新:
- 決定株が正しく分類したデータ点の「重み」を小さくします。
- 決定株が間違って分類したデータ点の「重み」を大きくします。
これにより、次のステップの弱学習器は、前回間違えた「難しい」データに集中して学習するようになります。
- 繰り返し: ステップ2〜4を、操作パネルで指定された回数だけ繰り返します。
最終的な予測は、これまでに作成したすべての決定株の予測を、それぞれの「発言力の強さ(α)」で重み付けした多数決によって行います。これにより、一本の線では分類できないような複雑なデータ分布も、うまく分類できるようになります。
画面の見方
- 左の画面
- 最終的な予測結果です。すべての弱学習器を組み合わせたアンサンブルモデルが、空間をどのように分類しているか(決定境界)を背景色で示しています。青い領域はクラスA、赤い領域はクラスBと予測された範囲です。
- 中央のパネル
- 操作パネルです。キャンバスに配置するデータ点(クラスA/B)を選択したり、ブースティングの回数(作成する弱学習器の数)をスライダーで調整したりできます。
- 右の画面
- 学習の過程をステップ・バイ・ステップで表示します。
- 学習が進むごとに、新しい弱学習器(決定株)のカードが追加されます。
- 各カード内の線は、その決定株が引いた分類境界線です。
- カード内の点の大きさは、その時点でのデータ点の「重み」を表します。分類が難しい点ほど、大きく描画される様子が確認できます。
α = ...
は、その弱学習器の「発言力の強さ」を示しています。