จะตัดสินใจเลือกกลุ่มที่ถูกต้องได้อย่างไร


54

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

ผมใช้ MATLAB สำหรับการคำนวณทางวิทยาศาสตร์ที่กำลังมองหาที่แปลงเงาจะได้รับเป็นวิธีการที่จะตัดสินใจเกี่ยวกับเคกล่าวถึงที่นี่ อย่างไรก็ตามฉันจะสนใจวิธีการแบบเบย์มากกว่า ข้อเสนอแนะใด ๆ ที่ชื่นชม


2
คำถามที่ดี ...

3
หัวข้อที่เกี่ยวข้อง: stats.stackexchange.com/q/10088/930 , stats.stackexchange.com/q/9016/930 , stats.stackexchange.com/q/11175/930
chl

ภายใต้การสร้างภาพข้อมูลสำหรับการทำคลัสเตอร์มี (อะแฮ่ม) วิธีหนึ่งในการถ่ายภาพกลุ่ม k และเห็นเอฟเฟกต์ของ k ต่างๆในการถ่ายครั้งเดียวโดยใช้ MST
เดนิส

ผมเคยตอบคำถามนี้กับครึ่งโหลวิธีการในRมากกว่าที่นี่
เบน

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

คำตอบ:


28

นี้ได้รับการถามสองสามครั้งใน StackOverflow: ที่นี่ , ที่นี่และที่นี่ คุณสามารถดูว่าผู้คนที่นั่นคิดอย่างไรเกี่ยวกับคำถามนี้ (หรือตัวแปรเล็ก ๆ น้อย ๆ )

ให้ฉันคัดลอกคำตอบของตัวเองสำหรับคำถามนี้ใน stackoverflow.com:

น่าเสียดายที่ไม่มีวิธีการตั้งค่า "right" K โดยอัตโนมัติและไม่มีคำจำกัดความว่า "right" คืออะไร ไม่มีวิธีการทางสถิติแบบหลักการเรียบง่ายหรือซับซ้อนที่สามารถตั้งค่า "right K" ได้ มีฮิวริสติกกฎของหัวแม่มือที่บางครั้งใช้งานได้บางครั้งก็ทำไม่ได้

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


+1 หลังจากอ่านข้อความนี้ - ดูเหมือนฉันจะเป็นคนเข้าใจง่ายมาก .... แต่ฉันต้องบอกว่าฉันไม่เคยคิดถึงเรื่องนี้มาก่อน ที่จริงแล้วปัญหาในการเลือกจำนวนของพีซีใน PCA นั้นเทียบเท่ากับปัญหาในการเลือกจำนวนของกลุ่มในค่าเฉลี่ย K ...
Dov

2
@Dov สองสิ่งนี้ไม่เท่ากัน มีมาตรการเฉพาะที่สามารถใช้ในการตรวจสอบคุณภาพของโซลูชัน PCA (ข้อผิดพลาดการสร้างใหม่ที่สะดุดตาที่สุด แต่ยัง% ของความแปรปรวนที่จับได้ ฯลฯ ) และสิ่งเหล่านี้มีแนวโน้มที่จะ (ส่วนใหญ่) สอดคล้องกัน อย่างไรก็ตามในการจัดกลุ่มมักจะไม่มีใคร "คำตอบที่ถูกต้อง" - การจัดกลุ่มหนึ่งอาจดีกว่าอีกการวัดหนึ่งและการย้อนกลับอาจเป็นจริงโดยใช้การวัดอื่น และในบางสถานการณ์สองกลุ่มที่แตกต่างกันน่าจะเท่ากันภายใต้ตัวชี้วัดเดียวกัน
tdc

@tdc แต่ไม่นี้en.wikipedia.org/wiki/...จะมากหรือน้อยเช่นนี้improvedoutcomes.com/docs/WebSiteDocs/PCA/... ?
Dov

2
@Dov ใช่พวกเขา "มากหรือน้อย" เหมือนกัน แต่ฉันก็แค่บอกว่าปัญหาในการเลือกจำนวนกลุ่มนั้นจะเต็มไปด้วยความยากลำบากกว่าการเลือกจำนวนพีซี - นั่นคือพวกเขาไม่ "เทียบเท่า"
tdc

1
+1 คุณพูดถูก เราแนะนำรุ่นอื่น ๆ บางอย่างหรือสมมติฐานที่จะตัดสินใจเกี่ยวกับ k ที่ดีที่สุด แต่คำถามจะกลายเป็นว่าทำไมเป็นแบบจำลองหรือสมมติฐานที่ดีที่สุด ...
petrichor

19

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

ต้องบอกว่าคุณอาจต้องการที่จะมีลักษณะที่กระบวนการ Dirichlet ดูบทช่วยสอนนี้ด้วย

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

αα


1
กระบวนการ Dirichlet ภายใต้พารามิเตอร์ความเข้มข้นใด มันเทียบเท่ากับคำถามเดิม, k-mean ภายใต้ k อะไร? แม้ว่าฉันยอมรับว่าเราเข้าใจดีกว่าการกระจาย Direchlet ว่าพฤติกรรมของอัลกอริทึมที่ซับซ้อนในข้อมูลจริงบางอย่าง
carlosdc

