|
|||||||||||||
|
|||||||||||||
|
「一番近い重心に集まる」→「集まった点の真ん中に重心が動く」・・・・・・このたった2つの操作を交互にくり返すだけで,ばらばらに置かれた点がいくつかのグループへ落ち着いていく過程を観察できるアプリの,しくみと数式の解説.
対象アプリ:k平均法学習
k平均法(k-means法)は,あらかじめ決めた個数 k のグループに,データをできるだけ「近いもの同士」でまとめる代表的な手法である.このアプリを操作すると,次のことが体感できる.
| 個体 | 盤面上の1つの点.ドラッグで自由に動かせる. |
| 重心 (セントロイド) |
各クラスターを代表する点(ひし形 G1, G2, … で表示).実体を持つデータ点ではなく,計算で求めた「そのグループの平均位置」. |
| 所属 | ある個体が,どの重心に最も近いか(=どのクラスターに属するか).個体の色は,所属している重心の色に合わせて塗られる. |
個体 と重心 の近さは,ユークリッド距離で測る.
個体と重心の距離
各個体は,最も距離が近い重心の所属になる.
所属の決定
所属
重心は,そのクラスターに現在所属している個体の座標の平均(重心=重さの中心)として計算し直す.クラスター に 個の個体が所属しているとき,
重心の更新
, (はクラスターに所属する個体)
「重心の更新」→「所属の決定」を1セットとして繰り返し,前回と比べて所属が変わった個体が1つもなくなったら,そこで終了(収束)とみなす.
このアプリの「次のステップ」ボタンは,手順4〜5をちょうど1回分だけ実行し,そのとき所属が変わった個体の数を表示するボタンである.
下の図は,2つの重心 G1・G2 と7つの個体の例である.境界付近にある個体は,重心の位置がわずかに動くだけで,所属する重心(=色)が入れ替わることがある.
初期値によって結果が変わる(局所最適).k平均法は,最初にランダムに選ばれる重心の位置しだいで,最終的にたどり着くグループ分けが変わることがある.同じ点の配置のまま「現在の位置でやり直す」を何度か押し,毎回同じグループ分けになるとは限らないことを確かめてみよう.
| 変えるもの | 起こりやすいこと |
| 初期重心の選ばれ方 | 同じ点の配置でも,収束後のグループ分けが変わることがある(局所最適) |
| クラスター数 k を増やす | グループがより細かく分割され,1回あたりの重心の移動距離は小さくなりやすい |
| クラスター数 k を減らす | 大まかな分割になり,色の境界をまたぐ大きな重心移動が起こりやすい |
| 個体数を増やす | 重心の位置がより安定し,1個の外れた点の影響を受けにくくなる |
| クラスタリング | データを,似ているもの同士のグループ(クラスター)に分ける作業. |
| 重心 (セントロイド) | クラスターに属する点の座標の平均.実データではなく計算で求めた代表点. |
| 所属 | ある個体がどのクラスター(重心)に属しているかという関係. |
| 反復 | 「重心の更新」→「所属の決定」の1セット.このアプリの「次のステップ」に対応. |
| 収束 | 反復を重ねても所属が変化しなくなった状態.これ以上結果が変わらないという合図. |
| 局所最適 | 初期条件しだいで,本当に最も良い分け方ではない結果に落ち着いてしまうこと. |
この記事は k平均法学習アプリ の実装内容にもとづく解説であり,実際にアプリを操作しながら読むことを想定している.
ホーム>>カテゴリー別分類>>データ分析>>k平均法(k-means法)を動かして学ぶ
最終更新日:2026年7月17日