วิธีทำความเข้าใจข้อเสียของ K-mean


365

K-mean เป็นวิธีที่ใช้กันอย่างแพร่หลายในการวิเคราะห์กลุ่ม ในความเข้าใจของฉันวิธีนี้ไม่จำเป็นต้องมีข้อสมมติฐานใด ๆ เช่นให้ชุดข้อมูลและจำนวนกลุ่มที่กำหนดไว้ล่วงหน้าฉันและฉันเพิ่งใช้อัลกอริทึมนี้ซึ่งช่วยลดผลรวมของข้อผิดพลาดกำลังสอง (SSE) ภายในคลัสเตอร์กำลังสอง ความผิดพลาด

k-mean จึงเป็นปัญหาการหาค่าเหมาะที่สุด

ฉันอ่านเนื้อหาเกี่ยวกับข้อเสียของ k-mean ส่วนใหญ่พูดว่า:

  • k- หมายถึงถือว่าความแปรปรวนของการกระจายของแต่ละคุณลักษณะ (ตัวแปร) เป็นทรงกลม;
  • ตัวแปรทั้งหมดมีความแปรปรวนเดียวกัน
  • ความน่าจะเป็นก่อนหน้านี้สำหรับ k k ทั้งหมดนั้นเหมือนกันกล่าวคือแต่ละกลุ่มมีจำนวนการสังเกตอย่างเท่าเทียมกัน

หากมีการละเมิดสมมติฐานข้อใดข้อหนึ่งใน 3 ข้อใดข้อหนึ่งของ k-mean จะล้มเหลว

ฉันไม่เข้าใจตรรกะหลังคำสั่งนี้ ฉันคิดว่าวิธี k-mean ไม่มีข้อสมมติฐานเป็นหลักมันแค่ลด SSE ลงเท่านั้นดังนั้นฉันจึงไม่สามารถเห็นลิงก์ระหว่างการลด SSE และ "สมมติฐาน" ทั้งสามนี้


49
ฉันจะบอกว่าจำนวนของกลุ่มนั้นค่อนข้างสมมติฐาน
njzk2

30
สมมติฐานหลักของ K-วิธีคือ 1. มีอยู่ k กลุ่ม 2. SSE เป็นเป้าหมายที่ถูกต้องเพื่อลดให้น้อยที่สุด 3. กลุ่มทั้งหมดมีSSE เดียวกัน 4. ตัวแปรทั้งหมดมีความสำคัญเหมือนกันสำหรับทุกกลุ่ม นี่เป็นข้อสันนิษฐานที่แข็งแกร่งทีเดียว ...
Anony-Mousse

2
คำถามที่สองของคุณ (โพสต์เป็นคำตอบแล้วลบ): ถ้าคุณต้องการที่จะเข้าใจ k หมายถึงปัญหาการเพิ่มประสิทธิภาพคล้ายกับการถดถอยเชิงเส้นเข้าใจว่ามันเป็นควอน มันพยายามค้นหาการประมาณกำลังสองน้อยที่สุดของข้อมูลโดยใช้อินสแตนซ์คือถ้าคุณแทนที่ทุกจุดด้วยเซนทรอยด์ที่ใกล้ที่สุด k
Anony-Mousse

2
@ Anony-Mousse ฉันอ่านเนื้อหาบางส่วนและต่อมาเกิดความคิดต่อไปนี้:หมายถึงแบบจำลองทางสถิติ (แทนที่จะเป็นวิธีการปรับให้เหมาะสม) สมมติว่ามีกลุ่ม k พื้นฐานและการกระจายตัวของข้อมูลล้วนเป็นปกติ เสียงสุ่มที่มีความแปรปรวนเท่ากัน นี่คล้ายกับสมมติฐานของตัวแบบการถดถอยเชิงเส้นอย่างง่าย จากนั้น (ฉันเชื่อว่าฉันยังไม่พบบทความ) โดยทฤษฎีบท Gauss-Markov บางรุ่นหมายถึงจะให้ค่าประมาณที่สอดคล้องกันของค่าเฉลี่ยของกลุ่ม k พื้นฐานที่เราสันนิษฐานไว้สำหรับข้อมูลของเรา k -kk
KevinKim

1
ฉันเพิ่มภาพประกอบลงในคำตอบของฉันด้านล่างของชุดข้อมูลที่หนึ่งอาจคิดว่า k- หมายถึงทำงานได้ดีจริงๆ (กลุ่มทั้งหมดที่มีรูปร่างเดียวกัน) แต่ก็ยังคงติดอยู่ในท้องถิ่นน้อยที่สุด; และแม้แต่การวนซ้ำซ้ำ 1,000 ครั้งก็ไม่พบผลลัพธ์ที่ดีที่สุด
Anony-Mousse

คำตอบ:


273

ในขณะที่ฉันชอบคำตอบของเดวิดโรบินสันที่นี่เป็นจำนวนมาก แต่นี่เป็นบทวิจารณ์เพิ่มเติมเกี่ยวกับค่า k

การทำคลัสเตอร์ข้อมูลที่ไม่ใช่คลัสเตอร์

เรียกใช้ k-mean กับข้อมูลที่เหมือนกันและคุณจะยังคงได้รับกลุ่ม! มันไม่ได้บอกคุณเมื่อข้อมูลไม่รวมกลุ่มและสามารถนำการวิจัยของคุณไปสู่จุดจบแบบนี้ได้

K-หมายถึงข้อมูลที่สม่ำเสมอ

อ่อนไหวต่อขนาด

