titc.ai › BLOG
BLOG · AI入門・機械学習
k-means(クラスタリング)の動きをアニメーションで理解する
「似たもの同士を自動でグループ分け」の仕組みを、動かして確かめる
公開日 / 著者 富田 良治(TITC合同会社 代表社員)
k-means(ケーミーンズ)法は、似たもの同士をK個のグループに自動で分ける手法です。たとえば「お客様を購買の傾向で分ける」「店舗を売上のパターンで分ける」といった場面で使われます。下のデモで、グループ分けが少しずつ整っていく様子を見てみましょう。
動かして確かめる
点の一つひとつが、お客様(または店舗)だと思ってください。横軸・縦軸は、たとえば「買い物の頻度」と「1回あたりの金額」です。まずは「再生」を押してください。
反復回数:0 回
「再生」か「1ステップ進む」を押してください。
まとまりの悪さ(点と中心の距離の二乗和):-
まとまりの悪さの推移(下がるほど、グループが整っています)
四角い印が各グループの「中心」です。画面をクリック(タップ)すると点を追加できます。
何が起きているのか:2つの作業の繰り返し
k-meansがやっているのは、次の2つを交互に繰り返すことだけです。
- 割り当て:それぞれの点を、いちばん近い「中心」のグループに入れる。(デモで点の色が変わるところ)
- 更新:各グループの中心を、そのグループの点の「平均の位置」へ動かす。(デモで四角い印が滑るように動くところ)
中心が動くと、「いちばん近い中心」が変わる点が出てきます。そこでまた割り当て直し、また中心を動かし……と続けます。やがて誰もグループを変えなくなったら終わりです。これを「収束」と呼びます。グラフの「まとまりの悪さ」が、毎回同じか小さくなっていくのも確かめてみてください。
最初の中心は「とりあえずの当て推量」でかまいません。繰り返すうちに、中心がデータの塊の真ん中に落ち着いていくのが、この手法の面白いところです。
使うときの注意点
- Kは人が決めます。「3つに分けて」と指示すれば、実際は4つの塊があっても3つに分けてしまいます。デモでKを変えて、分かれ方の違いを見てください。
- 最初の中心の位置で、結果が変わることがあります。運が悪いと、いまひとつな分け方(局所解)で止まります。「データを作り直す」や「最初から」を繰り返すと、違う結果になることがあります。中心を互いに離れた位置から始める工夫が「k-means++」で、「最初の中心の置き方」で切り替えて比べられます。実務でも一般的に使われる方法です。
- 細長い形や三日月形は苦手です。「データの形」を「三日月形」にしてみてください。人の目には2つの塊に見えても、k-meansは「丸い塊」を前提にしているため、うまく分けられません。
- 単位の違う項目は、そろえる必要があります。「購入金額(円)」と「来店回数(回)」をそのまま使うと、数字の大きい金額ばかりが距離を決めてしまいます。平均0・ばらつき1にそろえる「標準化」を先に行うのが定石です。
中小企業での使いどころ
顧客名簿や売上データがあれば、「よく来る少額の常連」「たまに来て高額を買う層」のように、人が気づいていなかったグループを見つけるきっかけになります。グループごとに案内の文面や販促を変えるなど、打ち手の検討にもつながります。分けた結果に名前を付けて意味を考えるのは、現場を知る人の仕事です。
富田 良治(とみた よしはる)
TITC合同会社 代表社員
AI経営コンサルタント。中小企業診断士・ITストラテジスト。元ITエンジニアで駄菓子屋オーナー。 プロフィールを見る