อัลกอริทึมแบบคลาสสิกสำหรับการจัดกลุ่มข้อมูลแบบไบนารีคือโมเดล Bernoulli Mixture แบบจำลองสามารถใช้วิธีการแบบเบย์และสามารถใช้แบบจำลอง EM ได้ด้วย (ความคาดหวังสูงสุด) คุณสามารถค้นหารหัสไพ ธ อนตัวอย่างทั่ว GitHub ในขณะที่เก่ามีประสิทธิภาพมากขึ้น แต่ก็ยากขึ้น ฉันใช้โมเดล C # ใน GitHub (ใช้ Infer.NET ซึ่งมีใบอนุญาตที่ จำกัด !)
รูปแบบค่อนข้างง่าย ตัวอย่างแรกคลัสเตอร์ที่เป็นจุดข้อมูล จากนั้นสุ่มตัวอย่างจาก Bernoullis มากเท่าที่คุณมีส่วนข้อมูลในชุดข้อมูลของคุณ โปรดทราบว่าสิ่งนี้แสดงถึงความเป็นอิสระตามเงื่อนไขของค่าไบนารีที่กำหนดให้กับคลัสเตอร์!
ในการตั้งค่าแบบเบย์การมอบหมายก่อนหน้าของคลัสเตอร์มากกว่านั้นคือการกระจาย Dirichlet นี่คือสถานที่ที่จะใส่นักบวชหากคุณเชื่อว่ากลุ่มบางกลุ่มมีขนาดใหญ่กว่ากลุ่มอื่น สำหรับแต่ละคลัสเตอร์คุณต้องระบุก่อนหน้านี้คือการแจกแจงแบบเบต้าสำหรับการกระจายแต่ละครั้งของ Bernoulli โดยทั่วไปสิ่งนี้ก่อนหน้าคือเบต้า (1,1) หรือชุดเครื่องแบบ สุดท้ายอย่าลืมเริ่มต้นการกำหนดคลัสเตอร์แบบสุ่มเมื่อได้รับข้อมูล สิ่งนี้จะทำลายความสมมาตรและตัวอย่างจะไม่ติด
มีคุณสมบัติเจ๋ง ๆ หลายอย่างของรุ่น BMM ในการตั้งค่าแบบเบย์:
การจัดกลุ่มออนไลน์ (ข้อมูลสามารถมาเป็นสตรีมได้)
โมเดลสามารถใช้เพื่ออนุมานมิติที่หายไป
วิธีแรกมีประโยชน์มากเมื่อชุดข้อมูลมีขนาดใหญ่มากและไม่เหมาะกับ RAM ของเครื่อง สามารถใช้งานที่สองในงานการใส่ข้อมูลที่ขาดหายไปทุกประเภทเช่น การกำหนดครึ่งที่ขาดหายไปของภาพ MNIST ไบนารี