始める無料で始める

K-means:平均シルエット幅

階層クラスタリングでは 3 クラスター、エルボー法では 2 クラスターが示されました。この演習では、平均シルエット幅を使って、k の「最適」な値を探りましょう。

この演習はコースの一部です

Rによるクラスター分析

コースを見る

演習の手順

  • map_dbl() を使い、oes データに対して k の値を 2 から 10 まで変えながら pam() を実行し、各モデルから 平均シルエット幅の値(model$silinfo$avg.width)を取り出しましょう。 結果のベクトルを sil_width として保存してください。
  • k の値と 平均シルエット幅のベクトルを含む新しいデータフレーム sil_df を作成しましょう。
  • sil_df の値を使って、k平均シルエット幅の関係を示す折れ線グラフを描きましょう。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Use map_dbl to run many models with varying value of k
sil_width <- map_dbl(2:10,  function(k){
  model <- pam(___, k = ___)
  model$silinfo$avg.width
})

# Generate a data frame containing both k and sil_width
sil_df <- data.frame(
  k = ___,
  sil_width = ___
)

# Plot the relationship between k and sil_width
ggplot(___, aes(x = ___, y = ___)) +
  geom_line() +
  scale_x_continuous(breaks = 2:10)
コードを編集して実行