K เร็วหมายถึงอัลกอริทึมสำหรับ 10 ^ 10 คะแนนหรือไม่


14

ฉันกำลังมองหาการจัดกลุ่ม k หมายถึงชุดของจุด 10 มิติ การจับ: มี 10 ^ 10 คะแนนคะแนน

ฉันกำลังมองหาเพียงศูนย์กลางและขนาดของกลุ่มที่ใหญ่ที่สุด (สมมติว่า 10 ถึง 100 กลุ่ม); ฉันไม่สนใจว่าคลัสเตอร์แต่ละจุดจะอยู่ในจุดใดการใช้ k-mean โดยเฉพาะนั้นไม่สำคัญ ฉันแค่กำลังมองหาเอฟเฟกต์ที่คล้ายกันค่าประมาณ k-mean หรืออัลกอริธึมที่เกี่ยวข้องจะดีมาก (minibatch-SGD หมายถึง ... ) เนื่องจาก GMM มีปัญหาเช่นเดียวกับ k-mean การทำ GMM กับข้อมูลขนาดเดียวกันก็น่าสนใจเช่นกัน

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


1
หลายขั้นตอนวิธีการที่อธิบายไว้ในหนังสือ "การทำเหมืองแร่ของชุดข้อมูลขนาดใหญ่" ซึ่งคุณสามารถดาวน์โหลดได้ฟรีที่นี่ อ่านบทที่ 7 "การทำคลัสเตอร์"
lanenok

คำตอบ:


12

k หมายถึงจะขึ้นอยู่กับค่าเฉลี่ย

มันเป็นแบบจำลองกลุ่มโดยใช้วิธีการและทำให้การปรับปรุงโดยการเพิ่มข้อมูลเพิ่มเติมคือส่วนเล็กน้อย ข้อผิดพลาดของการประมาณค่าเฉลี่ยลดลงด้วย 1 / sqrt (n); ดังนั้นการเพิ่มข้อมูลเพิ่มเติมจ่ายออกน้อยลง ...

กลยุทธ์สำหรับข้อมูลขนาดใหญ่เช่นนั้นมักจะหมุนรอบการสุ่มตัวอย่าง:

ถ้าคุณต้องการใช้งาน sublinear คุณต้องทำการสุ่มตัวอย่าง!

ในความเป็นจริง Mini-Batch-Kmeans ฯลฯ ทำสิ่งนี้: ตัวอย่างซ้ำ ๆ จากชุดข้อมูล

อย่างไรก็ตามการสุ่มตัวอย่าง (โดยเฉพาะอย่างยิ่งการสุ่มตัวอย่างที่เป็นกลาง) นั้นไม่ได้ฟรีอย่างแน่นอน ... โดยปกติคุณจะต้องอ่านข้อมูลของคุณเป็นเส้นตรงตัวอย่างเนื่องจากคุณไม่ได้รับการเข้าถึงแบบสุ่มไปยังแต่ละระเบียน

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


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

6

ในฐานะที่เป็นความคิดเห็นด้านทราบว่าการใช้ K- หมายถึงสำหรับข้อมูล 10D อาจสิ้นสุดในที่ใดก็ได้ตามคำสาปของมิติ แน่นอนมันแตกต่างกันเล็กน้อยตามลักษณะของข้อมูล แต่เมื่อฉันพยายามกำหนดเกณฑ์ที่ K-Means เริ่มทำตัวแปลก ๆ เกี่ยวกับมิติฉันได้รับบางสิ่งบางอย่างเช่น 7D หลังจาก 7 มิติมันเริ่มพลาดกลุ่มที่ถูกต้อง (ข้อมูลของฉันถูกสร้างขึ้นด้วยตนเองตามการแจกแจงแบบเกาส์ 4 ส่วนที่แยกจากกันอย่างดีและฉันใช้ฟังก์ชั่นMATLAB kmeansสำหรับการทดลองเล็ก ๆ ของฉัน)


สิ่งนี้เป็นไปได้และแน่นอนขึ้นอยู่กับข้อมูลอยู่เสมอ อย่างไรก็ตามเนื่องจากโปสเตอร์มีตัวอย่าง 10 ^ 10 (อาจเป็นอิสระ) ดูเหมือนว่า 10 มิติจะไม่เป็นปัญหาใหญ่เกินไปที่นี่
Ryan J. Smith

2
ขอบคุณสำหรับความคิดเห็นของคุณ @ RyanJ.Smith ความคิดเห็นของคุณเป็นไปในทิศทางเดียวกันกับฉัน ฉันไม่เห็นอะไรเกี่ยวกับปัญหานี้ในโพสต์ และเกี่ยวกับจำนวนตัวอย่าง; อย่างไรก็ตามเขามีคะแนนตัวอย่างมากมายที่เขายังอาจติดอยู่ในปัญหามิติ ฉันคิดว่าคุณกำลังโต้เถียงกับฝั่งตรงข้ามของปัญหาขนาดตัวอย่างต่ำซึ่งฉันคิดว่าไม่ถูกต้อง ถ้าเขามีข้อมูลที่มีมิติสูงขนาดตัวอย่างที่ต่ำจะเป็นปัญหา แต่ฉันคิดว่าข้อมูลจำนวนมากไม่จำเป็นต้องมีความหมายอะไรเลย
Kasra Manshaei

10 มิติยังไม่มากนัก
แล้ว - Anony-Mousse

1
คุณจะกำหนดเพื่อนของฉันได้อย่างไร สิ่งที่ฉันพูดคือผลของการทดสอบที่ออกแบบมาเพื่อตอบคำถามดังกล่าว แต่ไม่สามารถตอบได้โดยทั่วไป! "มาก" ในความคิดเห็นของคุณคืออะไร? มันขึ้นอยู่กับสถานการณ์หลายอย่างที่ฉันพูดถึงในคำตอบของฉัน ในบางสถานการณ์ 10D อาจเป็นปัญหาได้
Kasra Manshaei
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.