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)