クラスター分析:R言語

分析に使われる場面

  • 観光客や観光地の類型化、ターゲット・マーケティングのためのセグメントの設定

データ

ライブラリとデータの読み込み

  • ライブラリの読み込み
    library(MASS)
  • データの読み込み
    onsen1 <- read.table("onsen.txt",sep=",",header=T)
    summary(onsen1)
    onsen <- onsen1[,3:8]
    rownames(onsen) <- onsen1[,2]

階層クラスター分析

  • hclust()関数による階層クラスター分析
  • ユークリッド距離を用いたクラスタリング
  • 最近隣距離法
    onsen.hc1 <- hclust(dist(onsen), "single")
    onsen.hc1
    plot(onsen.hc1, hang=-1)
  • 最遠距離法
    onsen.hc2 <- hclust(dist(onsen), "complete") # デフォルト
    onsen.hc2
    plot(onsen.hc2, hang=-1)
  • 群平均法
    onsen.hc3 <- hclust(dist(onsen), "average")
    onsen.hc3
    plot(onsen.hc3, hang=-1)
  • 重心法
    onsen.hc4 <- hclust(dist(onsen), "centroid")
    onsen.hc4
    plot(onsen.hc4, hang=-1)
  • メディアン法
    onsen.hc5 <- hclust(dist(onsen), "median")
    onsen.hc5
    plot(onsen.hc5, hang=-1)
  • ウォード法
    onsen.hc6 <- hclust(dist(onsen), "ward")
    onsen.hc6
    plot(onsen.hc6, hang=-1)
  • McQuitty?
    onsen.hc7 <- hclust(dist(onsen), "mcquitty")
    onsen.hc7
    plot(onsen.hc7, hang=-1)
  • キャンベラ距離を用いたクラスタリング
  • 最近隣距離法
    onsen.hc8 <- hclust(dist(onsen, "can"), "single")
    onsen.hc8
    plot(onsen.hc8, hang=-1)

非階層クラスター分析

  • kmean()関数を用いた分析
    onsen.km <- kmeans(onsen,4)
    summary(onsen.km)
    onsen.km
  • クラスタリング結果の可視化
    onsen <- cbind(onsen,onsen.km$cluster)
    # クラスタ番号だけを表示する場合
    plot(onsen$Onsen,onsen$Quality,type="n")
    text(onsen$Onsen,onsen$Quality,onsen.km$cluster)
    # クラスタを色で、温泉名をテキストで表示する場合
    plot(onsen$Onsen,onsen$Quality,type="n")
    text(onsen$Onsen,onsen$Quality,onsen1[,2],col=onsen.km$cluster)
    # クラスタを色で、温泉名をテキストで表示する場合
    plot(onsen$Onsen,onsen$Quality,type="n")
    text(onsen$Onsen,onsen$Quality,onsen.km$cluster)
    text(onsen$Onsen,onsen$Quality+1.5,onsen1[,2],cex=0.5)

モデルに基づくクラスター分析

  • ライブラリの呼び出し
    library(mclust)
  • EMclust()関数を用いた分析
    onsen.mc <- EMclust(onsen)

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-07-31 (木) 01:16:42 (1812d)