k平均法とは?意味・仕組み・活用例をわかりやすく解説

AIの初心者
「k-means 法」って難しそうですが、簡単に言うとどんな方法ですか?

AI専門家
k-means法は、似ているデータ同士をK個のグループに分けるクラスタリング手法です。たとえば、大きさや重さが近い積み木を自然なまとまりに分けたいときに使えます。

AIの初心者
なるほど。どうやって「似ている」と判断してグループに分けるのですか?

AI専門家
まずK個の中心を置き、各データを一番近い中心のグループへ割り当てます。その後、グループごとの中心を計算し直し、割り当て直す処理を繰り返します。Kは最初に決める必要があるため、選び方が大切です。
k平均法とは。
k平均法(k-means法)は、データを似たもの同士のグループに自動で分けるクラスタリングの代表的な手法です。正解ラベルを使わず、データ同士の距離を手がかりにまとまりを探すため、機械学習では教師なし学習の一種として扱われます。
k平均法とは何か

k平均法の目的は、データ全体をあらかじめ決めたK個のクラスタに分けることです。ここでいうクラスタとは、似た特徴を持つデータのまとまりを指します。たとえば購買履歴のデータなら「価格を重視する人」「特定カテゴリをよく買う人」「購入頻度が高い人」のような傾向を見つけるために使えます。
通常の「分類」は、犬・猫・車のような正解ラベルを学習データとして与えることが多いのに対し、k平均法は正解ラベルがない状態でデータのまとまりを探す点が特徴です。そのため、まだ中身がよく分からないデータを探索したいときや、顧客や商品を大まかなタイプに分けたいときに向いています。
名前に含まれる「平均」は、各クラスタの中心を、そのクラスタに属するデータの平均的な位置として計算することに由来します。この中心は重心、またはセントロイドと呼ばれ、k平均法では各データがどの重心に近いかを繰り返し確認しながらグループを調整します。
k平均法の仕組み

k平均法は、最初から完璧なグループを知っているわけではありません。まず仮の中心を置き、各データを最も近い中心に割り当てます。その後、割り当てられたデータの平均を取り、新しい中心を計算します。この割り当てと重心更新を何度も繰り返すことで、クラスタが徐々に安定していきます。
たとえば、身長と体重の2つの特徴を使って人のデータを分ける場合、各人は2次元の点として表せます。k平均法は、それぞれの点から最も近い重心を探し、近い重心を持つグループへ所属させます。すると、似た身長・体重の人が同じクラスタに集まりやすくなります。
この「近さ」は多くの場合、ユークリッド距離のような距離で測ります。ただし、距離を使う手法である以上、データの単位や尺度が結果に影響します。年齢、年収、購入回数のように桁や単位が違う特徴をそのまま使うと、数値の大きい項目が分類結果を強く左右することがあります。
計算手順と重心の式
k平均法の基本的な計算手順は、次のように整理できます。最初にKの値を決め、K個の初期中心を置きます。次に、各データを最も近い中心のクラスタへ割り当てます。その後、クラスタごとに重心を計算し直し、再び各データを最も近い重心へ割り当てます。重心がほとんど動かなくなるか、指定した繰り返し回数に達したら終了します。
重心は、クラスタに属するデータの平均として表せます。
\(\mu_j = \frac{1}{|C_j|}\sum_{x_i \in C_j} x_i\)ここで、\(\mu_j\) はクラスタ \(C_j\) の重心、\(x_i\) は各データ、\(|C_j|\) はそのクラスタに含まれるデータ数を表します。式だけを見ると難しく感じるかもしれませんが、意味は「同じグループに入った点の平均位置を新しい中心にする」ということです。
実務では、初期中心の置き方によって結果が変わることがあります。そのため、k-means++ のように初期中心を工夫する方法を使ったり、複数回実行して最もまとまりのよい結果を採用したりします。単に一度だけ動かして結果を信じるのではなく、安定性を確認することが重要です。
| 手順 | 内容 | 確認したい点 |
|---|---|---|
| Kを決める | 作りたいクラスタ数を事前に指定する。 | 分析目的に対して細かすぎないか、粗すぎないか。 |
| 初期中心を置く | K個の中心を仮に配置する。 | 初期値で結果が変わるため、複数回試す余地がある。 |
| 割り当てる | 各データを最も近い中心のクラスタへ入れる。 | 距離の測り方や尺度が適切か。 |
| 重心を更新する | クラスタ内のデータの平均位置を新しい中心にする。 | 外れ値で中心が大きくずれていないか。 |
| 終了判定する | 中心が安定するまで割り当てと更新を繰り返す。 | 結果が意味のあるまとまりになっているか。 |
Kの決め方

