統計学などの分野を学習していくと耳にする機会があるかもしれない「k平均法」。
概要だけでも良いからk平均法についてざっくり知りたい!
という人に向けて、大学でk平均法に触れた私が自分なりに咀嚼して解説してみました。
ちなみにこのブログではこのような記事も公開しています。
気になった方はぜひご覧ください!
-
[文系向け]ラグランジュ未定乗数法って?文系がざっくり解説します
続きを見る
k平均法
k平均法とは何か?
k平均法とは?
k平均法(k-means法)は、データをk個のクラスター(集団)に分類する方法です。
これによって、似たようなデータ同士に分類することができます。
k平均法を使うと、似た値を取るデータ同士をk個のまとまりに分類することができます。
Rでk平均法を実装する場合、あらかじめkの値を自分で決める必要があるのが特徴です。
また、k平均法は教師なし学習です。
教師なし学習とは?
正解を与えない状態で行う機械学習のことです。
複数のデータからデータの特徴を分析し、
データの規則性を見つけたり、データを分類したり簡略化するのが主な目的です。
機械が自ら学習するイメージを持つと良いと思います。
一方、教師あり学習は、正解をあらかじめ与えた状態で行う機械学習のことです。
教師あり学習は新しくデータを与えたときに高精度で正解を導き出すモデルを作成することが目的です。
回帰分析する際などに使われます。
k平均法の手順
では次に、k平均法がどのような手順でデータを分類しているのか説明します。
kの値を決める
Rの場合、kの値はあらかじめ人の手によって決める必要があります。
k個のクラスターの初期中心点を決める
こちらもあらかじめ設定する必要があります。
Rでは特に指定が無い場合、初期中心点はランダムに設定されます。
初期中心点に基づいて各データを分類する
各データは、各データ自身と最も距離の近い中心点の属するクラスターに分類されます。
新しく中心点を設定し直す
各データをクラスターに分類できたら、中心点を設定し直します。
中心点(重心)は各クラスター内のデータの平均値と等しくなります。
新しい中心点に基づいて各データを再分類する
新しく中心点を決めることができたら、この中心点に基づいて各データを再分類します。
step3と同様に、最も距離の近い中心点に各データは再分類されます。
このとき、所属するクラスターが変わるデータもあれば、変わらないデータもあります。
各データの割り当てが変化しなくなるまで繰り返す
step4とstep5を繰り返し、
各データのクラスターへの割り当てが変化しなくなるまで行います。
Rでのk平均法の実装方法
続いて、Rでk平均法を実装する方法を紹介します。
使用する関数
kmeans(x, centers = y, nstart =z )
Rでk平均法を行う場合、上記のようにコードを書きます。
まず、kmeans()でk平均法を実行します。
xにはk平均法を実行したいデータの集合が入ります。
xに入るデータは行列である必要があります。
centersはクラスターの数を指定する引数です。
nstartは初期中心点の数を指定する引数です。
nstartで指定する数はcentersで指定した値よりも大きくても大丈夫です。
これらの引数の他に、iter.maxという引数もあります。
これは、繰り返しの上限数を指定するものです。
まとめ
k平均法
- k平均法は、データをk個のクラスターに分類する教師なし学習
- 似たようなデータに分類することができる
- 距離が最も近い中心点と各データが紐づけられ、クラスターに割り当てられる
- クラスターに割り当てられたら中心点を設定し直し、再分類する
- 各データの分類が変化しなくなるまで繰り返して終了
- Rではkmeans()で実行する
いかがでしたか?
ざっくりとした説明にはなってしまったかもしれませんが、参考になったら幸いです!