このデモの解説
このページは、機械学習の基本的なアルゴリズムの一つである決定木 (Decision Tree) がどのようにデータを分類するかをリアルタイムで視覚化するデモです。決定木は、データを分類するために一連の「質問」を繰り返すことで、木のような構造(ツリー構造)を構築します。
決定木の仕組み
決定木の学習は、データを最も効率よくグループ分けできる「質問」を見つけ出し、再帰的にデータを分割していくプロセスです。このデモでは、以下の手順で木を構築しています。
- 最適な質問を探す: データを「X座標が●●以下か?」「Y座標が△△以下か?」といった単純な質問で2つのグループに分割します。その際、分割後のグループがなるべく同じクラスのデータだけで構成される(=不純度が低くなる)ような、最も良い質問(軸と分割値の組み合わせ)を探します。この「不純度」の指標として、このデモではジニ不純度 (Gini Impurity) を用いています。
- データを分割する: 見つかった最適な質問に従って、データを2つのサブグループに分割します。
- 再帰的に繰り返す: 分割された各サブグループに対して、さらにステップ1と2を繰り返します。
- 停止する: この分割プロセスは、以下のいずれかの条件を満たしたときに停止します。
- 操作パネルで設定した「木の深さ (Max Depth)」に達した。
- 分割してもグループの不純度がそれ以上減少しない。
- グループ内のデータがすべて同じクラスになった。
最終的に、各末端のグループ(葉ノード)は、そのグループ内で最も多数を占めるクラスに分類されます。
画面の見方
- 左の画面
- データ空間と決定境界です。あなたが配置したデータ点(青と赤)と、それを分類するために決定木が学習した境界線(黒線)が表示されます。背景色は、その領域がどちらのクラスに予測されるかを示しています。
- 中央のパネル
- 操作パネルです。データ点のクラスを選択したり、決定木の複雑さを決める「木の深さ (Max Depth)」を調整したりできます。木の深さを大きくすると、データにぴったり沿った複雑な境界線を描けますが、未知のデータに対してうまく機能しなくなる「過学習(Overfitting)」のリスクも高まります。
- 右の画面
- 構築されたツリー構造を可視化したものです。一番上の根(ルート)から始まり、各分岐点(ノード)でデータ分割の「質問」が行われます。最終的に到達する末端(葉ノード)が、そのデータの予測クラスとなります。左の画面の決定境界線は、このツリー構造の各質問に対応しています。