正解ラベルのないデータの山から、「似た者同士のグループ」を自動で見つけ出す——教師なし学習の代表タスク「クラスタリング」で、最も基本となる手法がk-means法です。名前の由来である「k」と「means(平均)」の意味がわかれば、仕組みは驚くほどシンプルです。
📖 ひと言でいうと
k-means法とは、データをあらかじめ自分で決めたk個のクラスタ(グループ)に分ける、階層なしクラスタリングの代表的手法です。各クラスタの「平均(重心)」を計算し、データを一番近い重心のクラスタに割り当てる操作を繰り返してグループ分けを仕上げます。
身近な例えでいうと、体育館に集まった生徒を「3か所の集合場所」に分ける作業です。まず3人のリーダーを仮に立て、各生徒は一番近いリーダーの所へ集まります。次に各集団の真ん中(平均位置)にリーダーが移動し、また生徒が一番近いリーダーへ集まり直す——これを繰り返すと、自然と3つのまとまった集団に落ち着きます。この「3」にあたるのがkです。
🖼 1枚でわかるk-means法
📘 公式テキストの説明
階層なしクラスタリングの一種であり、クラスタの平均を用いて、与えられたクラスタ数をk個に分類する。k個のkは自分で設定する。k-means法を用いた分析のことをクラスタ分析といい、データセット内の類似性に基づいてグループ化することが目的となる。この手法は、データの特徴を捉えることで意味のあるカテゴリ分けを行い、データ解析において有用な情報を得ることができる。
押さえるべきは3点です。第一に「階層なしクラスタリング」に分類されること(階層ありのウォード法との対比で問われます)。第二に「クラスタの平均」を使うこと(これが名前のmeansです)。第三に「kは自分で設定する」こと。アルゴリズムはグループ分けはしてくれますが、いくつに分けるべきかまでは教えてくれない、という点が特徴であり限界でもあります。
🔍 しっかり理解する
アルゴリズムの流れ
k-means法の手順は、「割り当て」と「重心の更新」の繰り返しです。
「割り当て」と「重心更新」を交互に繰り返すと、やがてどのデータの所属も変わらなくなり(収束)、そこで完了です。各ステップの計算は「距離を測る」「平均を取る」だけなので、大量のデータにも適用しやすい軽さがk-means法の強みです。
なお、最初に置く重心の位置によって最終的な分かれ方が変わることがあります(初期値依存)。実務では初期値を変えて複数回実行してよい結果を採る、初期重心を工夫して選ぶ(k-means++と呼ばれる改良)といった対策が使われます。
kは誰が決めるのか
公式テキストが強調するとおり、kは自分で設定します。顧客を「3タイプに分けたい」のか「10タイプに分けたい」のかは分析の目的次第であり、データが自動で教えてくれるものではありません。ただし手がかりが全くないわけではなく、kを変えながらクラスタ内のばらつきの減り方を見て「これ以上増やしても改善が小さくなる点」を探す方法(エルボー法と呼ばれます)などが目安として使われます。
教師なし学習・クラスタ分析としての位置づけ
k-means法は正解ラベルを使わない教師なし学習です。k-means法を用いた分析はクラスタ分析と呼ばれ、データセット内の類似性に基づいてグループ化し、データの構造を理解することが目的です。分類問題(教師あり)がラベルを「当てる」のに対し、クラスタ分析はラベルのないデータから「意味のあるカテゴリ分け」を見つけ出す、という違いを意識しましょう。また、クラスタに階層構造(入れ子のまとまり)を求める場合は、階層ありクラスタリングのウォード法が使われます。
💡 具体例で考える
代表的な応用が、マーケティングの顧客セグメンテーションです。ECサイトの顧客について「購入頻度」「平均購入額」「最終購入からの日数」といった数値データを用意し、k=4でk-means法を実行すると、たとえば「高頻度・高額の優良層」「頻度は低いが高額の層」「頻度は高いが少額の層」「休眠層」のような4グループが浮かび上がります。事前に「優良顧客」のラベルを誰かが付けたわけではなく、データの類似性だけからグループが見つかるのが教師なし学習らしいところです。見つけたグループごとに施策(クーポン・休眠掘り起こしメールなど)を変える、といった活用につながります。
もう1つの例は画像の減色処理です。画像の各ピクセルの色を数値データとみなし、k=16でクラスタリングすると、画像全体が16色の代表色(各クラスタの平均色)で塗り直せます。「クラスタの平均を代表として使う」というk-means法の性質が、そのまま役立っている例です。
⚠️ よくある誤解・紛らわしい用語
- 「kは自動で決まる」は誤り: kは分析者が自分で設定します。「最適なクラスタ数を自動決定する」という選択肢は誤答です。
- k近傍法(k-NN)との混同: 名前が似ていますが、k近傍法は「近くのk個のラベルから多数決する教師あり学習(分類)」、k-means法は「ラベルなしでk個に分ける教師なし学習(クラスタリング)」です。試験で最も狙われる混同ペアです。
- ウォード法との対比: k-means法は階層「なし」クラスタリング、ウォード法は階層「あり」クラスタリングです。デンドログラム(樹形図)が出てくるのはウォード法側です。
- クラスタに正解ラベルが付くわけではない: k-means法が出すのは「グループ分け」だけで、各グループが何を意味するかは人間が解釈して名前を付けます。
📝 試験でのポイント
- 「階層なしクラスタリングの一種」「クラスタの平均を用いる」「kは自分で設定する」の3点は、そのまま正誤・穴埋めの素材になります。
- k近傍法(教師あり・分類)とk-means法(教師なし・クラスタリング)の取り違えを誘う選択肢が定番です。「教師あり/なし」から判別しましょう。
- ウォード法・デンドログラムとの対応(階層あり側)と混ぜて出題される可能性があります。
- 「k-means法を用いた分析=クラスタ分析」という用語の対応も押さえておきましょう。
📚 まとめ
k-means法は、クラスタの平均(重心)を用いてデータを自分で決めたk個のグループに分ける、階層なしクラスタリングの代表手法です。「割り当て→重心更新」の反復というシンプルな仕組みで、顧客セグメンテーションなどのクラスタ分析に広く使われます。kは自動では決まらないこと、教師あり学習のk近傍法とは別物であること、階層ありのウォード法との対比——この3点を押さえれば試験対策は万全です。
