1. 定義と概要
k-means法とは、あらかじめ指定したクラスタ数kに基づき、データ点を最も近い重心(セントロイド。クラスタに属するデータの位置の平均を表す点)に割り当てる処理と、重心の再計算を繰り返す手法です。この反復によって、データをk個のクラスタ(似たデータをまとめたグループ)に分類する非階層クラスタリング(あらかじめ決めたクラスタ数にデータを振り分けるやり方)の代表的なアルゴリズムとして位置づけられます。
分類の正解ラベルを与えずにデータの分布だけから分ける教師なし学習(正解ラベルを与えずにデータの分布だけから傾向を学ぶ学習方式)の一種です。購買データや画像データのように大量の情報を似た者同士でまとめたい場面で使われます。
従来、大量のデータをグループ分けする際は、担当者が分類の基準をあらかじめ設定する手法が前提になっていました。しかし、データ量が増えるにつれて、正解ラベルなしでデータの近さだけから自動的にグループを作る手法が求められるようになり、その代表としてk-means法が広く使われています。
人が基準を決めずに済むぶん、扱うデータの種類や量が変わっても同じ枠組みを流用しやすい点も普及を後押ししています。計算の仕組みが単純で大規模なデータにも適用しやすい点も、広く使われている理由のひとつです。
2. 試験対策ポイント
理解するうえで中心になるのは、k-means法のアルゴリズムが進む手順です。処理は次の順序で進みます。
| 手順 | 処理の内容 |
|---|---|
| 1 | クラスタ数kを事前に指定する |
| 2 | k個の重心をランダムな位置に初期配置する |
| 3 | 各データ点を最も近い重心のクラスタへ割り当てる |
| 4 | クラスタごとに重心を再計算する |
| 5 | 重心の位置が変化しなくなるまで、3と4を繰り返す |
割り当てと重心の再計算を収束するまで繰り返す点が手順の骨子です。各段階を順番どおりに整理しておくことが試験対策上の重要な論点になります。
kは自動では決まらず、分析する側があらかじめ指定する必要がある制約も試験の論点です。決定の目安の一つが、クラスタ内誤差平方和(WCSS。各データと所属クラスタの重心との距離の二乗を足し合わせた値)の減少が鈍化する点を選ぶエルボー法です。エルボー法は、クラスタ数を増やしたときの誤差の減り方をグラフにして、減り方が鈍る場所からクラスタ数を決める方法です。
もう一つの目安として、シルエット分析(各データが自分のクラスタにどれくらいしっくり収まっているかを数値で評価する方法)も使われます。どちらもkを機械的に確定させる方法ではなく、妥当なkを見当づけるための材料という位置づけです。
初期値依存性も試験対策として重要なテーマです。初期の重心配置によって結果が変わり、本来の最適な分割とは異なる局所最適解(全体で見ると最善ではないが、その周辺だけを見るとそれ以上改善できなく見える解)に収束する場合があります。
この課題への対策として、初期の重心をなるべく互いに離れた位置に確率的に配置するk-means++(初期の重心をなるべく互いに離して配置し、初期値依存の問題を緩和するk-means法の改良版)が使われます。
あわせて、k-means法は教師なし学習に分類される点、クラスタが球状に近い分布を仮定するため複雑な形状のクラスタや外れ値(本来の分布から大きく外れた値)の影響を受けやすい点も論点です。データの形状によっては、球状を前提とするこの手法が適さない場合があるという制約も押さえておきたい点です。
3. 関連概念との比較・相違点
階層クラスタリングとの最大の違いは、クラスタ数を事前に指定するか否かという点にあります。k-means法はkを事前に指定する非階層クラスタリングであるのに対し、階層クラスタリングは個々のデータを出発点として近いもの同士を逐次統合していく手法で、クラスタ数をあらかじめ固定しません。分析の途中でクラスタ数の見直しができるかどうかという実務上の違いにもつながる論点です。
結果の表現形式と計算コストにも違いがあります。両手法の対応は次のように整理できます。
| 観点 | k-means法 | 階層クラスタリング |
|---|---|---|
| クラスタ数の指定 | kを事前に指定する | あらかじめ固定せず、任意の段階で選び直せる |
| 出力される結果 | どのデータがどのクラスタに属するかという分類結果のみ | 統合の全過程をデンドログラムとして表現できる |
| 計算コストとデータ規模 | 計算が高速で大規模データにも適用しやすい | データ量が増えると計算量が大きく、大規模データには不向き |
デンドログラムとは、階層クラスタリングの統合過程を枝分かれの図として表したものです。k-means法はこの図を生成せず、指定したk個への分類結果だけを返します。
クラスタ数の事前指定の有無と、出力がデンドログラムか単なる分類結果かという2点は、両手法を比較するうえで取り違えやすいポイントです。
4. ビジネス・実務での活用シナリオ
マーケティングの分野では、購買履歴や属性データをもとに顧客をk個のセグメントに分ける顧客セグメンテーションにk-means法が使われます。セグメントごとに異なる訴求のキャンペーンを設計できるため、すべての顧客に同じ施策を打つより高い反応率が見込めます。
画像処理の分野では、画像内の色(RGB値)をk個の代表色にクラスタリング(似たデータをまとめてグループ化すること)し、画像データを圧縮する用途に使われます。色の数を絞り込むことでファイルサイズを抑えながら、見た目の劣化を最小限にとどめられます。
リスク管理・与信の分野では、取引履歴や返済状況が似た顧客をクラスタ化し、クラスタ単位で貸し倒れリスクの傾向を把握する分析に使われます。個々の顧客を単独で評価するのではなく、似た傾向を持つ集団として捉えることで、審査基準の設計に活かせます。
業種は異なっても、いずれも大量のデータを人手ではなくアルゴリズムでグループ分けし、その後の意思決定に役立てるという共通点があります。
5. 要点まとめ
- k-means法は重心の初期配置、割り当て、重心更新の反復によって、データをk個のクラスタに分ける非階層クラスタリングの代表的なアルゴリズムです。
- クラスタ数kの事前指定と初期値依存性が論点で、対策としてのk-means++、k決定の目安としてのエルボー法やシルエット分析があわせて整理しておきたい要素です。
- 階層クラスタリングとの対比では、クラスタ数を事前指定するか否か、結果がデンドログラムか単なる分類結果かという違いがあります。
6. 確認問題
問1k-means法では、データを分類するクラスタの数kをあらかじめ人間が指定する必要がある。
解答・解説をみる
○ 正しい
k-means法はクラスタ数kを事前に指定する非階層クラスタリングのアルゴリズムであり、kを自動で決めることはできません。決定の目安としてエルボー法やシルエット分析が使われます。
問2k-means法は初期の重心の配置に関わらず、常に同じクラスタリング結果が得られる。
解答・解説をみる
× 誤り
k-means法は初期値依存性を持ち、初期の重心配置によって結果が変わり局所最適解に陥ることがあります。正しくは初期値によって結果が変わり得る手法であり、対策としてk-means++などの初期化方法が使われます。
問3階層クラスタリングでは分析結果としてデンドログラム(樹形図)が得られるが、k-means法ではデンドログラムは生成されない。
解答・解説をみる
○ 正しい
階層クラスタリングは逐次統合の過程をデンドログラムとして表現できるのに対し、k-means法はあらかじめ指定したk個のクラスタへの分類結果のみを出力し、階層構造を表す図は生成しません。