k平均法では、クラスタ数Kを自動で完全に決めてくれるわけではありません。Kが小さすぎると本来別々に見るべきデータが一つにまとめられ、Kが大きすぎると似たデータが細かく分かれすぎます。そのため、Kは分析目的とデータの性質を見ながら決める必要があります。
よく使われる方法の一つが、ひじ法です。Kを1、2、3と増やしながら、各データと所属クラスタの重心との距離の合計を確認します。Kを増やすほど距離の合計は小さくなりますが、ある地点から改善幅が急に小さくなることがあります。その曲がり角がひじのように見えるため、ひじ法と呼ばれます。
もう一つの代表的な考え方がシルエット法です。これは、各データが自分のクラスタにどれだけよく馴染んでいるか、別のクラスタからどれだけ離れているかを評価します。自分のクラスタ内では近く、他のクラスタとは離れている状態ほど、クラスタリングとして自然だと判断できます。
| 方法 | 見るもの | 使いどころ |
|---|---|---|
| ひじ法 | Kを増やしたときの距離合計の減り方。 | 改善幅が小さくなる目安を探したいとき。 |
| シルエット法 | クラスタ内のまとまりと他クラスタとの離れ具合。 | 分かれ方の自然さを数値で比較したいとき。 |
| 業務上の解釈 | 分けたクラスタが説明しやすく、施策に使えるか。 | 顧客分類や商品分類など、結果を行動に移すとき。 |
ひじ法やシルエット法は便利ですが、必ず一つの正解を示すものではありません。たとえばマーケティングで顧客を分けるなら、統計的に良いだけでなく、施策を作れる粒度かどうかも大切です。分析結果を見た人が「このクラスタにはこの対応をする」と判断できるかまで確認しましょう。
k平均法のメリットと注意点
k平均法の大きなメリットは、仕組みが比較的わかりやすく、計算も速いことです。データ数が多い場合でも扱いやすく、クラスタの中心を使って結果を説明できるため、初めてクラスタリングを学ぶときにも理解しやすい手法です。
一方で、注意点もあります。まず、k平均法は初期中心の置き方に影響されます。同じデータでも、初期値が違うと別の結果になることがあるため、複数回実行して比較するのが一般的です。また、極端に離れた外れ値があると、重心が引っ張られて本来のまとまりを見失うことがあります。
さらに、k平均法は丸いまとまりのクラスタを見つけるのが得意な一方、細長い形や複雑に曲がった形のクラスタには弱い傾向があります。データの形が複雑な場合や、ノイズが多い場合は、密度ベースクラスタリングなど別の手法も候補に入れるとよいでしょう。
| 観点 | 内容 | 対策 |
|---|---|---|
| メリット | 計算が単純で速く、結果を重心で説明しやすい。 | 探索的な分類や初期分析に使う。 |
| 初期値 | 最初の中心の置き方で結果が変わることがある。 | 複数回実行、k-means++、結果比較を行う。 |
| 外れ値 | 極端な値が重心を大きく動かすことがある。 | 前処理で外れ値を確認し、必要に応じて除外・補正する。 |
| 尺度 | 単位や桁の違いが距離計算に強く影響する。 | 標準化や正規化を行ってから分析する。 |
k平均法の応用例

