มีกรณีที่ไม่มี k ที่ดีที่สุดใน k-mean


11

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

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

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

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


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

2
@ttnphns: ฉันหวังว่าฉันเข้าใจประเด็นของคุณ แต่เพื่อความรู้ที่ดีที่สุดของเราเราสามารถใช้การวัดระยะทางด้วย k-mean ได้หรือไม่ ฉันกำลังทำสิ่งนี้ใน Python แต่ดูเหมือนว่ามีห้องสมุดสำหรับ R: cran.r-project.org/web/packages/skmeans/index.htmlอินพุตยังไม่ใช่เมทริกซ์ความใกล้เคียง แต่จะterms x documentได้รับหลังจากใช้เวกเตอร์เอกพจน์ การจำแนก โปรดแก้ไขให้ฉันด้วยถ้าฉันเข้าใจผิด
ตำนาน

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

@ttnphns: ขอบคุณที่กลับมา แค่อยากจะให้แน่ใจว่าฉันไม่ได้ใช้แอปเปิ้ลและส้มกัน :)
ตำนาน

Unmodified k-หมายความว่าเหมาะสมสำหรับ -Norms เพราะมันคำนวณค่าเฉลี่ยเวคเตอร์และนั่นไม่ใช่การประมาณ ML ที่เหมาะสมสำหรับฟังก์ชันทางไกลอื่น ๆ Lp
มี QUIT - Anony-Mousse

คำตอบ:


12

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

นี้เป็นหลัก "การสาปแช่งของมิติ" การดูที่นี้หน้าวิกิพีเดียได้เป็นอย่างดี

กระดาษที่อาจเป็นที่สนใจคือ Sanguinetti, G. , "การลดมิติของ datsets แบบกลุ่ม", ธุรกรรม IEEE เกี่ยวกับการวิเคราะห์รูปแบบและความฉลาดของเครื่อง, ฉบับที่ 30 ไม่ 3, pp. 535-540, มีนาคม 2008 ( www ) ซึ่งเป็นเหมือนรุ่น LDA ที่ไม่มีผู้ดูแลซึ่งค้นหาพื้นที่ว่างในระดับต่ำที่เน้นโครงสร้างคลัสเตอร์ บางทีคุณอาจใช้วิธีนี้เป็นวิธีการแยกฟีเจอร์ก่อนที่จะดำเนินการกับค่า k?


อ๊ะขอโทษ ฉันควรจะพูดว่าฉันกำลังใช้ความคล้ายคลึงโคไซน์
ตำนาน

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

+1 ขอบคุณสำหรับลิงค์ ฉันจะผ่านมันไปและกลับมา ฉันใช้ SVD กับเมทริกซ์ดั้งเดิมของฉันก่อนที่จะใช้ค่า k เพื่อลดจำนวนมิติ
ตำนาน

3

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


+1 ขอบคุณสำหรับคำแนะนำ ฉันไม่รู้ Cytoscape ฉันจะลองดู และใช่มันดูเหมือนว่า k-หมายความว่าด้วยความคล้ายคลึงกันโคไซน์เรียกว่า Spherical k-Mean ฉันใช้ k-mean นี้หลังจากใช้ SVD และลดจำนวนมิติ วิธีที่ฉันลดจำนวนมิติคือใช้กฎความแปรปรวน (เลือกค่าเอกพจน์ที่นำไปสู่ ​​95% ของความแปรปรวนในข้อมูลต้นฉบับ)
ตำนาน

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

เมื่อฉันทำงานกับโปรแกรมเหล่านั้นฉันคำนวณความคล้ายคลึงกันทั้งคู่จากภายนอกกรองตามเกณฑ์และสร้างไฟล์ที่มีรูปแบบ <label1> <label2> <similarity> ควรจะสามารถอ่านอินพุตนั้นได้ ใน BioLayout ต้องมี. txt ต่อท้ายฉันคิดว่า; ใน CytoScape ใช้ 'นำเข้าจากตาราง'
micans

เข้าใจ ฉันจะทำอย่างนั้นและกลับมาเร็ว ๆ นี้ ขอบคุณอีกครั้ง.
ตำนาน

ขออภัยสำหรับคำถามโง่ ๆ แต่ฉันจัดรูปแบบข้อมูลของฉันเป็น <label1> <label2> <similarity> แต่ฉันไม่สามารถหาวิธีนำเข้าได้อย่างแม่นยำ ฉันทำไฟล์ -> นำเข้า -> เครือข่ายจากตารางและเลือกคอลัมน์ต้นทางและเป้าหมายของฉัน ฉันปล่อยให้การโต้ตอบเป็นค่าเริ่มต้น แต่ฉันควรจะนำเข้าน้ำหนักขอบพร้อมกับขอบได้อย่างไร คุณจะมีข้อเสนอแนะโปรด?
ตำนาน

2

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

ที่ได้รับเพิ่มเติมสัญชาตญาณของคุณยังสามารถลองใช้วิธีการสร้างภาพอื่น: K-หมายความว่าคุณสามารถเห็นภาพหลายทำงานกับ K-หมายถึงการใช้ Graphgrams (ดูแพคเกจ graphgram WEKA - รับที่ดีที่สุดโดยผู้จัดการแพคเกจหรือนี่ . แนะนำและตัวอย่างนอกจากนี้ยังสามารถ พบที่นี่


1

ถ้าฉันเข้าใจกราฟอย่างถูกต้องมันคือพล็อตของจำนวนกลุ่ม K บนแกน x และระยะห่างของกลุ่มบนแกน y?

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

อาจลองใช้สถิติ Gap: www-stat.stanford.edu/~tibs/ftp/gap.ps หรือคนอื่น ๆ ที่ชอบ

นอกจากนี้คุณอาจพบว่า K-หมายความว่าไม่ใช่เครื่องมือที่เหมาะสมสำหรับงาน คุณคาดว่าจะพบกลุ่มกี่กลุ่ม การใช้กฎความแปรปรวนสำหรับการลดขนาดสำหรับการจัดกลุ่มไม่เหมาะสม ดูกระดาษนี้สำหรับเมื่อทำการฉายภาพลงบนพีซี K-1 เครื่องแรกเป็นการวัดการประมวลผลล่วงหน้าที่เหมาะสม: http://people.csail.mit.edu/gjw/papers/jcss.ps

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

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