การทำคลัสเตอร์ (k- หมายถึงหรืออย่างอื่น) ที่มีข้อ จำกัด ขนาดของกลุ่มขั้นต่ำ


14

ฉันต้องการจัดกลุ่มหน่วยเป็นกลุ่มเพื่อลดผลรวมภายในกลุ่มของสี่เหลี่ยม (WSS) แต่ฉันต้องตรวจสอบให้แน่ใจว่าแต่ละกลุ่มมีหน่วยอย่างน้อยm มีความคิดใดบ้างหากฟังก์ชั่นการจัดกลุ่มของ R อนุญาตให้ทำการจัดกลุ่มเป็นkกลุ่มภายใต้ข้อ จำกัด ขนาดของกลุ่มขั้นต่ำ? kmeans () ดูเหมือนจะไม่เสนอตัวเลือกการ จำกัด ขนาดkmk

คำตอบ:


5

ใช้การทำคลัสเตอร์ EM

ในการทำคลัสเตอร์ EM อัลกอริทึมจะปรับโมเดลคลัสเตอร์เริ่มต้นซ้ำ ๆ เพื่อให้พอดีกับข้อมูลและกำหนดความน่าจะเป็นที่จุดข้อมูลมีอยู่ในคลัสเตอร์ อัลกอริทึมสิ้นสุดกระบวนการเมื่อแบบจำลองความน่าจะเป็นเหมาะกับข้อมูล ฟังก์ชั่นที่ใช้ในการพิจารณาความเหมาะสมคือความเป็นไปได้ของข้อมูลที่ระบุในแบบ

หากกลุ่มว่างเปล่าถูกสร้างขึ้นในระหว่างกระบวนการหรือหากการเป็นสมาชิกของกลุ่มหนึ่งกลุ่มหรือมากกว่านั้นต่ำกว่าเกณฑ์ที่กำหนดกลุ่มที่มีประชากรต่ำจะได้รับการดำเนินการที่จุดใหม่และอัลกอริทึม EM จะเริ่มใหม่


ขอบคุณมาเรียนนา ฉันต้องการโซลูชันที่ใช้โมเดลพาราเมตริกเมทริก (โดยทั่วไป, ไม่ยุติธรรม) น้อยมาก แต่จะพิจารณาอย่างแน่นอน
Cyrus S

4

ปัญหานี้แก้ไขได้ในบทความนี้:

Bradley, PS, KP Bennett และ Ayhan Demiriz "การจัดกลุ่ม k- หมายถึง จำกัด " Microsoft Research, Redmond (2000) : 1-8

ฉันมีการนำไปใช้ของอัลกอริทึมในหลาม


นี่มันยอดเยี่ยมมากขอบคุณ! ฉันใช้rPythonแพคเกจใน R เพื่อสร้างส่วนต่อประสานกับการใช้งานที่ฉันเข้าถึงได้จากสคริปต์ R ของฉัน
Michael Ohlrogge

@MichaelOhlrogge คุณมีตัวอย่างที่ใดที่หนึ่ง (github?) ในส่วนต่อประสานที่คุณเขียนเพื่อเรียกแพคเกจหลามแบบ R? ขอบคุณ!
Matifou

ขออภัยฉันดูรอบ ๆ รหัสเก่าของฉัน แต่หาไม่พบอีกต่อไป
Michael Ohlrogge

3

ฉันคิดว่ามันคงเป็นเรื่องของการรัน k หมายความว่าเป็นส่วนหนึ่งของลูปที่มีการทดสอบขนาดคลัสเตอร์ Ie Countn ในคลัสเตอร์ k - ยังจำได้ว่า k หมายความว่าจะให้ผลลัพธ์ที่แตกต่างกันสำหรับการทำงานแต่ละครั้งบนข้อมูลเดียวกันดังนั้น คุณควรใช้มันเป็นส่วนหนึ่งของลูปเพื่อแยกผลลัพธ์ "ดีที่สุด" ออก


1
ขอบคุณอเล็กซ์ ฉันเห็นปัญหาเกี่ยวกับสิ่งนี้แม้ว่าจะเกิดอะไรขึ้นถ้าลูปที่โซลูชั่นสร้างขึ้นไม่ตอบสนองข้อ จำกัด ? สิ่งนี้อาจเกิดขึ้นหาก k หมายความว่าถูกตั้งค่าให้ทำงานโดยไม่มีข้อ จำกัด ขนาดของคลัสเตอร์ ฉันชอบวิธีแก้ปัญหาที่หลีกเลี่ยงสิ่งนี้ (ลักษณะของแอปพลิเคชันนั้นเป็นสิ่งที่ฉันต้องการจริงๆเพื่อให้แน่ใจว่ากลุ่มมีขนาดเล็กที่สุด)
Cyrus S

1

ชุดข้อมูลของคุณมีขนาดเท่าใด บางทีคุณอาจลองเรียกใช้การจัดกลุ่มแบบลำดับชั้นแล้วตัดสินใจว่ากลุ่มใดที่เก็บรักษาตาม dendrogram ของคุณ

หากชุดข้อมูลของคุณมีขนาดใหญ่มากคุณสามารถรวมทั้งวิธีการจัดกลุ่ม: การจัดกลุ่มที่ไม่ใช่แบบลำดับชั้นเริ่มต้นและการจัดกลุ่มแบบลำดับชั้นโดยใช้กลุ่มจากการวิเคราะห์ที่ไม่ได้เป็นลำดับชั้น คุณสามารถหาตัวอย่างของวิธีการนี้ได้ที่Martínez-Pastor et al (2005)


ขอบคุณมานูเอล จริง ๆ แล้วดูเหมือนว่าความเป็นไปได้ที่น่าสนใจมาก ฉันต้องพิจารณาว่าการแบ่งพาร์ติชันแบบลำดับชั้นจะกำหนดข้อ จำกัด บางอย่างที่จะป้องกันอัลกอริทึมจากการแบ่งพาร์ติชันคลัสเตอร์ที่ดีที่สุดภายใต้ข้อ จำกัด ขนาดหรือไม่ แต่โดยสังหรณ์ใจฉันเห็นได้ว่าสิ่งนี้อาจใช้ได้
Cyrus S

0

สิ่งนี้สามารถทำได้โดยการแก้ไขขั้นตอนการกำหนดคลัสเตอร์ (E ใน EM) โดยการกำหนดเป็นปัญหาการเพิ่มประสิทธิภาพเครือข่ายเชิงเส้นขั้นต่ำของต้นทุน (MCF)

ฉันได้เขียนแพ็คเกจไพ ธ อนซึ่งใช้ SimpleMinCostFlow ของเครื่องมือวิจัยการดำเนินงานของ Google ซึ่งใช้งาน C ++ ได้อย่างรวดเร็ว มันมี API scikit-lean มาตรฐาน

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