複数の k で複数のモデルを作成する
lineup データセットでは k の値が明確にわかっていますが、実際には最適なクラスター数が事前にわからないことも多く、推定する必要があります。
この演習では、purrr ライブラリの map_dbl() を使って、k の値を 1 から 10 まで変化させながら k-means を実行し、それぞれのモデルからクラスター内平方和の合計を取り出します。これは、エルボープロットを可視化するための最初のステップです。
この演習はコースの一部です
Rによるクラスター分析
演習の手順
map_dbl()を使って、lineupデータに対して k の値を 1 から 10 まで変えながらkmeans()を実行し、各モデルからクラスター内平方和の合計(model$tot.withinss)を取り出しましょう。 結果のベクトルをtot_withinssとして保存してください。- k の値とクラスター内平方和の合計のベクトルを含む新しいデータフレーム
elbow_dfを作成しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(purrr)
# Use map_dbl to run many models with varying value of k (centers)
tot_withinss <- map_dbl(1:10, function(k){
model <- kmeans(x = ___, centers = ___)
model$tot.withinss
})
# Generate a data frame containing both k and tot_withinss
elbow_df <- data.frame(
k = ___ ,
tot_withinss = ___
)