นำสองขั้นตอนมาใช้
เมื่อสร้างฟังก์ชัน expectation และ maximization แล้ว ตอนนี้สามารถนำอัลกอริทึม EM ไปใช้กับ data frame ได้
เป้าหมายของแบบฝึกหัดนี้คือการค้นหากลุ่มแบบ Gaussian สองกลุ่มในข้อมูล gaussian_sample โดยกำหนดให้ sd ของทั้งสองกลุ่มเท่ากับ 10
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Mixture Models ใน R
คำแนะนำการฝึกหัด
- เริ่มต้นด้วยการตั้งค่าเริ่มต้นว่ากลุ่มหนึ่งมีค่าเฉลี่ยเท่ากับ
0และอีกกลุ่มมีค่าเฉลี่ยเท่ากับ100จากนั้นใช้ฟังก์ชันexpectationและmaximizationเพื่อสร้างลิสต์new_values - บันทึกค่าเหล่านี้ลงในเวกเตอร์
means_initและกำหนดให้สัดส่วนมีค่าเท่ากันในเวกเตอร์props_init - วนซ้ำทั้งหมด 10 รอบ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
means_init <- c(0, 100)
___ <- c(0.5, 0.5)
# Iterative process
for(i in 1:___){
___ <- maximization(___(gaussian_sample, means_init, props_init, c(10, 10)))
means_init <- new_values[[1]]
props_init <- ___[[2]]
cat(c(i, means_init, props_init), "\n")
}