วิธีการเตรียมใช้งาน K-หมายถึงการจัดกลุ่ม


11

ฉันสนใจในสถานะปัจจุบันของศิลปะสำหรับการเลือกเมล็ดเริ่มต้น (ศูนย์คลัสเตอร์) สำหรับ K-mean

Googling นำไปสู่สองตัวเลือกยอดนิยม:

  1. การสุ่มเลือกเมล็ดเริ่มต้นและ
  2. การใช้เทคนิคการเลือก KMeans ++: Arthur & Vassilvitskii 2006 k-หมายถึง ++: ข้อดีของการเพาะอย่างระมัดระวัง

มีวิธีการที่มีแนวโน้มอื่น ๆ ที่ทุกคนที่นี่รู้หรือไม่ซึ่งอาจไม่เป็นที่นิยม?

คำตอบ:


12

ให้ผมโดยไม่ต้องไปไกลเพียงเพื่อคัดลอกวางรายการของตัวเลือกจากฟังก์ชั่นของตัวเอง!kmini(แมโครสำหรับโปรแกรม SPSS) พบในคอลเลกชัน "กลุ่ม" ที่นี่

วิธีการสร้างหรือเลือกศูนย์คลัสเตอร์เริ่มต้น เลือก:

  • RGC - centroids ของ subsamples ข้อมูลจะถูกแบ่งแบบสุ่มโดยknonoverlapping โดยการเป็นสมาชิกกลุ่มและ centroids ของกลุ่มเหล่านี้ได้รับการแต่งตั้งให้เป็นศูนย์กลางเริ่มต้น ดังนั้นศูนย์จะถูกคำนวณไม่ได้เลือกจากกรณีชุดข้อมูลที่มีอยู่ วิธีนี้ให้ผลศูนย์ที่อยู่ใกล้กันและ centroid ทั่วไปของข้อมูล
  • RP - จุดสุ่มเลือก kกรณีที่แตกต่างกันของข้อมูลจะถูกสุ่มเลือกให้เป็นศูนย์เริ่มต้น
  • RUNFP - จุดที่ไกลที่สุด (การเลือกวิ่ง) kกรณีแรกจะถูกนำมาเป็นศูนย์กลางแล้วในระหว่างการดำเนินการผ่านส่วนที่เหลือของชุดข้อมูลที่มีการเปลี่ยนอย่างต่อเนื่องระหว่างศูนย์จะทำ; จุดมุ่งหมายของการเปลี่ยนคือการได้รับในkจุดสิ้นสุดที่ไกลที่สุดจากกันในพื้นที่ตัวแปร จุดเหล่านี้ (กรณี) ที่ครอบครองตำแหน่งอุปกรณ์ต่อพ่วงในคลาวด์ข้อมูลเป็นศูนย์เริ่มต้นที่สร้างขึ้น (วิธีนี้ใช้เป็นค่าเริ่มต้นในโพรซีเดอร์ SPSS k-mean QUICK CLUSTERดูรายละเอียดในอัลกอริธึม SPSS ดูเพิ่มเติมที่นี่ )
  • SIMFP - จุดที่ไกลที่สุด (ตัวเลือกง่าย) ศูนย์แรกถูกเลือกเป็นกรณีสุ่มจากชุดข้อมูล ศูนย์ที่ 2 ถูกเลือกให้เป็นเคสที่อยู่ห่างจากศูนย์กลางมากที่สุด ศูนย์ที่ 3 ถูกเลือกเป็นกรณีที่อยู่ไกลสุดจากทั้งสอง (จากที่ใกล้ที่สุดของทั้งสอง) - และอื่น ๆ
  • KMPP - คะแนนที่สุ่มมากที่สุดหรือ k- mean ++ ศูนย์แรกถูกเลือกเป็นกรณีสุ่มจากชุดข้อมูล จุดศูนย์กลางที่ 2 จะถูกเลือกแบบสุ่ม แต่ความน่าจะเป็นของการเลือกเคสเป็นสัดส่วนกับระยะทาง จุดศูนย์กลางที่ 3 จะถูกเลือกแบบสุ่มด้วยความน่าจะเป็นของการเลือกตามสัดส่วนของระยะทางของคดีไปจนถึงจุดศูนย์กลางที่ใกล้ที่สุดของทั้งสองศูนย์ - และอื่น ๆ (Arthur, D. , Vassilvitskii, S .. K-หมายถึง ++: ข้อดีของการเพาะอย่างระมัดระวัง // การดำเนินการของการประชุมวิชาการ ACM-SIAM ประจำปีครั้งที่ 18 บนอัลกอริทึมแบบแยกส่วน 2007. , 1027–1035)
  • GREP - จุดตัวแทนกลุ่ม แนวคิดวิธี - เพื่อรวบรวมเป็นศูนย์kตัวแทนส่วนใหญ่ "รอง" กรณี ศูนย์ที่ 1 จะถูกนำมาเป็นกรณีที่ใกล้เคียงกับข้อมูลทั่วไป จากนั้นส่วนที่เหลือของศูนย์จะถูกเลือกจากจุดข้อมูลในลักษณะที่แต่ละจุดนั้นพิจารณาว่ามันใกล้ชิดกันมากขึ้น (และเท่าใดในแง่ของระยะทางแบบยุคลิดปริภูมิสแควร์) กับชุดของคะแนนมากกว่าจุดหลังแต่ละจุด คือศูนย์ใด ๆ ที่มีอยู่แล้ว คือแต่ละจุดถูก examed เป็นผู้สมัครเพื่อเป็นตัวแทนของกลุ่มบางจุดยังไม่ดีพอโดยศูนย์รวบรวมแล้ว จุดตัวแทนส่วนใหญ่ในแง่นี้ถูกเลือกเป็นศูนย์ต่อไป (Kaufman, L. Rousseeuw, PJ การค้นหากลุ่มในข้อมูล: รู้เบื้องต้นเกี่ยวกับการวิเคราะห์กลุ่ม, 1990. ดูเพิ่มเติมที่: Pena, JM et al. การเปรียบเทียบเชิงประจักษ์ของวิธีการเริ่มต้นสี่วิธีสำหรับ K-หมายถึงอัลกอริทึมการรู้จำ Lett 20 (10), 1999,
  • [นอกจากนี้ยังมีวิธีการที่ดีที่ฉันยังไม่ได้ใช้ในมาโครเพื่อสร้างkคะแนนซึ่งมาจากชุดเครื่องแบบแบบสุ่ม แต่ "สุ่มน้อยกว่าแบบสุ่ม" อยู่ระหว่างการสุ่มและความโลภ ดูพื้นฐานทางทฤษฎีที่เป็นไปได้สำหรับวิธีการนั้น]
  • อีกวิธีหนึ่งคือการทำคลัสเตอร์แบบลำดับชั้นโดยวิธีของ Ward คุณสามารถทำได้บนตัวอย่างย่อยของวัตถุหากตัวอย่างมีขนาดใหญ่เกินไป จากนั้นค่าเฉลี่ยของkกระจุกที่ผลิตโดยมันคือเมล็ดเริ่มต้นสำหรับกระบวนงาน k-mean Ward ของดีกว่าวิธีการจัดกลุ่มแบบลำดับชั้นอื่น ๆ เพราะมันแบ่งปันวัตถุประสงค์เป้าหมายร่วมกับ k-mean

วิธีการ RGC, RP, SIMFP, KMPP ขึ้นอยู่กับตัวเลขสุ่มและอาจเปลี่ยนผลลัพธ์จากการวิ่งเป็นวิ่ง

เมธอด RUNFP อาจมีความอ่อนไหวต่อลำดับของเคสในชุดข้อมูล แต่วิธีการ GREP ไม่ได้ (นอกเหนือจากโอกาสที่มีหลายกรณีที่เหมือนกัน, ความสัมพันธ์, ในข้อมูล) วิธี GREP อาจล้มเหลวในการเก็บรวบรวมทั้งหมดkศูนย์ถ้าkมีขนาดใหญ่ญาติจำนวนผู้ป่วยในข้อมูล (คนn) k>n/2โดยเฉพาะอย่างยิ่งเมื่อ [แมโครจะแจ้งให้ทราบหากข้อมูลไม่อนุญาตให้วิธีการรวบรวมkศูนย์] วิธีการ GREP เป็นวิธีที่ช้าที่สุดคำนวณค่าเมทริกซ์ของระยะทางระหว่างทุกกรณีดังนั้นมันจึงไม่เหมาะถ้ามีหลายกรณีเป็นหมื่นหรือหลายล้านกรณี อย่างไรก็ตามคุณสามารถทำได้โดยการสุ่มข้อมูลตัวอย่าง

ฉันไม่ได้พูดคุยกันในปัจจุบันว่าวิธีการใดที่ "ดีกว่า" และในสถานการณ์ใดเพราะฉันยังไม่ได้ทำการตรวจสอบคำถามอย่างละเอียด การแสดงผลเบื้องต้นและผิวเผินของฉันคือ GREP มีค่าอย่างยิ่ง (แต่แพง) และถ้าคุณต้องการวิธีการที่ราคาถูกจริงๆยังคงแข่งขันได้เพียงพอแล้วเพียงแค่สุ่มคะแนน k, RP เป็นตัวเลือกที่เหมาะสม



ฉันยินดีที่จะเห็นคำตอบของคุณเช่น - วิธีกำหนดอย่างมีประสิทธิภาพและมีประสิทธิภาพในการเริ่มต้น K-Means
Royi

@ Royi ถ้าคุณมีคำถามเกี่ยวกับมันทำไมไม่โพสต์คำถาม?
ttnphns

คุณมีวิธีแบ่งปันหลายวิธีหรือไม่? ฉันได้สร้างเคล็ดลับ "ค้นหาตัวอย่างที่สุด" ไม่กี่แห่ง แต่มีเคล็ดลับดีๆมากมายที่ควรค่าในการเปิดคำถาม
Royi

หากคุณมีสิ่งใดที่คุณคิดว่ามีค่าควรแบ่งปันในรูปแบบของคำถามหากมีคำถามที่น่าถามเกี่ยวกับเรื่องนี้
ttnphns

5

ครั้งล่าสุดที่ฉันทำการตรวจสอบวรรณกรรมที่ครอบคลุมเกี่ยวกับเรื่องนี้ซึ่งเป็นที่ยอมรับกันเกือบ 20 ปีที่ผ่านมาคำแนะนำหลักสองข้อคือ:

  1. หากต้องการใช้วิธีการของ Ward (นี่คืออัลกอริธึมการวิเคราะห์คลัสเตอร์แบบลำดับชั้นมาตรฐาน) เพื่อค้นหาศูนย์เริ่มต้น
  2. ใช้การเริ่มแบบสุ่ม

ในแอปพลิเคชันข้อมูลขนาดใหญ่วิธีการของ Ward ไม่ทำงานได้ดีแม้ว่าจะสามารถนำไปใช้กับตัวอย่างย่อยได้

ฉันทำแบบจำลองบางอย่างซึ่งฉันไม่เคยไปรอบ ๆ เพื่อเผยแพร่และพบว่า:

สิ่งสำคัญที่ฉันได้รับจากสิ่งนี้คืออัลกอริธึม SPSS นั้นดีอย่างน่าประหลาดใจ แต่ถ้ามีทรัพยากรจุดเริ่มต้นแบบสุ่ม 1,000+ เป็นวิธีที่จะไป


ในแบบจำลองของคุณคุณสังเกตเห็นการเปลี่ยนแปลงพฤติกรรมในข้อมูลมิติสูงหรือไม่?
Arin Chaudhuri

ไม่ใช่ว่าฉันจำได้ อย่างไรก็ตามแบบจำลองของฉันจะไม่ใช้ตัวแปรมากกว่า 20 ตัวที่ฉันคิด อย่างไรก็ตามยิ่งมิติมีขนาดใหญ่ขึ้นจำนวนการสุ่มเริ่มจะยิ่งมากขึ้นเท่ากัน
ทิม

หมายเหตุ: อัลกอริทึม SPSS เริ่มต้น (btw ลิงก์ของคุณไม่ทำงาน) คือสิ่งที่ฉันเขียนไว้เป็น RUNFP ในคำตอบของฉัน
ttnphns

4

ด้วยศัพท์เฉพาะของ ttnphns ฉันได้ทดสอบ RGC, RP และ KMPP เมื่อ:

  • คะแนน 2D / 3D
  • ถุงของคำจากเอกสารต้นฉบับ
  • L2

ฉันไม่แนะนำ RGC เพราะศูนย์ที่ได้นั้นอยู่ใกล้กันมาก: ค่าเฉลี่ยของหลาย ๆ ค่านั้นใกล้เคียงกับค่าเฉลี่ยทั่วโลก (กฎจำนวนมาก) สิ่งนี้อาจทำให้การบรรจบกันช้าลงมาก: ใช้เวลาพอสมควรก่อนที่กลุ่มจะเริ่มทำให้เป็นรายบุคคล

โดยทั่วไปแล้ว RP จะดีและแนะนำเป็นตัวเลือกแรก ๆ

KMPP เป็นที่นิยมมากและทำงานได้ดีมากในขนาดเล็ก: เมื่อเทียบกับ RP มันมีแนวโน้มที่จะลดความน่าจะเป็นที่จะสิ้นสุดในท้องถิ่นขั้นต่ำ

อย่างไรก็ตามเมื่อฉันทำงานกับชุดข้อมูลขนาดใหญ่ (1 ล้านคะแนนซึ่งเป็นคำศัพท์จากเอกสารต้นฉบับที่มีมิติใหญ่) RP มีประสิทธิภาพเหนือกว่า KMPP เล็กน้อยในแง่ที่ว่ามันจบลงด้วยการทำซ้ำน้อยลงเล็กน้อย ฉันรู้สึกประหลาดใจกับสิ่งนี้ ในชุดข้อมูลขนาดใหญ่ / มิติสูงการบรรจบกันของค่าต่ำสุดทั่วโลกเป็นไปไม่ได้คุณวัดคุณภาพในฐานะ "ความดีต่ำสุดในท้องถิ่นคือ" = "SOD ขั้นสุดท้ายเล็กเพียงใด" ทั้งสองวิธีมีคุณภาพเท่ากัน

โปรดทราบว่ามันเป็นสิ่งสำคัญที่จะใช้วิธีการสุ่มถ้าคุณต้องการใช้การจำลองแบบเพื่อปรับปรุงคุณภาพ


ขอบคุณ ฉันจะจัดการกับมิติข้อมูลขนาดใหญ่ดังนั้นมันจึงค่อนข้างมีประโยชน์
Arin Chaudhuri
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.