การลดขนาดชุดข้อมูลของคุณจะเปลี่ยนผลลัพธ์ทั้งหมด แม้ว่าตัวเองจะไม่เลว แต่ก็ไม่ได้ตระหนักว่าคุณต้องให้ความสนใจเป็นพิเศษกับการปรับขนาดข้อมูลของคุณให้แย่ ปัจจัยการปรับเป็นพิเศษพารามิเตอร์ที่ซ่อนอยู่ใน K-หมายความว่า "เริ่มต้น" 1 จึงจะมองข้ามได้ง่าย แต่มีผลกระทบสำคัญ ( แต่ของหลักสูตรนี้นำไปใช้กับขั้นตอนวิธีการอื่น ๆ อีกมากมายเกินไป)d

นี่อาจเป็นสิ่งที่คุณเรียกว่า "ตัวแปรทั้งหมดมีความแปรปรวนเดียวกัน" นอกจากนั้นคุณควรพิจารณาปรับขนาดที่ไม่ใช่เชิงเส้นตามความเหมาะสม

นอกจากนี้ยังทราบว่ามันเป็นเพียงการแก้ปัญหาที่จะไต่ทุกแกนมีหน่วยความแปรปรวน สิ่งนี้ไม่รับประกันว่า k-mean ใช้งานได้ การปรับขึ้นอยู่กับความหมายของชุดข้อมูลของคุณ และถ้าคุณมีมากกว่าหนึ่งคลัสเตอร์คุณจะต้องการให้ทุกกลุ่ม (อิสระ) มีความแปรปรวนเดียวกันในทุกตัวแปรเช่นกัน

นี่คือตัวอย่างคลาสสิกตัวอย่างของชุดข้อมูลที่ k-mean ไม่สามารถทำคลัสเตอร์ได้ แกนทั้งสองเป็น iid ในแต่ละคลัสเตอร์ดังนั้นจึงเพียงพอที่จะทำสิ่งนี้ใน 1 มิติ แต่กลุ่มมีความแปรปรวนที่แตกต่างกันและ k- หมายถึงจึงแยกพวกเขาไม่ถูกต้อง

K-หมายถึงไม่สามารถจัดกลุ่มชุดข้อมูลนี้

ฉันไม่คิดว่าตัวอย่างของการตอบโต้แบบ k สำหรับค่าเฉลี่ยนี้ครอบคลุมโดยคะแนนของคุณ:

  • กลุ่มทั้งหมดนั้นเป็นทรงกลม (iid Gaussian)
  • แกนทั้งหมดมีการกระจายตัวเดียวกันและแปรปรวน
  • ทั้งสองกลุ่มมี 500 องค์ประกอบต่อกัน

ยัง k- หมายถึงยังล้มเหลวไม่ดี (และมันแย่ลงถ้าฉันเพิ่มความแปรปรวนเกินกว่า 0.5 สำหรับคลัสเตอร์ขนาดใหญ่) แต่: ไม่ใช่อัลกอริทึมที่ล้มเหลว มันเป็นสมมติฐานซึ่งไม่ถือ K-หมายความว่าทำงานได้อย่างสมบูรณ์มันเป็นเพียงการเพิ่มประสิทธิภาพเกณฑ์ที่ไม่ถูกต้อง

แม้ในชุดข้อมูลที่สมบูรณ์แบบก็สามารถติดขัดในระดับต่ำสุดในท้องถิ่น

ด้านล่างเป็นวิธีที่ดีที่สุดในการรัน 10 ค่า k ในชุดข้อมูล A3 แบบคลาสสิก นี้เป็นชุดข้อมูลสังเคราะห์ที่ออกแบบมาสำหรับ k 50 กลุ่มรูปร่าง Gaussian แต่ละอันแยกกันอย่างสมเหตุสมผล กระนั้นก็มีเพียง k-หมายถึง ++ และ 100 ซ้ำที่ฉันได้รับผลลัพธ์ที่คาดหวัง ... (ด้านล่างคือ 10 ซ้ำของ k-mean ปกติสำหรับภาพประกอบ)

k-mean บนชุดข้อมูล A3

