k平均法(k-means法)とは、ラベルのないデータを指定したk個のクラスタへ分け、各クラスタの中心(セントロイド)を繰り返し更新する教師なし学習の手法です。顧客、商品、アクセス、センサーなどを特徴量で表し、似たデータを同じグループとして整理します。
計算が比較的分かりやすく、多くのデータへ適用しやすい一方、クラスタ数kを事前に決める必要があります。また、距離と平均を使うため、特徴量のスケール、外れ値、クラスタの形や大きさによって結果が変わります。本記事では、仕組み、kの決め方、初期値、評価、実務上の使いどころと限界を解説します。
k平均法はデータをk個の中心へ割り当てます
k平均法は、まずk個の中心を初期化し、各データを最も近い中心へ割り当てます。次に、割り当てられたデータの平均を新しい中心にし、割り当てと中心更新を繰り返します。中心がほとんど動かなくなる、または最大反復回数に達した時点で結果を確定します。
目的関数はクラスタ内のばらつきを小さくします
代表的な目的は、各データと所属クラスタ中心の距離の二乗和(inertia)を小さくすることです。クラスタ内の点が中心に近いほど値は小さくなります。ただし、inertiaはkを増やせば単調に小さくなるため、値だけでクラスタ数を決めることはできません。
k-means++は初期中心を選びやすくします
初期中心をランダムに選ぶと、局所的な解に収束し結果が変わることがあります。scikit-learnではk-means++が既定の初期化として使われ、互いに離れた初期中心を選びやすくします。それでも乱数の影響は残るため、random_stateを固定し、複数の初期化で結果を比較します。
前処理と距離の選択がk平均法の結果を左右します
身長をメートル、年収を円で入力するように特徴量の単位が異なると、値の大きい特徴量が距離を支配します。標準化、正規化、対数変換などを検討し、前処理の理由とパラメータを保存します。外れ値は中心を引っ張るため、削除、 winsorize、ロバストな前処理、別手法の比較を行います。
カテゴリデータを単純な整数へ置き換えると、数値の大小に意味があると誤解されます。one-hot化や埋め込み、カテゴリ向けの距離、混合データに対応した手法を検討します。k平均法を使う前に、入力特徴が本当に平均とユークリッド距離で比較できるかを確認します。
クラスタ数kは複数の観点から決めます
エルボー法はinertiaの減少が鈍る点を見ます
kを変えてinertiaを計算し、kを増やしても改善が小さくなる「肘」のような点を候補にします。ただし、曲線に明確な肘が出ないデータもあり、候補を一つに決める証明ではありません。業務上の利用単位や説明しやすさと合わせて判断します。
シルエット係数はクラスタ内外の距離を比較します
シルエット係数は、同じクラスタ内の距離と、最も近い別クラスタまでの距離を比較します。高いほど、所属クラスタに近く他クラスタから離れている傾向を示します。ただし、球状で均等なクラスタを前提とするk平均法の性質や、距離の選択を踏まえて解釈します。
業務で使える粒度を優先する場合もあります
顧客施策なら営業チームが運用できる人数や、商品管理なら補充ルールを変えられる単位が重要です。数値指標がわずかに高いkより、各クラスタの特徴を説明でき、施策を変えた結果を測定できるkを選ぶ方が、実務では価値につながることがあります。
k平均法の活用例
- 顧客セグメント:購入頻度、単価、カテゴリ、利用期間などで施策対象を探索する。
- 商品分類:売上、粗利、在庫回転、返品率を組み合わせ、管理単位を整理する。
- センサー状態:設備の稼働値を状態パターンへ分け、点検候補を探す。
- 文書ベクトル:埋め込みやTF-IDFをクラスタリングし、資料の棚卸しや検索改善に使う。
クラスタを作った後は、各クラスタの平均・中央値・分布・代表データを確認し、名前と業務上の意味を付けます。平均だけでは一部の外れ値や大きな分散を見落とすため、クラスタ内のばらつき、期間別の人数、重要顧客の偏りも確認します。
例えば顧客を分類する場合、クラスタごとに購入額の平均が違うだけでなく、継続率や問い合わせ内容、施策への反応が異なるかを確認します。クラスタを作るために使った特徴量だけでなく、後から得られる業務KPIを重ねて評価すると、単なる数値上のグループ分けを施策へつなげやすくなります。
再学習時には、クラスタ番号が以前と同じ対象を表すとは限りません。新旧の中心や代表データを対応づけ、ダッシュボードや配信ルールの参照先を確認します。データの分布が変わった場合に再評価する条件も、あらかじめ決めておきます。
複数回の初期化で安定性を確認します
k平均法は初期中心の選び方によって、異なる局所解へ到達する可能性があります。k-means++を利用しても、データが重なっている場合や外れ値がある場合は結果が揺れることがあります。同じkと前処理で乱数シードを変えて複数回実行し、クラスタの中心や所属が大きく変わらないかを確認します。
新しいデータへ割り当てる方法を決めます
学習済みの中心を保存すれば、新しいデータを最も近い中心へ割り当てられます。ただし、学習時と同じ欠損処理、標準化、特徴量の順序を適用しなければ、距離を正しく比較できません。入力の分布が学習時から大きく外れていないかを監視し、適用対象外の判定や再学習の基準も用意します。
割り当て結果を施策へ使うときは、クラスタの特徴を短い説明へまとめ、対象者が自分の所属理由を確認できるようにします。クラスタ名を「優良顧客」のように断定する場合は、購入額だけでなく継続率や利益、期間を確認し、名称が誤解を招かないかをレビューします。
新しいデータへ適用する際に、どの中心にも十分近くないデータが現れることがあります。その場合は無理に既存クラスタへ割り当てず、「未知」や「要確認」として扱う選択肢を用意します。外れたデータを定期的にレビューすることで、新しい顧客層や設備状態の発見にもつながります。
このような運用上の判定を含め、学習済み中心、前処理、評価値、採用理由を一つの実験記録へまとめ、更新時にも比較できる状態にします。
結果を業務で使う場合は、担当者が検証できる説明と更新履歴、適用期間、責任者、承認履歴も残します。次回更新時の再評価や監査の正式な判断材料として安全に継続的に活用できます。
この記録を残すことで、モデルの変更と施策の結果を切り分けられます。
k平均法の限界と他手法の使い分け
k平均法は、クラスタが概ね球状で、距離と平均が意味を持つデータに向きます。細長い形、密度が異なる集団、外れ値が多いデータでは、DBSCAN、階層的クラスタリング、ガウス混合モデル、スペクトラルクラスタリングなどを比較します。手法を変える前に、特徴量と距離の設計を見直すことも重要です。
クラスタ番号はモデルを再学習すると入れ替わることがあります。番号の一致を前提にダッシュボードを作らず、中心の特徴やクラスタ間の対応を再計算します。分布が変わったときに施策が誤って適用されないよう、クラスタ移動とデータドリフトを監視します。
k平均法を使う前のチェックリスト
- 何を似ていると定義し、どの距離を使うか決めたか。
- 特徴量の単位、欠損、外れ値、カテゴリ表現を確認したか。
- kの候補を複数試し、inertiaとシルエット係数を比較したか。
- 初期値と乱数シードを変えたときの安定性を確認したか。
- クラスタごとの代表値、分布、件数、重要対象を確認したか。
- 施策、監視、再学習、クラスタ番号の対応付けを運用に落としたか。
k平均法は使いやすい一方、前提を確認して利用します
k平均法は、データをk個の中心へ割り当て、中心を更新するシンプルなクラスタリング手法です。計算と説明が比較的分かりやすく、顧客・商品・設備などの初期探索に利用できます。kの選択、特徴量のスケール、初期値、外れ値、クラスタ形状を確認し、結果を過信しないことが重要です。
inertiaやシルエット係数だけでなく、代表データ、担当者の解釈、施策の実行可能性、期間をまたいだ安定性で候補を比較します。データ分布が変わる場合は再学習条件とクラスタの対応付けを記録し、分析結果を継続的に運用できるようにします。
よくある質問(FAQ)
ここでは、k平均法を使うときによくある疑問に、結論から回答します。
Q. k平均法とは何ですか?
ラベルのないデータをk個のクラスタへ分け、各クラスタの中心を繰り返し更新する教師なし学習です。距離が近いデータを同じグループにまとめます。
Q. kはいくつに設定すればよいですか?
エルボー法、シルエット係数、クラスタの解釈しやすさ、施策で扱える粒度を組み合わせて決めます。inertiaだけで自動的に決めることはできません。
Q. 標準化は必要ですか?
特徴量の単位や値の範囲が異なる場合は、多くの場合必要です。距離を使うため、大きな数値の特徴量が結果を支配しないよう、前処理を検討します。
Q. 外れ値が多いデータに使えますか?
そのまま使うと中心が外れ値に引っ張られることがあります。外れ値の意味を確認し、前処理、重み付け、ロバストな手法、DBSCANなどを比較します。
Q. クラスタ番号に意味はありますか?
番号自体に意味はありません。各クラスタの中心、代表データ、分布、業務上の特徴を確認し、再学習時は特徴の対応関係を再計算します。
参考資料
会社紹介
株式会社riplaでは、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを、構想策定・要件定義から開発・改善まで一気通貫で支援。事業会社でIT・DXを経験したプロフェッショナルによる高い要件定義力・システム設計力を活かし、事業成果の最大化に伴走します。

また、当社独自の開発テンプレート「Boxシリーズ」による標準機能の高速開発と、AI駆動開発の独自フレームワーク「GoDD」による独自機能のAI実装を組み合わせることで、低コスト・短期間で開発を実現いたします。

もし、システム開発やプロダクト開発に関するご要望がございましたら、お気軽にお問い合わせください。
・サービス概要資料のURLはこちら >>>
・お問合せページのURLはこちら >>>
・お役立ち資料のURLはこちら >>>


株式会社ripla 代表取締役CEOとして、システムパッケージ活用、システム開発、データ分析、生成AI活用、SaaS開発、アプリ開発、EC構築など、幅広い領域で企業のDX推進と事業成長を支援している。事業会社でIT・DXを経験したプロフェッショナルが集う株式会社riplaにおいて、お客様の事業・ユーザー・業務に最適化したオーダーメイド型システムを構想策定・要件定義から開発・改善まで一気通貫で支援し、単なるシステム納品にとどまらず、クライアントと同じ目線で事業成果の最大化に向けた伴走支援を行う。早稲田大学卒業後、ラクスル株式会社、LINEヤフー株式会社にて事業開発やDX推進などに従事した後、株式会社riplaを創業。
