機械学習

k平均クラスタリング(k-means法)とは? [Day24]

はじめに

この記事では教師なし学習の一つであるk平均クラスタリングについて考えていきます。

「k平均クラスタリングのkって何?」

「k平均クラスタリングにはどんな特徴があるの?」

といった疑問に答えていきたいと思います!

tota
tota
文系出身データアナリストのtotaです!初心者でも分かるように解説していきますね!

主成分分析との違い

K平均クラスタリングは教師なし学習の一つですが、同じく教師なし学習であり前回Day23で考えた主成分分析とは考え方が異なります。

主成分分析とは? [Day23]はじめに こちらの記事では教師なし学習の代表的手法である「主成分分析」について考えていきます。 「主成分分析はどんなことに役立つ...

そこでまずはK平均クラスタリングと主成分分析との違いについて考えます。

ここで主成分分析の記事でも見た以下の表をご覧ください。

こちらは鈴木さん、佐藤さん、斉藤さん、田中さん、高橋さんの小学生5人について、算数・理科・国語の3教科の点数を表にしたものです(5人の平均が0となるようにスコアリングしているのでマイナスの数値もあります)。

氏名 鈴木 佐藤 斉藤 田中 高橋
算数 0.7 -0.7  1.3  -0.2  -1.1 
理科 1.3 -0.2 0.7 -1.1 -0.7
国語 -1.1 -0.2 -0.7 1.3 0.7

主成分分析では上記のデータについて3つの教科の点数(=説明変数)を「要約」していました。

各々の教科の点数の特徴(=データのばらつき度合い)が最大限残るように3教科の点数を要約し、その要約したものを主成分スコアとして数値化していました。

主成分分析は説明変数の要約!

一方でk平均クラスタリングは「要約」というよりも「グルーピング」を行います。

重要なのは上記の3種類ある点数(=説明変数)をまとめようというのではなく、

鈴木さん、佐藤さん、斉藤さん、田中さん、高橋さんという5人の人たちをグループ分けしようとするものだという点です。

つまりk平均クラスタリングは、説明変数の要約という視点を持つ主成分分析とは異なり、1人1人のデータのグルーピングという視点を持つ手法ということになります。

k平均クラスタリングはサンプルデータのグルーピング!

k平均クラスタリングとは

k平均クラスタリングはデータのグルーピングを行う手法というわけですが、

その名前の「k」というのはデータをグループ分けした結果、何グループにまとめられるのかを表しています。

つまりk個のグループに分ける手法ということで「k」平均クラスタリングという名前が付けられています。

この「k」の具体的な数値の決定は分析者に委ねられています。

データを分けるグループ数を2個にするか3個にするか4個、5個…にするかは分析者がはじめに自由に決定できます。

またk平均クラスタリングの「平均」という言葉は、k個のグループの各重心を「平均」により導くことに由来しています。

k平均クラスタリングでは各データをk個のグループのうち最も距離が近いグループに割り振ります。

この「距離」を具体的に考えるために再度以下の表をご覧ください。

氏名 鈴木 佐藤 斉藤 田中 高橋
算数 0.7 -0.7  1.3  -0.2  -1.1 
理科 1.3 -0.2 0.7 -1.1 -0.7
国語 -1.1 -0.2 -0.7 1.3 0.7

いま鈴木さん、佐藤さん、斉藤さん、田中さん、高橋さんの5人をk平均クラスタリングにより第1グループと第2グループの2つに分けたいとします。

このとき5人の各データと第1・2グループとの各距離を算出するためには第1・2グループそれぞれの中心となる値を決める必要があります。

この中心となる値を重心といい、k平均クラスタリングではその重心の値として各グループに割り振られた人たちの平均値を用います。

計算の段取り

氏名 鈴木 佐藤 斉藤 田中 高橋
算数 0.7 -0.7  1.3  -0.2  -1.1 
理科 1.3 -0.2 0.7 -1.1 -0.7
国語 -1.1 -0.2 -0.7 1.3 0.7

計算の段取りは以下のようになります。

  1. まずグループ分けする数(kの値)を決定
    →例:鈴木さん、佐藤さん…の5人を第1・第2グループに分けることにする
  2. データをk個のグループにランダムに割り振る
    →例:5人をランダムに割り振った結果、鈴木さんと佐藤さんが第1グループ、残りの3人が第2グループに割り振られる
  3. k個のグループの平均を重心として算出
    →例:鈴木さんと佐藤さんの平均を第1グループの重心、残りの3人の平均を第2グループの重心として算出する
  4. 各グループの重心と各データとの距離を計算
    →例:第1・第2グループの重心と5人の各データとの距離を計算する※
  5. 各データを最短距離のグループに再割り振り
    →例:第1・第2グループとの距離を踏まえ、5人を第1・第2グループのより近い方に再度割り振りしなおす
  6. 再度k個のグループの平均を重心として算出しなおし、上記の段取りを繰り返す

k平均クラスタリングでは上記の段取りを結果が変化しなくなるまで繰り返すことで、k個のグループにデータをグルーピングすることができます。

※一般的に「ユークリッド距離」が用いられます。

まとめ

最後に今回の記事のポイントを整理します。

  • k平均クラスタリングはデータをk個のグループにグループ分けする手法
  • グループ数(kの値)は分析者がはじめに自由に決定する
  • 各グループの重心として各グループに割り振られているデータの平均を用いる
  • 各グループの重心と各データの距離を計算し、最短距離にあるグループに各データを割り振る

今回は以上になります。

最後まで読んでいただきありがとうございました!

統計学ベーシック講座【確率分布・推定・検定】

統計学の基礎を効率的に学べるベーシック講座です。統計学の入り口となる「確率分布・推定・検定」について豊富な図を用いて説明していきます。

2021年3月リリース後すでに8,500人以上の方に受講いただきベストセラーとなっています!ぜひこの機会に統計学や確率思考という一生モノのスキルを一緒に身につけましょう!

※上記リンクからですと時期によってはクーポンが自動適用されます。
※Udemyは世界最大級のオンライン学習プラットフォームです。以下記事にてUdemyをご紹介しておりますのでよろしければこちらもご覧ください。

Udemyとは?セールでお得な世界最大級のオンライン学習プラットフォームこの記事では世界最大級のオンライン学習プラットフォームであるUdemyをご紹介していきます!まだUdemyを使っていない方やこれから使お...