เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

K-means: การวิเคราะห์ Elbow

ในแบบฝึกหัดก่อนหน้า คุณใช้ dendrogram เพื่อเสนอการจัดกลุ่มที่ได้ 3 กลุ่ม ในแบบฝึกหัดนี้ จะใช้ elbow plot ของ k-means เพื่อหาจำนวนคลัสเตอร์ที่ "ดีที่สุด"

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การวิเคราะห์กลุ่มข้อมูลใน R

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ map_dbl() เพื่อรัน kmeans() กับข้อมูล oes สำหรับค่า k ตั้งแต่ 1 ถึง 10 แล้วดึงค่า ผลรวมของกำลังสองภายในคลัสเตอร์ทั้งหมด จากแต่ละโมเดล: model$tot.withinss เก็บเวกเตอร์ที่ได้ไว้ในตัวแปรชื่อ tot_withinss
  • สร้าง data frame ใหม่ชื่อ elbow_df ที่มีค่า k และเวกเตอร์ ผลรวมของกำลังสองภายในคลัสเตอร์ทั้งหมด
  • นำค่าใน elbow_df มาพล็อตกราฟเส้น เพื่อแสดงความสัมพันธ์ระหว่าง k กับ ผลรวมของกำลังสองภายในคลัสเตอร์ทั้งหมด

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# 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 = ___
)

# Plot the elbow plot
ggplot(elbow_df, aes(x = ___, y = ___)) +
  geom_line() +
  scale_x_continuous(breaks = 1:10)
แก้ไขและรันโค้ด