読者です 読者をやめる 読者になる 読者になる

寺子屋クラブ

WEBマーケティング・心理学・統計学・機械学習

階層的クラスタ分析(1日目)

データは「生涯学習センターにおける学級・講座の開設状況(全国)」を利用した。「対象年代別の開催されている講義数」を基に階層的クラスタ分析を行う。

 

階層的クラスタ分析の手続きは下記となる。

  1. データから距離を求める(今回はユークリッド距離を選択)
  2. クラスタ分析手法を選択(今回は最近隣法を選択)
  3. 2.に基づいてコーフェック行列を求める
  4. コーフェック行列を基に樹形図を描画
  5. 妥当性の検証

 

実際に行ったコマンド

  1. lifetime.edu <- read.csv("2013_lifetime.edu.csv"):ローカルファイルの読込
  2. rownames(lifetime.edu) <- lifetime.edu[,1]:一列目に講義名が入っていたので行ラベルへ変換
  3. lifetime.edu[,1] <- NULL:一列目を削除
  4. lifetime.edu.d <- dist(lifetime.edu):整形したデータのユークリッド距離を求める
  5. lifetime.edu.hc <- hclust(lifetime.edu.d, method="single"):最近隣法でコーフェック行列を求める
  6. par(family = "HiraKakuProN-W3"):行ラベルが日本語で記載されているため、plot時に文字化けしないようフォントを指定
  7. plot(lifetime.edu.hc, hang=-1):樹形図を葉の高さを揃えて描画
  8. cor(lifetime.edu.d, cophenetic(lifetime.edu.hc)):ユークリッド距離とコーフェン行列との相関係数を算出し、モデルの妥当性を検証。相関係数が高ければ高いほど妥当性が高い。

下記が描画結果です。

f:id:terantera:20160527231148p:plain

 

ユークリッド距離とコーフェン行列との相関係数は0.766576でした。77%。クラスタリングもそこまで悪くないし、こんなものじゃないでしょうか。今回は「対象年代ごとの講義数」を基に講義をクラスタリングしたので、「講義内容と対象年代」の相関が強いことが前提となっています。そこの相関は調べていないので、「講義内容」を基にクラスタリングした時には異なる樹形図が描かれるかもしれないですね。当然ですが。

 

 

Rによるデータサイエンス-データ解析の基礎から最新手法まで

Rによるデータサイエンス-データ解析の基礎から最新手法まで