crosshyou

主にクロス表(分割表)分析をしようかなと思いはじめましたが、あまりクロス表の分析はできず。R言語の練習ブログになっています。

都道府県別の乳用牛のデータ分析4 - R言語のkmeans関数でクラスタリング分析をする。

 

www.crosshyou.infoの続きです。

今回は、R言語のkmeans関数でクラスタリング分析をしてみます。

 

 この本を参考にしました。

はじめに、クラスタリングに必要な変数だけのデータフレームを作成します。

必要なデータだけのデータフレームを作成

それぞれの変数のスケール(値の大きさの範囲)がバラバラなので、標準化します。

今回は、min-max法で標準化しました。

apply関数, min関数, max関数, scale関数でデータを標準化

apply関数とmin関数で最小値を取得し、apply関数とmax関数で最大値を取得します。

そして、scale関数で標準化します。summary関数で確認しました。3つの変数とも最小値が0, 最大値が1に標準化されています。

それでは、kmeans関数でクラスタリングします。k=3でやってみます。

kmeans関数

kmeans関数は、kmeans(データフレーム or マトリックス, k)の構文です。

$clusterにクラスター分けされたIDが入っています。

クラスターIDを追加

plot関数とtext関数で視覚化します。

plot関数とtext関数で視覚化

クラスターの視覚化

jitter関数で都道府県の文字を上下にずらしています。

北海道、三重、島根、大分が一つのクラスター、

秋田、岐阜、滋賀、大阪、兵庫、和歌山、鳥取、広島、山口、徳島、愛媛、高知、長崎、熊本が一つのクラスター、

その他が一つのクラスターです。

北海道、三重、島根、大分は1飼養家当りの牛の数が多い都道府県でしたね。

 

こんどは、k=6でやってみましょう。

kmeans関数

kmeans関数で6に変えればいいだけです。

plot関数とtext関数

同じようにplot関数とtext関数で視覚化します。

クラスタリングを視覚化

三重県は一つだけのクラスターになりました。大阪と和歌山でクラスターになっています。

k=2でもやってみましょう。

k=2でクラスタリング

クラスタリングの視覚化

今回はcol = df$k2_clusterとして赤と黒で色分けもしました。

以上、R言語のkmeans関数でクラスタリング分析でした。