Fresopiya
場所にもお金にも時間にも、何にも縛られない自由な状態になったら一体人間は何をしてどこに向かうのか。

まずはとにかく自由を目指すエンジニアのブログです。
「哲学」と「プログラミング」と「政治経済」、「ブログ」がメインになるかと。
統計分析

【統計分析】類似度の高い属性のデータを分類するk平均法(k-means)について

どうも、とがみんです。

この記事では、機械学習のクラスタリングの手法の一つである、k-means法について紹介します。

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

k平均法(k-means法)は、決められたクラスタ数に従って、近い属性、類似度の高い属性のデータを分類するクラスタリングのアルゴリズムの一つです。

【人工知能】機械学習におけるよるデータ分析手法の種類

クラスタの数「k」をあらかじめ決めておき、クラスタの平均からの距離の2乗和が最小となるように、クラスタV1〜Vkに分類するというものです。

k平均法のアルゴリズム

k平均法は以下のステップによって行われ、データをクラスタリングします。

  1. 各データxi(i=1,2,3,4…n)に対してランダムにクラスタを割り振る。
  2. 割り振ったデータを元に、各クラスタの中心Vj(j=1,2,…k)を計算する。
  3. 各xiと各Vjの距離を求め、xiを最も近いクラスタに割り当て直す。
  4. 上記の処理で全てのxiのクラスタの割り当てが変化しなかった場合、処理を終了する。

各データxi(i=1,2,3,4…n)に対してランダムにクラスタを割り振る。

全体を2つのクラスタに分類するとします。全てのデータを「赤」と「青」の2つのクラスタに以下のようにランダムに振り分けます。

割り振ったデータを元に、各クラスタの中心Vj(j=1,2,…k)を計算する。

以下のように、2つのクラスタ「赤」と「青」のそれぞれの中心を計算し、「V1」と「V2」とします。

各xiと各Vjの距離を求め、xiを最も近いクラスタに割り当て直す。

各データxiを、近い方のクラスタに割り当て直します。

上記の処理で全てのxiのクラスタの割り当てが変化しなかった場合、処理を終了する。

割り当て直した後、クラスタの中心を計算し直します。そして、上記の操作を繰り返していき、クラスタの割り当てに変化がなくなれば、処理を終了します。

このようにして、あらかじめ決めたクラスタの数にデータを分類していきます。

k平均法(k-means)のメリットデメリット

k平均法(k-means)のメリット、デメリットについてです。

メリット

  • アルゴリズムが単純

デメリット

  • 最初のクラスターをランダムに決定するため、実行するごとに結果が変わる。

    k平均法の結果は、最初のクラスタのランダムな割り振りに大きく依存するので、
    1回の結果で最良のものが得られるとは限らないので、何度か繰り返し行い、
    最良の結果を選択する手法や、k-means++法といった、最初のクラスタの中心点の振り方を工夫する手法が使用される。

  • クラスターの数がわからない時、適切な値を決める方法論がない。

    最適なクラスタ数を選ぶには、他の計算等による考察を必要がある。

k平均法の実用例

どのような場合に、このクラスタリング分析が使われるのかについてです。

よく使われるのは顧客情報を類似度の高い属性別に分類し、ユーザーの特性に合わせた内容のダイレクトメールを配布したりといった場所に利用されます。

>クラスター分析「使ってみたくなる統計」シリーズ 第3回

まとめ

機械学習のクラスタリングするための手法の一つである、k-means法についてまとめました。

参考文献

>大学教授のブログ (データ分析相談所)