1
データを入力しよう

📝 やること

  • キャンバスをクリックしてデータ点を追加します
  • 複数のグループに分かれそうなパターンでデータを配置してみましょう
  • 例:左上、右上、下中央のように3つの塊を作ってみる
  • 「クリア」ボタンで最初からやり直せます

💡 ポイント: クラスタリングは「教師なし学習」です。データにラベル(色)を付ける必要はありません。アルゴリズムが自動的にグループを見つけます。

2
クラスタ数kを設定しよう

📝 やること

  • スライダーでクラスタ数kを調整します
  • データをいくつのグループに分けたいかを決めます(通常2〜5程度)
  • 「初期化」ボタンでランダムな位置にセントロイドを配置します
  • 初期化すると大きな×印でセントロイドが表示されます
3

🎯 セントロイドとは? 各クラスタの「重心」です。最初はランダムな位置に配置され、データ点との距離に基づいて徐々に最適な位置に移動していきます。

📊 k の決め方: 適切なクラスタ数は問題によって異なります。エルボー法などで決定することもできますが、ここでは直感的に決めてみましょう。

3
クラスタリングを実行しよう

📝 やること

  • 「1ステップ実行」で1回の更新を実行します
  • 各データ点が最も近いセントロイドに割り当てられます
  • セントロイドがクラスタの重心に移動します
  • 「収束まで実行」で自動的に収束するまで繰り返します
  • セントロイドの位置がほとんど変わらなくなったら完了です

🔄 アルゴリズムの流れ:

  1. 割り当て: 各データ点を最も近いセントロイドのクラスタに割り当てる
  2. 更新: 各クラスタの重心(平均位置)を新しいセントロイドとする
  3. 繰り返し: セントロイドが変わらなくなるまで1と2を繰り返す

💡 ヒント: 初期値によって結果が変わることがあります。「リセット」して別の初期値で試してみましょう。また、クラスタ数kを変えると、データの分け方が大きく変わります。

📊 クラスタリングの特徴

教師なし学習: 正解ラベルなしでパターンを発見

k-means法: 最もシンプルで高速なアルゴリズム

距離ベース: ユークリッド距離で類似度を測定

反復最適化: セントロイドを繰り返し更新して収束

🎯 データ情報

データ点数: 0
クラスタ数 k: -
ステップ数: 0
状態: データ入力待ち

📈 評価指標

総距離(Inertia): -
収束: 未実行

Inertiaは各点とそのセントロイドとの距離の二乗和です。小さいほど良いクラスタリングです。

🎨 凡例

×印がセントロイド(重心)を表します

💡 活用例

• 顧客セグメンテーション

• 画像の色圧縮

• 異常検知の前処理

• 文書のグループ化