データをk個のグループに分けるクラスタ分析の一種。元のデータからグループ構造を見つけ出し、それぞれにまとめる。
①まずは適当にデータをk個のクラスタに振り分ける。
②各クラスの重心を求める。
③まとまったk個の重心と各データの距離を求め、各データを最も距離が近い重心に対応するクラスタに振り分けなおす。
④重心の位置が(ほぼ)変化なくなるまで②、③を繰り返す。
結果は、最初のクラスタのランダムな割り振りに大きく依存することが知られており、1回の結果で最良のものが得られるとは限らない。そのため、何度か繰り返して行って最良の結果を選択する手法や、k-means++法のように最初のクラスタ中心点の振り方を工夫する手法などが使用されることがある。

