開始使用免費開始

K-means:平均輪廓係數寬度

階層式分群得到 3 個群,而肘部法則則建議 2 個。在本練習中,使用「平均輪廓係數寬度」來探索 k 的「最佳」取值應該是多少。

本練習屬於課程

R 的叢集分析

檢視課程

練習說明

  • 使用 map_dbl()oes 資料對 k 從 2 到 10 的取值執行 pam(),並從每個模型中擷取 平均輪廓係數寬度model$silinfo$avg.width。 將結果向量儲存為 sil_width
  • 建立新的資料框 sil_df,其中包含 k 的取值與對應的「平均輪廓係數寬度」向量。
  • 使用 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)
編輯並執行程式碼