หลาย K หลายโมเดล
แม้ว่าชุดข้อมูล lineup จะมีค่า k ที่ทราบอยู่แล้ว แต่ในความเป็นจริง จำนวนคลัสเตอร์ที่เหมาะสมมักไม่เป็นที่รู้จักและต้องประมาณค่าขึ้นมา
ในแบบฝึกหัดนี้ จะใช้ map_dbl() จากไลบรารี purrr เพื่อรัน k-means โดยใช้ค่า k ตั้งแต่ 1 ถึง 10 และดึงค่า ผลรวมกำลังสองภายในคลัสเตอร์ทั้งหมด จากแต่ละโมเดล ซึ่งเป็นขั้นตอนแรกในการสร้างกราฟ elbow plot
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์กลุ่มข้อมูลใน R
คำแนะนำการฝึกหัด
- ใช้
map_dbl()เพื่อรันkmeans()กับข้อมูลlineupโดยใช้ค่า k ตั้งแต่ 1 ถึง 10 และดึงค่า ผลรวมกำลังสองภายในคลัสเตอร์ทั้งหมด จากแต่ละโมเดล:model$tot.withinssเก็บเวกเตอร์ที่ได้ไว้ในชื่อtot_withinss - สร้าง data frame ใหม่ชื่อ
elbow_dfที่ประกอบด้วยค่า k และเวกเตอร์ ผลรวมกำลังสองภายในคลัสเตอร์ทั้งหมด
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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 = ___
)