คุณจะพบกลุ่มจำนวนมากในชุดข้อมูลนี้อย่างรวดเร็วโดยที่ k-mean ไม่สามารถหาโครงสร้างที่ถูกต้องได้ ยกตัวอย่างเช่นที่ด้านล่างขวาคลัสเตอร์แบ่งออกเป็นสามส่วน แต่ไม่มีวิธีใดวิธี k หมายถึงจะย้ายหนึ่งในเซ็นทรอยด์เหล่านี้ไปยังตำแหน่งที่แตกต่างกันอย่างสิ้นเชิงของชุดข้อมูล - มันติดอยู่ในระดับต่ำสุดในท้องถิ่น (และนี่คือ10 วิ่งที่ดีที่สุด !

และมีจำนวนมากของท้องถิ่นน้อยดังกล่าวในชุดข้อมูลนี้ บ่อยครั้งมากเมื่อคุณได้รับสองตัวอย่างจากคลัสเตอร์เดียวกันมันจะติดค้างในระดับต่ำสุดที่กลุ่มนี้ยังแยกออกจากกันและอีกสองกลุ่มรวมเข้าด้วยกันแทน ไม่เสมอไป แต่บ่อยครั้งมาก ดังนั้นคุณต้องทำซ้ำหลาย ๆ ครั้งเพื่อรับโชคดี ด้วยค่าเฉลี่ย 100 รอบของ k หมายถึงฉันยังคงนับข้อผิดพลาด 6 ข้อและอีก 1,000 ครั้งฉันได้รับข้อผิดพลาดนี้ถึง 4 ข้อ K-หมายถึง ++ โดยวิธียกน้ำหนักตัวอย่างแบบสุ่มทำงานได้ดีขึ้นมากในชุดข้อมูลนี้

หมายถึงต่อเนื่อง

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

สมมติฐานที่ซ่อนอยู่: SSE เป็นมูลค่าที่ลด

นี่คือคำตอบที่แสดงให้เห็นข้างต้นแล้วแสดงให้เห็นเป็นอย่างดีกับการถดถอยเชิงเส้น มีบางกรณีใช้งานที่ k-หมายถึงทำให้รู้สึกที่สมบูรณ์แบบ เมื่อลอยด์ต้องถอดรหัสสัญญาณ PCM เขารู้จำนวนเสียงที่แตกต่างกันและข้อผิดพลาดกำลังสองน้อยที่สุดช่วยลดโอกาสในการถอดรหัสข้อผิดพลาด และในการวัดปริมาณสีของภาพคุณลดข้อผิดพลาดของสีน้อยที่สุดเมื่อลดจานสีด้วย แต่จากข้อมูลของคุณผลรวมของการเบี่ยงเบนกำลังสองเป็นเกณฑ์ที่มีความหมายที่จะลดลงหรือไม่?

ในตัวอย่างข้างต้นความแปรปรวนไม่คุ้มค่าที่จะลดขนาดให้น้อยที่สุดเนื่องจากมันขึ้นอยู่กับคลัสเตอร์ รูปแบบผสมของเสียนควรจะสอดคล้องกับข้อมูลดังที่แสดงในภาพด้านล่าง:

แบบจำลองส่วนผสมของเสียน

(แต่นี่ไม่ใช่วิธีที่ดีที่สุดเช่นกันมันเป็นเรื่องง่ายที่จะสร้างข้อมูลที่ไม่เป็นไปตามข้อสันนิษฐาน "การผสมผสานของ k เกาส์เซียน" เช่นเพิ่มเสียงพื้นหลัง)

ใช้งานง่ายเกินไป

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

K- หมายถึงเป็นปริมาณ

หากคุณต้องการแบบจำลองเชิงทฤษฎีของสิ่งที่ k-mean ทำให้พิจารณาว่าเป็นแนวทางเชิงปริมาณไม่ใช่วิธีการจัดกลุ่ม

วัตถุประสงค์ของค่า k หมายถึงการลดความคลาดเคลื่อนกำลังสองน้อยที่สุด - เป็นตัวเลือกที่เหมาะสมถ้าคุณแทนที่ทุกวัตถุด้วยเซนทรอยด์ที่ใกล้ที่สุด (มันสมเหตุสมผลมากถ้าคุณตรวจสอบข้อมูลดั้งเดิมของกลุ่ม IMHO)

มีกรณีการใช้งานที่ดีสำหรับเรื่องนี้ กรณีการใช้ PCM เดิมของลอยด์มาถึงใจหรือเช่นquanization สี (วิกิพีเดีย) หากคุณต้องการที่จะลดภาพเพื่อ k สีที่คุณไม่ต้องการแทนที่พิกเซลพร้อม centroid ที่ใกล้ที่สุดทุก การลดความเบี่ยงเบนของสีกำลังสองน้อยที่สุดจะทำการวัดความเหมาะสมของ L2 ในการประมาณภาพโดยใช้สีเท่านั้นk

การหาปริมาณนี้อาจคล้ายกับตัวอย่างการถดถอยเชิงเส้น การถดถอยเชิงเส้นพบว่ารูปแบบเชิงเส้นที่ดีที่สุด และ k-mean ค้นหา (บางครั้ง) การลดค่า k ที่ดีที่สุดของชุดข้อมูลหลายมิติ โดยที่ "ดีที่สุด" เป็นข้อผิดพลาดกำลังสองน้อยที่สุด

IMHO, k- mean เป็นอัลกอริธึมquantizationที่ดี(ดูรูปแรกในโพสต์นี้ - ถ้าคุณต้องการประมาณข้อมูลที่ตั้งไว้ที่จุดสองจุดนี่เป็นตัวเลือกที่สมเหตุสมผล!) ถ้าคุณต้องการทำการวิเคราะห์แบบคลัสเตอร์เช่นเดียวกับในโครงสร้างการค้นพบ k-mean คือ IMHO ไม่ใช่ตัวเลือกที่ดีที่สุด มันมีแนวโน้มที่จะทำคลัสเตอร์เมื่อไม่มีกลุ่มและไม่สามารถรับรู้โครงสร้างต่าง ๆ ที่คุณเห็นข้อมูลจำนวนมาก


พิมพ์ดี: ภาพทั้งหมดถูกสร้างขึ้นด้วยELKI ข้อมูลถูกสร้างขึ้นโดยใช้.xmlรูปแบบการสร้างข้อมูล แต่เป็นข้อมูลพื้นฐานดังนั้นจึงไม่คุ้มค่าที่จะแบ่งปัน


17
(เพื่อให้ทราบ - อาจไม่ใช่ความคิดที่ดีที่จะพูดถึง "คำตอบด้านบน" เนื่องจากลำดับคำตอบที่ผู้อ่านเห็นอาจเป็นตัวแปรตัวอย่างเช่นหากพวกเขาตั้งค่าลำดับการแสดงผลเป็น "ใช้งาน" คำตอบของคุณคือ อันที่จริงข้างต้น!)
Silverfish

1
@ Anony-Mousse คำตอบนี้ยอดเยี่ยมจริงๆ แต่จนถึงตอนนี้ฉันก็มักจะลืมไปว่าสิ่งที่เรามักจะหมายถึงการพูดว่า "k- หมายถึงจะทำงานภายใต้เงื่อนไขบางอย่างและจะล้มเหลวภายใต้เงื่อนไขอื่น ๆ " คำว่า "ทำงาน" หรือ "ล้มเหลว" หมายถึงอะไรในบริบทนี้ "งาน" หมายถึงคำตอบที่สร้างขึ้นโดยวิธีการแบบ k จะหมายถึง 'ดูสมเหตุสมผล' หรือไม่? นี่มันคลุมเครือ หรือ 'ทำงาน' หมายถึงถ้า k-หมายถึงจัดหาโซลูชันที่เหมือนกับ 'โซลูชันมาตรฐาน' นั่นคือเราสร้างชุดข้อมูลล่วงหน้าและใช้ k-mean ในบริบทนี้ 'ทำงาน' เหมาะสม แต่ในความเป็นจริงข้อมูลไม่ได้ถูกสร้างขึ้นล่วงหน้าโดยการกระจายบางอย่าง
KevinKim

โดยทั่วไปแล้วผู้คนจะอ้างถึงความจริงพื้นฐานบางประการเช่นวิธีการสร้างข้อมูลหรือฉลากที่ซ่อนจากอัลกอริทึม การเปรียบเทียบกับข้อมูลที่สร้างจะต้องการอัลกอริทึมที่ปรับโมเดลที่ใช้สำหรับการสร้าง (เช่น GMM และ k-mean สำหรับ Gaussians) และแม้กระทั่งในข้อมูลจริงและติดป้ายการประเมินผลนี้เป็นเรื่องเกี่ยวกับทำซ้ำที่รู้จักกันผล เมื่อคุณพิจารณาด้านการค้นพบสำรวจตรวจ / ความรู้ที่คุณต้องการที่จะเรียนรู้สิ่งใหม่ แต่มันคือทั้งหมดที่เรามี
Anony-Mousse

มันจะทำงานได้ดีขึ้นในชุดข้อมูล A3 หรือไม่ถ้าถูกปรับให้เป็นจำนวนกลุ่มที่มีประสิทธิภาพตามที่กำหนดไว้ก่อน k
TMOTTM

@TMOTTM นี่คือด้วย k เลือกโดยความรู้ก่อน ที่ดีที่สุดของ 10 วิ่งทั้งหมดด้วย "ถูกต้อง" k เลือกนิรนัย
Anony-Mousse

450

เป็นคำถามที่ดีมาก - เป็นโอกาสที่จะแสดงให้เห็นว่าใครจะตรวจสอบข้อบกพร่องและสมมติฐานของวิธีการทางสถิติใด ๆ กล่าวคือสร้างข้อมูลและลองใช้อัลกอริธึมกับมัน!

เราจะพิจารณาสมมติฐานสองข้อของคุณและเราจะเห็นว่าเกิดอะไรขึ้นกับอัลกอริทึม k-mean เมื่อสมมติฐานเหล่านั้นเสีย เราจะยึดข้อมูลสองมิติเนื่องจากง่ายต่อการมองเห็น (ต้องขอบคุณคำสาปของมิติข้อมูลการเพิ่มมิติเพิ่มเติมมีแนวโน้มที่จะทำให้ปัญหาเหล่านี้รุนแรงขึ้นไม่น้อยลง) เราจะทำงานร่วมกับภาษาการเขียนโปรแกรมเชิงสถิติ R: คุณสามารถค้นหารหัสเต็มได้ที่นี่ (และโพสต์ในรูปแบบบล็อกที่นี่ )

การเบี่ยงเบน: สี่ของ Anscombe

ก่อนการเปรียบเทียบ ลองนึกภาพใครบางคนแย้งสิ่งต่อไปนี้:

ฉันอ่านเนื้อหาเกี่ยวกับข้อเสียของการถดถอยเชิงเส้นซึ่งคาดว่าจะมีแนวโน้มเชิงเส้นว่าส่วนที่เหลือจะกระจายตามปกติและไม่มีค่าผิดปกติ แต่การถดถอยเชิงเส้นทั้งหมดกำลังทำคือลดผลรวมของข้อผิดพลาดกำลังสอง (SSE) จากบรรทัดที่ทำนาย นั่นเป็นปัญหาการหาค่าเหมาะที่สุดที่สามารถแก้ไขได้ไม่ว่ารูปร่างของส่วนโค้งหรือการกระจายตัวของเศษซากจะเป็นเท่าไหร่ ดังนั้นการถดถอยเชิงเส้นจึงไม่จำเป็นต้องมีสมมติฐานในการทำงาน

ใช่แล้วการถดถอยเชิงเส้นทำงานได้โดยการลดผลรวมของส่วนที่เหลือกำลังสอง แต่นั่นด้วยตัวเองไม่ได้เป็นเป้าหมายของการถดถอยที่: สิ่งที่เรากำลังพยายามที่จะทำคือการวาดเส้นที่ทำหน้าที่เป็นที่เชื่อถือได้ทำนายเป็นกลางของปีบนพื้นฐานของx ทฤษฎีบท Gauss-มาร์คอฟบอกเราว่าลด SSE สำเร็จที่ goal- แต่ทฤษฎีบทที่วางอยู่บนสมมติฐานเฉพาะบางอย่าง หากสมมติฐานเหล่านั้นใช้งานไม่ได้คุณยังสามารถลด SSE ได้ แต่อาจไม่ทำเช่นนั้นสิ่งใด ลองนึกภาพว่า "คุณขับรถยนต์ด้วยการกดคันเร่ง: การขับรถนั้นเป็นกระบวนการ 'การเหยียบคันเร่ง' สามารถเหยียบคันเร่งได้ไม่ว่าจะมีแก๊สอยู่ในถังมากแค่ไหนดังนั้นแม้ว่าถังนั้นจะว่างเปล่าคุณก็ยังสามารถเหยียบคันเร่งแล้วขับรถได้

แต่การพูดคุยราคาถูก เรามาดูความเย็นความแข็งข้อมูล หรือข้อมูลที่สร้างขึ้นจริง

ป้อนคำอธิบายรูปภาพที่นี่

R2

อาจกล่าวได้ว่า "การถดถอยเชิงเส้นยังคงใช้งานได้ในกรณีเหล่านี้เพราะมันลดผลรวมของกำลังสองของเศษเหลือ" แต่ชัยชนะของ Pyrrhic ! การถดถอยเชิงเส้นจะวาดเส้นเสมอ แต่ถ้าเป็นเส้นที่ไม่มีความหมายใครจะสนใจ?

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

สมมติฐานที่ใช้งานไม่ได้: ข้อมูลที่ไม่เป็นทรงกลม

คุณยืนยันว่าอัลกอริทึม k-mean จะทำงานได้ดีบนคลัสเตอร์ที่ไม่ใช่ทรงกลม กลุ่มที่ไม่ใช่ทรงกลมเช่นนี้ ...

ป้อนคำอธิบายรูปภาพที่นี่

บางทีนี่อาจไม่ใช่สิ่งที่คุณคาดหวัง แต่ก็เป็นวิธีที่เหมาะสมอย่างยิ่งในการสร้างกลุ่ม เมื่อดูที่ภาพนี้มนุษย์เราจะจดจำคะแนนธรรมชาติสองกลุ่มได้ทันทีโดยไม่ผิดพลาด ดังนั้นมาดูกันว่า k-mean ทำอย่างไร: การมอบหมายจะแสดงเป็นสีศูนย์ที่ถูกจัดแสดงจะแสดงเป็น X

ป้อนคำอธิบายรูปภาพที่นี่

ดีที่ 's ไม่ถูกต้อง K-หมายความว่าพยายามใส่หมุดสี่เหลี่ยมในรูกลม - พยายามหาจุดศูนย์กลางที่ดีที่มีทรงกลมเรียบร้อยรอบตัว - และมันล้มเหลว ใช่มันยังคงลดผลรวมภายในกลุ่มของกำลังสองให้น้อยที่สุด - แต่ก็เหมือนกับใน Quartet ของ Anscombe ด้านบนมันเป็นชัยชนะของ Pyrrhic!

คุณอาจพูดว่า "นั่นไม่ใช่ตัวอย่างที่ยุติธรรม ... ไม่มีวิธีการจัดกลุ่มที่สามารถค้นหากลุ่มที่แปลกได้อย่างถูกต้อง" ไม่จริง! ลองทำคลัสเตอร์เชื่อมโยง ลำดับชั้นเดียว :

ป้อนคำอธิบายรูปภาพที่นี่

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

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

ท้ายนี้ฉันควรทราบว่า k-mean ยังคงสามารถกู้ได้! หากคุณเริ่มต้นด้วยการแปลงข้อมูลของคุณเป็นพิกัดเชิงขั้วตอนนี้การจัดกลุ่มจะทำงานได้:

ป้อนคำอธิบายรูปภาพที่นี่

นั่นเป็นเหตุผลที่การทำความเข้าใจสมมติฐานที่ใช้เป็นพื้นฐานเป็นสิ่งสำคัญ: มันไม่เพียง แต่บอกคุณเมื่อวิธีมีข้อบกพร่องมันบอกวิธีการแก้ไข

สมมติฐานที่ขาด: กลุ่มที่มีขนาดไม่เท่ากัน

จะทำอย่างไรถ้ากลุ่มมีจำนวนคะแนนไม่เท่ากันซึ่งทำให้การจัดกลุ่ม k-mean แตกด้วย? ลองพิจารณาชุดของกลุ่มนี้ขนาด 20, 100, 500 ฉันสร้างจาก Gaussian หลายตัวแปร:

ป้อนคำอธิบายรูปภาพที่นี่

ดูเหมือนว่าค่าเฉลี่ย k อาจหากลุ่มพวกนั้นใช่ไหม ดูเหมือนว่าทุกอย่างจะถูกสร้างเป็นกลุ่มที่เรียบร้อยและเป็นระเบียบ ดังนั้นลองใช้วิธี k:

ป้อนคำอธิบายรูปภาพที่นี่

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

หากคุณเล่นกับตัวอย่างเหล่านี้เล็กน้อย ( รหัส R ที่นี่! ) คุณจะเห็นว่าคุณสามารถสร้างสถานการณ์จำลองได้มากขึ้นซึ่งค่าเฉลี่ย k ทำให้ค่านั้นผิดพลาดอย่างน่าอาย

สรุป: ไม่มีอาหารกลางวันฟรี

มีการก่อสร้างที่มีเสน่ห์ในคติชนวิทยาคณิตศาสตร์โดยWolpert และ Macreadyเรียกว่า "ทฤษฎีบทอาหารกลางวันฟรี" มันอาจเป็นทฤษฎีบทที่ฉันชื่นชอบในปรัชญาการเรียนรู้ของเครื่องและฉันมีโอกาสที่จะนำมันขึ้นมา (ฉันพูดถึงฉันรักคำถามนี้หรือไม่) แนวคิดพื้นฐานถูกระบุไว้ (ไม่ใช่อย่างจริงจัง) เช่นนี้: " ทุกอัลกอริทึมทำงานได้ดีพอ ๆ กัน "

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

สิ่งนี้หมายความว่า? หมายความว่าสมมติฐานเป็นที่มาของพลังของคุณ! เมื่อ Netflix แนะนำภาพยนตร์ให้กับคุณก็สมมติว่าถ้าคุณชอบหนังหนึ่งเรื่องคุณจะชอบหนังที่คล้ายกัน (และในทางกลับกัน) ลองจินตนาการถึงโลกที่ไม่เป็นความจริงและรสนิยมของคุณจะถูกสุ่มกระจายออกไปอย่างไร้ที่ติในประเภทนักแสดงและผู้กำกับ อัลกอริทึมการแนะนำของพวกเขาจะล้มเหลวอย่างมาก มันจะสมเหตุสมผลหรือไม่ที่จะพูดว่า "ก็ยังคงลดข้อผิดพลาดกำลังสองที่คาดไว้เอาไว้ดังนั้นอัลกอริทึมก็ยังทำงาน" คุณไม่สามารถสร้างอัลกอริทึมการแนะนำโดยไม่มีการตั้งสมมติฐานเกี่ยวกับรสนิยมของผู้ใช้ - เหมือนกับที่คุณไม่สามารถสร้างอัลกอริทึมการจัดกลุ่มได้โดยไม่ต้องทำการตั้งสมมติฐานเกี่ยวกับลักษณะของกลุ่มเหล่านั้น

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



50
+1 สำหรับคำตอบที่หลงใหลนี้ ฉันชอบตัวอย่างการแปลงขั้วอย่างมากเทคนิคที่ชาญฉลาดเหล่านั้นไม่เคยหยุดสมองของฉันที่ไม่รู้เรื่องคณิตศาสตร์
mugen

20
+ 1 นี่เป็นคำตอบที่สวยงามอย่างยิ่งที่แสดงให้เห็นว่าสมมติฐานแตกสลายโดยไม่จมลงในรายละเอียดของการวิเคราะห์
Louis Cialdella

15
+1 หนึ่งในสิ่งที่คนทั่วไปมักจะบ่นกับฉันคือสิ่งที่ในทางทฤษฎีไม่ได้ใช้งานจริง แต่เมื่อฉันถามว่า "ข้อมูลของคุณตรงกับสมมติฐานของโมเดลหรือไม่" ฉันเพียงแค่ได้รับรูปลักษณ์ที่ว่างเปล่าจากใบหน้าของพวกเขา คำตอบของคุณและโดยเฉพาะอย่างยิ่งในส่วนสุดท้ายทำให้ฉันมีความสุขจริงๆ
TenaliRaman

9
+1 ว้าวฉันอยู่แถวนี้มาระยะหนึ่งแล้ว แต่ฉันคิดว่าฉันไม่เคยเห็นคำตอบเลยที่จะมีผู้โหวตมากถึง 50+ คนในหนึ่งวัน นี่คือความสำเร็จที่น่าประทับใจอย่างแท้จริง
อะมีบา

7
การแปลงเชิงขั้วอย่างที่ฉันเห็นมันมีประโยชน์ส่วนใหญ่ในที่นี้เป็นตัวอย่างแรกและปราศจากศัพท์แสงสำหรับเทคนิคการทำคลัสเตอร์เคอร์เนล - ซึ่งการแปลงรูปแบบนี้เป็นวิธีการเรียนรู้เชิงเส้นให้ทำงาน
Mikael Vejdemo-Johansson

7

ฉันต้องการเพิ่มคำตอบของ @ DavidRobinson ว่าการรวมกลุ่มกับความแปรปรวนของกลุ่มน้อยที่สุดเป็นปัญหาการปรับให้เหมาะสมแบบ combinatorialซึ่ง k-Means เป็นเพียงเทคนิคเดียว อันนี้ก็ไม่ดีเหมือนกัน นอกจากนี้พยายามที่จะปรับปรุง "กระดูกเปลือย" อย่างมีนัยสำคัญ k- หมายถึงอย่างใด (แต่อย่างรวดเร็ว!) การหาที่เมล็ดคลัสเตอร์ควรจะเป็นถึงวาระจากจุดเริ่มต้น: เนื่องจากเมล็ดส่งผลกระทบ (อย่างรุนแรง!) กลุ่มสุดท้ายมันจำนวน เพื่อ "รู้" ว่าอะไรดีที่สุดคือ ... ก่อนคำนวณจริง

อย่างไรก็ตามเนื่องจากปัญหาการปรับให้เหมาะสมส่วนใหญ่มันอาจจะคล้อยตามเทคนิคการปรับให้เหมาะสมบางอย่าง หนึ่งในนั้นใกล้เคียงกับโครงสร้างของปัญหาอย่างมาก (ตามที่ NFL ต้องการ!) และแน่นอนมันแสดงให้เห็นในผลลัพธ์ ฉันไม่ต้องการสร้างโฆษณาใด ๆ ที่นี่ (จะเป็น - และถูกต้อง - ต่อต้านมารยาท) ดังนั้นถ้าคุณสนใจให้อ่านที่นี่และตัดสินใจด้วยตัวเอง

ที่ถูกกล่าวว่าฉันเห็นด้วยกับ @ttnphns ว่า k-Means ไม่ได้ระบุส่วนผสมแบบเกาส์ - ฟังก์ชั่นค่าใช้จ่ายของปัญหาทั้งสองนั้นแตกต่างกันอย่างสิ้นเชิง แต่กลับกลายเป็นว่าหาที่ดีที่สุดที่เหมาะสม (ในแง่ของความน่าจะเป็นรุ่นที่ได้รับข้อมูล) ผสมแบบเกาส์ยังเป็นการเพิ่มประสิทธิภาพ combinatorialปัญหา - และเป็นหนึ่งที่มีการเพิ่มประสิทธิภาพร้ายแรงเทคนิคที่มีอยู่เช่นกัน อีกครั้งหนึ่งที่ไม่มีโฆษณา: คุณสามารถเข้าถึงข้อสรุปของคุณเองที่นี่ - ฉันเพียงแค่จะบอกว่าอัลกอริทึมที่กล่าวสามารถมีจริงถูกต้องระบุกลุ่มเช่นภาพสุดท้ายใน @ เดวิดรอบินสันโพสต์ มันยังถูกต้อง (เช่นในทางคณิตศาสตร์ที่กำหนดไว้อย่างดี) แก้ปัญหาตลอดกาลของค่าผิดปกตินั่นคือจุดข้อมูลที่ไม่ได้เป็นของกลุ่มใด ๆ เพราะพวกเขาเป็นเพียงการสุ่มอย่างสมบูรณ์ (ฉาวโฉ่พวกเขาตกราง k-หมายถึงอย่างสมบูรณ์ ) สิ่งนี้ทำได้โดยมีการแจกเครื่องแบบเพิ่มเติมอีกหนึ่งชุดแข่งขันกับเกาส์เซียน ... และผลลัพธ์ที่ยอดเยี่ยมคือจากข้อมูลที่กระจายอย่างสม่ำเสมอมันรายงานว่าไม่มีอะไรในนั้น (ฉันไม่เคยเห็นที่อื่นเลย)

ตอนนี้เห็นได้ชัดว่าตาม NFL และตามที่คุณชี้อย่างถูกต้องแม้แต่ Gaussian Mixtures ระดับโลกที่มีการระบุตัวตนที่ดีที่สุดในระดับโลกก็ขึ้นอยู่กับข้อสันนิษฐานก่อนหน้านั่นคือการกระจายข้อมูลเป็นไปตามปกติ โชคดีที่แม้ว่าขอบคุณกฎหมายจำนวนมากที่ปรากฏการณ์ทางธรรมชาติต่าง ๆ นานาไม่สอดคล้องกับสมมติฐานที่ว่า

การปฏิเสธความรับผิด: ด้วยคำขอโทษที่ลึกที่สุดของฉันฉันเขียนทั้งสองเอกสารข้างต้นและอัลกอริทึมที่พวกเขาพูดคุย

ป.ล. ฉันได้พบกับ Macready ในการประชุมหนึ่งครั้ง - เป็นคนที่ดีและสดใสมาก!


นี่น่าจะเป็นคำตอบสำหรับคำถาม
Michael Chernick

3
มันคือคำตอบจริง ๆ Michael: k-Means PRETENDS เพื่อแก้ปัญหาการเพิ่มประสิทธิภาพ combinatorial จริง ๆ ... แต่มันก็ไม่แน่นอน (ไม่จริงจังเลย) นอกจากนี้ k-Means ถือว่าเป็นทรงกลมแบบกระจายซึ่งมันง่อยมากมันจะทำให้คุณร้องไห้ (คูณหนึ่งในสองมิติด้วยสองมิติและรับสิ่งที่แตกต่างอย่างสิ้นเชิงไม่ว่าจะเป็นเมล็ดพันธุ์ใด "ฉลาด" ของคุณ! และคำถามของค่าผิดปกติ (แสดงอยู่ในข้อมูลในโลกแห่งความเป็นจริงใด ๆ ที่ฉันเคยเห็น!) ก็ไม่ได้กล่าวถึงใน k-Means ถึงแม้ว่าพวกเขาจะทำลายสิ่งใดก็ตาม
Emanuel Falkenauer

1
@EmanuelFalkenauer ยินดีต้อนรับสู่เว็บไซต์ ฉันลงคะแนนให้ (+1) สำหรับคำตอบของคุณ แต่มันก็เป็นการหลอกลวง K-mean ทำท่าอะไรบางอย่างสำหรับมันไม่ใช่มนุษย์? มันทำในสิ่งที่มันทำและไม่เลวสำหรับวิธีการที่ง่าย / เร็ว
ttnphns

@ttnphns: ขอบคุณสำหรับการต้อนรับและ upvote! แน่นอนว่าk-Meansไม่ได้เสแสร้งอะไร (มันเป็นแค่ส่วนหนึ่งของรหัส - ฉันแย่มาก!) แต่ผู้คนที่สนับสนุนมันทำ - ตามที่ OP ค้นพบ ฉันเห็นด้วยกับคุณชี้ให้เห็นว่ามันเป็นวิธี "ง่าย / เร็ว" - แต่ปัญหาใหญ่คือการพึ่งพาการส่งออกใด ๆ แต่ข้อมูลที่ง่ายที่สุดอยู่ใกล้กับการฆ่าตัวตาย: ไม่เพียง แต่ทำให้สมมติฐานที่ไม่ได้ปฏิบัติตามมากที่สุด ของเวลา แต่ถึงแม้ว่าพวกเขาจะมันทำงานได้แย่มาก คุณเพียงแค่ไม่ได้แก้ปัญหา combinatorial ด้วยโคตรที่ชันที่สุด ;-)
Emanuel Falkenauer

6

การพูดอย่างมีเหตุผลข้อเสียของ K-mean คือ:

  • ต้องการการแยกเชิงเส้นของกลุ่ม
  • จำเป็นต้องระบุจำนวนของกลุ่ม
  • อัลกอริทึม: ขั้นตอนการภักดีไม่ได้รวมกันเป็นค่าสูงสุดระดับโลกที่แท้จริงแม้จะมีการเริ่มต้นที่ดีเมื่อมีหลายจุดหรือหลายมิติ

แต่ K-Mean ดีกว่าที่เราคิด ฉันค่อนข้างกระตือรือร้นเกี่ยวกับมันหลังจากทดสอบกับวิธีการจัดกลุ่มอื่น ๆ (สเปกตรัมความหนาแน่น ... ) และ LDA ในการจัดหมวดหมู่ข้อความในชีวิตจริงของหนึ่งล้านข้อความ: K- หมายถึงมีความแม่นยำดีกว่า LDA เช่น (88% vs 59%) วิธีการจัดกลุ่มอื่น ๆ นั้นดี แต่ K-Mean นั้นใกล้เคียงกับ ... และมีราคาไม่แพงมากในแง่ของความซับซ้อน

ฉันไม่เคยอ่านเกี่ยวกับวิธีการจัดกลุ่มที่ดีขึ้นในระดับสากลในปัญหาที่หลากหลาย การไม่พูดว่า K-mean ดีกว่าในระดับสากลเพียงแค่ว่าไม่มีซูเปอร์ฮีโร่กลุ่มสากลเท่าที่ฉันรู้ บทความมากมายหลายวิธีไม่ใช่การปฏิวัติอย่างแท้จริง (จากประสบการณ์ส่วนตัวที่ จำกัด ในการทดสอบบางข้อ)

เหตุผลหลักที่ว่าทำไมข้อเสียเปรียบเชิงตรรกะของ K-mean มักจะปรากฏชัดเจนเพียงอย่างเดียวคือการรวมกลุ่มของจุดในระนาบ 2D เป็นสิ่งที่คุณไม่ค่อยได้เรียนรู้ในเครื่อง หลายสิ่งจากสัญชาตญาณทางเรขาคณิตที่เป็นจริงใน 2D, 3D ... ไม่เกี่ยวข้องในมิติที่ค่อนข้างสูงหรือปริภูมิเวกเตอร์ที่เป็นนามธรรม (เช่นถุงคำ, เวกเตอร์ของตัวแปร ... )

การแยกเชิงเส้น: คุณแทบจะไม่ต้องจัดการกับกลุ่มวงกลมในข้อมูลชีวิตจริง เป็นการดียิ่งกว่าที่จะสมมติว่าไม่มีในกรณีนี้ การอนุญาตให้อัลกอริทึมของคุณค้นหามันจะอนุญาตให้มันค้นหากลุ่มวงกลมแปลก ๆ ในเสียง สมมติฐานเชิงเส้นใน K-mean ทำให้มันแข็งแกร่งขึ้นบ่อยครั้ง

จำนวนกลุ่ม: มักจะไม่มีกลุ่มอุดมคติที่แท้จริงที่คุณต้องการดู สำหรับการจำแนกข้อความเช่นอาจมี 100 หมวดหมู่ 105, 110 ... มันค่อนข้างเป็นอัตนัย การระบุจำนวนกลุ่มจะเทียบเท่ากับการระบุกลุ่มโกลบอล วิธีการจัดกลุ่มทั้งหมดต้องการข้อมูลจำเพาะที่ละเอียด

10a lot

แต่อัลกอริทึมการจัดกลุ่มทั้งหมดมีข้อ จำกัด ดังกล่าว ตัวอย่างเช่นในการจัดกลุ่ม Spectral: คุณไม่พบ eigenvector จริงเพียงการประมาณเท่านั้น

ในช่วงเวลาเดียวกันการคำนวณห้องสมุด LDA ที่ได้รับการปรับให้เหมาะสมนั้นทำได้ดีกว่าการแปล K-mean ตั้งแต่นั้นมาฉันก็คิดแตกต่างออกไปเล็กน้อย


1

เพื่อให้เข้าใจถึงข้อเสียของ K-หมายความว่าฉันชอบที่จะคิดว่ามันคืออะไร

KK

Kσ2Iσ2Kσ20

ดังนั้นสิ่งนี้บอกอะไรเราเกี่ยวกับข้อเสียของ K-mean

  1. K-mean นำไปสู่กลุ่มที่ดู Gaussian หลายตัวแปร
  2. เนื่องจากความแปรปรวนของตัวแปรมีค่าเท่ากัน K-mean นำไปสู่กลุ่มที่มีลักษณะเป็นทรงกลม
  3. K
  4. K-mean มีแนวโน้มไปทางกลุ่มที่มีขนาดเท่ากัน

K-mean เป็นอัลกอริธึมที่ค่อนข้าง จำกัด ประโยชน์ที่ได้รับจากสมมติฐานข้างต้นคุณสามารถดำเนินการกับอัลกอริทึมได้อย่างรวดเร็ว แต่ถ้าประสิทธิภาพการทำคลัสเตอร์เป็นสิ่งที่คุณให้ความสำคัญอันดับแรก K-Mean มัก จำกัด ในสถานการณ์จริงมากเกินไป


2
ฉันไม่เห็นด้วยอย่างเต็มที่ การอ้างสิทธิ์ K- หมายถึงการเป็นกรณีเฉพาะของการผสมแบบเกาส์เซียนนั้นเป็นการถ่างไกล K- หมายถึงไม่ถือว่าการแจกแจงแบบเฉพาะเจาะจงเช่นปกติ (ดังนั้นมันจึงไม่ใช่ความน่าจะเป็นพื้นดิน) มันจะถือว่ากลุ่ม nonoverlapping (เช่นไม่มี "ผสม") มันถือว่าเป็นกระจุกทรงกลม แต่แม่นยำกว่าที่จะบอกว่ามันถือว่าเป็นรูปหลายเหลี่ยมนูนของเซลล์ Voronoi อาจเป็นเรื่องถูกต้องที่จะบอกว่า K-แปลว่าไม่มี "แบบจำลอง" อะไรเลยมันไม่มีการอ้างอิงโดยตรงไปยังกระบวนการสร้างข้อมูล K- หมายถึง "มีแนวโน้มไปยังกลุ่มที่มีขนาดเท่ากัน [ตามจำนวนคะแนน]" - ไม่จำเป็นเสมอไป
ttnphns

4
@ttnphns สามารถแสดงให้เห็นว่า k-mean เป็นกรณีพิเศษของ GMM: en.wikipedia.org/wiki/K-means_clustering#Gaussian_Mixture_Model
TrynnaDoStat

It can be shown that. ด้วยการยืดตัวที่เพียงพอสิ่งใดก็ตามที่สามารถ "แสดง" ว่าเป็นเครือญาติโดยไร้เหตุผล
ttnphns

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