@carlosdc เป็นจุดที่ดีฉันได้อัปเดตคำตอบเพื่อรวมการอภิปรายเล็กน้อยเกี่ยวกับพารามิเตอร์ความเข้มข้น
tdc

1
จากประสบการณ์ของฉันมันง่ายกว่ามากที่จะเรียนรู้พารามิเตอร์ความเข้มข้นที่มีค่าอย่างต่อเนื่องเช่นอัลฟามากกว่าการกำหนดจำนวนของกลุ่มในรูปแบบผสมแน่นอน หากคุณต้องการที่จะยึดติดอยู่กับรูปแบบการผสม จำกัด และใช้แทคเบย์มีการกระโดดแบบย้อนกลับได้ MCMC ( onlinelibrary.wiley.com/doi/10.1111/1467-9868.00095/abstract )

1
คำตอบที่ดี ฉันจะเพิ่มกระดาษRevisiting K-หมายความว่าอัลกอริทึมใหม่ผ่านคชกรรม Nonparametrics ซึ่งให้แนวทาง "ต่อเนื่อง" ที่ง่ายต่อ K-Means จากนั้นจึงใช้การปรับให้เหมาะสมเพื่อหาค่าที่เหมาะสมที่สุด
Royi

9

ฉันใช้วิธี Elbow :

  • เริ่มต้นด้วย K = 2 และเพิ่มขึ้นเรื่อย ๆ ในแต่ละขั้นตอนด้วย 1 คำนวณกลุ่มของคุณและค่าใช้จ่ายที่มาพร้อมกับการฝึกอบรม ที่ค่า K ค่าใช้จ่ายจะลดลงอย่างมากและหลังจากนั้นจะถึงที่ราบสูงเมื่อคุณเพิ่มขึ้นอีก นี่คือค่า K ที่คุณต้องการ

เหตุผลก็คือหลังจากนี้คุณเพิ่มจำนวนกลุ่ม แต่คลัสเตอร์ใหม่อยู่ใกล้กับที่มีอยู่บางส่วน


ดูเหมือนว่านี่เป็นหลักการที่ใช้ในการประเมินวิธี L (ดูคำตอบของฉัน)
winwaed

6

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

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


5

นอกจากนี้คุณยังสามารถตรวจสอบการจัดกลุ่มที่ไม่เหมาะสมของ Optimal Fuzzyซึ่งจัดการกับปัญหาที่คุณได้กล่าวถึง (การค้นหาจำนวนของกลุ่ม) ซึ่งมีการปรับใช้รุ่นที่แก้ไขได้ ที่นี่


5

ฉันมีการจัดการเพื่อใช้ "วิธี L" เพื่อกำหนดจำนวนของกลุ่มในแอปพลิเคชันทางภูมิศาสตร์ (เช่น. เป็นปัญหา 2d พื้นฐานแม้ว่าในทางเทคนิคไม่ใช่ยูคลิด)

วิธี L อธิบายไว้ที่นี่: การ กำหนดจำนวนของกลุ่ม / เซกเมนต์ในอัลกอริทึมการจัดกลุ่ม / การแบ่งกลุ่มตามลำดับชั้น Stan Salvador และ Philip Chan

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

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

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


4

k

แต่ถ้าชุดข้อมูลของคุณไม่ตรงกับแบบแผนของ Voronoi ล่ะ

kk

k


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

3

โดยรวมคุณสามารถเลือกจำนวนกลุ่มในสองเส้นทางที่แตกต่างกัน

  1. การขับเคลื่อนความรู้: คุณควรมีความคิดว่าคุณต้องการคลัสเตอร์จำนวนมากจากมุมมองทางธุรกิจ ตัวอย่างเช่นคุณกำลังจัดกลุ่มลูกค้าคุณควรถามตัวเองหลังจากรับลูกค้าเหล่านี้ฉันควรทำอย่างไรต่อไป คุณจะได้รับการรักษาที่แตกต่างกันสำหรับกลุ่มที่แตกต่างกันหรือไม่ (เช่นการโฆษณาทางอีเมลหรือโทรศัพท์) จากนั้นคุณวางแผนการรักษาที่เป็นไปได้กี่วิธี ในตัวอย่างนี้คุณเลือกว่า 100 คลัสเตอร์จะไม่เข้าท่ามากนัก

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

ท้ายที่สุดคุณควรรวมการขับเคลื่อนความรู้และข้อมูลเข้าด้วยกันในโลกแห่งความเป็นจริง


2

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

นอกจากนี้ยังมีwekaการดำเนินงานมีรายละเอียดซึ่งสามารถพบได้ที่นี่


0

อีกวิธีคือการใช้อัลกอริธึมวิวัฒนาการซึ่งบุคคลมีโครโมโซมที่มีความยาวต่างกัน แต่ละคนเป็นผู้สมัครแก้ปัญหา: แต่ละคนมีพิกัด centroids จำนวนของเซนทรอยด์และพิกัดของพวกมันถูกวิวัฒนาการเพื่อให้ได้ผลลัพธ์ที่ดีที่สุดในการประเมินการจัดกลุ่ม

บทความนี้อธิบายถึงอัลกอริทึม

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