k平均法は、データを大まかなタイプに分けたい場面で広く使われます。代表的なのは、顧客データの分析です。購入金額、購入頻度、興味のある商品カテゴリなどを使って顧客をクラスタに分けると、各グループに合った広告、メール、キャンペーンを考えやすくなります。
医療やヘルスケアの分野では、症状、検査値、生活習慣などのデータから、似た傾向を持つ患者群を整理する用途があります。ただし、医療判断ではクラスタリング結果だけで診断を確定するのではなく、専門家の知見や他の検査結果とあわせて慎重に扱う必要があります。
画像や写真の整理でも、k平均法の考え方は使われます。画像の色を近いもの同士でまとめれば代表色の抽出や画像圧縮に応用できますし、写真の特徴量を使えば似た写真をグループ化する手がかりになります。大量のデータから最初の見取り図を作る用途に向いた手法といえます。
| 分野 | 活用例 | 得られる効果 |
|---|---|---|
| マーケティング | 購買傾向による顧客セグメント作成。 | グループごとに施策や広告を変えやすい。 |
| 医療・ヘルスケア | 検査値や症状が似た患者群の整理。 | 傾向把握や仮説作成の補助になる。 |
| 画像処理 | 色の量子化、代表色抽出、写真の分類。 | 大量画像を扱いやすく整理できる。 |
| 業務データ分析 | 商品、店舗、問い合わせ内容などのグループ化。 | 全体像を把握し、改善対象を見つけやすい。 |
類似手法との違い

クラスタリングには、k平均法以外にもさまざまな手法があります。代表的な比較対象は、階層的クラスタリングと密度ベースクラスタリングです。どれが常に優れているというより、データの形、件数、目的に応じて使い分けます。
階層的クラスタリングは、データ同士の近さをもとに、木のような構造でまとまりを表します。どの段階で枝を切るかによってクラスタ数を変えられるため、分かれ方の過程を見たいときに役立ちます。ただし、データ数が非常に多い場合は計算量が問題になることがあります。
密度ベースクラスタリングは、データが密集している領域をクラスタとして見つける手法です。DBSCANのような手法は、複雑な形のクラスタやノイズを扱いやすい一方、密度の設定が結果に影響します。k平均法が苦手な、曲がった形や不規則なまとまりを扱うときに候補になります。
| 手法 | 特徴 | 向いている場面 | 注意点 |
|---|---|---|---|
| k平均法 | K個の重心を使ってデータを分ける。 | 丸いまとまりを速く分類したいとき。 | Kの事前指定、初期値、外れ値に注意。 |
| 階層的クラスタリング | データの近さを木構造で表す。 | 分かれ方の過程を確認したいとき。 | 大規模データでは計算量が増えやすい。 |
| 密度ベースクラスタリング | 密集した領域をクラスタとして捉える。 | 複雑な形やノイズを含むデータを扱うとき。 | 密度に関するパラメータ設定が必要。 |
まとめ
k平均法は、似たデータをK個のクラスタに分けるシンプルで扱いやすいクラスタリング手法です。重心の計算とデータの再割り当てを繰り返すことで、データのまとまりを自動的に見つけます。
ただし、Kの値、初期中心、外れ値、データの尺度によって結果が変わるため、前処理と結果の確認は欠かせません。ひじ法やシルエット法で候補を絞り、最終的には分析目的に合う分け方になっているかを確認することが大切です。
顧客分類、画像処理、医療データの整理など、k平均法は幅広い場面で使えます。まずは仕組みを理解し、データの性質に応じて階層的クラスタリングや密度ベースクラスタリングとの使い分けも検討しましょう。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年1月31日 | 初回公開 |
| 2026年7月8日 | 重心の式、Kの選定、外れ値対策を補って再編集 |
