📝 やること
- キャンバスをクリックしてデータ点を追加します
- 複数のグループに分かれそうなパターンでデータを配置してみましょう
- 例:左上、右上、下中央のように3つの塊を作ってみる
- 「クリア」ボタンで最初からやり直せます
💡 ポイント: クラスタリングは「教師なし学習」です。データにラベル(色)を付ける必要はありません。アルゴリズムが自動的にグループを見つけます。
📝 やること
- スライダーでクラスタ数kを調整します
- データをいくつのグループに分けたいかを決めます(通常2〜5程度)
- 「初期化」ボタンでランダムな位置にセントロイドを配置します
- 初期化すると大きな×印でセントロイドが表示されます
🎯 セントロイドとは? 各クラスタの「重心」です。最初はランダムな位置に配置され、データ点との距離に基づいて徐々に最適な位置に移動していきます。
📊 k の決め方: 適切なクラスタ数は問題によって異なります。エルボー法などで決定することもできますが、ここでは直感的に決めてみましょう。
📝 やること
- 「1ステップ実行」で1回の更新を実行します
- 各データ点が最も近いセントロイドに割り当てられます
- セントロイドがクラスタの重心に移動します
- 「収束まで実行」で自動的に収束するまで繰り返します
- セントロイドの位置がほとんど変わらなくなったら完了です
🔄 アルゴリズムの流れ:
- 割り当て: 各データ点を最も近いセントロイドのクラスタに割り当てる
- 更新: 各クラスタの重心(平均位置)を新しいセントロイドとする
- 繰り返し: セントロイドが変わらなくなるまで1と2を繰り返す
💡 ヒント: 初期値によって結果が変わることがあります。「リセット」して別の初期値で試してみましょう。また、クラスタ数kを変えると、データの分け方が大きく変わります。
📊 クラスタリングの特徴
教師なし学習: 正解ラベルなしでパターンを発見
k-means法: 最もシンプルで高速なアルゴリズム
距離ベース: ユークリッド距離で類似度を測定
反復最適化: セントロイドを繰り返し更新して収束
🎯 データ情報
📈 評価指標
Inertiaは各点とそのセントロイドとの距離の二乗和です。小さいほど良いクラスタリングです。
🎨 凡例
×印がセントロイド(重心)を表します
💡 活用例
• 顧客セグメンテーション
• 画像の色圧縮
• 異常検知の前処理
• 文書のグループ化