การจัดกลุ่มตามคะแนนความคล้ายคลึงกัน


17

สมมติว่าเรามีชุดขององค์ประกอบEและความคล้ายคลึงกัน ( ไม่ใช่ระยะทาง ) ฟังก์ชั่นซิม (EI, EJ)ระหว่างสององค์ประกอบEI, EJ ∈ E

เราจะจัดองค์ประกอบของEโดยใช้ซิมได้อย่างไร(อย่างมีประสิทธิภาพ)

ตัวอย่างเช่นk -means ต้องการk ที่ให้มา, Canopy Clustering ต้องการค่าสองค่า ถ้าเราไม่ต้องการพารามิเตอร์ที่กำหนดไว้ล่วงหน้า

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


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

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

2
ฉันถามคำถามด้วยเหตุผลที่เฉพาะเจาะจง: หากคุณสามารถใช้ k-Means ได้ แต่ปัญหาเดียวคือการค้นหา "k" เริ่มต้นคุณสามารถพิจารณาen.wikipedia.org/wiki/Self-organizing_mapแทน มันมีคุณสมบัติที่ดีบางอย่างและโดยทั่วไปจะทำหน้าที่ "คล้ายกัน" กับ k-Means แต่ไม่ต้องการตั้งค่า "k" เริ่มต้น มันอาจไม่ใช่โซลูชันนอกกรอบเนื่องจากมีพารามิเตอร์การปรับแต่งเพิ่มเติม (และการฝึกอบรมอาจมีค่าใช้จ่ายในการคำนวณ) แต่ก็คุ้มค่าที่จะดู
Marco13

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

4
เพียงแค่คิดว่า: ถ้าคะแนนความคล้ายคลึงกันของคุณจะปกติไป11-sim(ei, ej) = Distanceกว่า ด้วยการวัดระยะทางคุณสามารถใช้ตัวอย่างการจัดกลุ่มลำดับชั้น การลงมาจากรูทคุณจะเห็นว่ากลุ่มของกลุ่มข้อมูลระดับใดที่เหมาะสมสำหรับปัญหาเฉพาะของคุณ
Olexandr Isayev

คำตอบ:


8
  1. ฉันคิดว่าอัลกอริทึมการจัดกลุ่มจำนวนมากที่ปกติใช้เมตริกไม่ได้ขึ้นอยู่กับคุณสมบัติของตัวชี้วัด (นอกเหนือจาก commutativity แต่ฉันคิดว่าคุณมีที่นี่) ตัวอย่างเช่น DBSCAN ใช้ epsilon-Neighborhood รอบจุด ไม่มีสิ่งใดในนั้นที่บอกว่าความไม่เท่าเทียมกันของสามเหลี่ยมเป็นเรื่องสำคัญ ดังนั้นคุณอาจใช้ DBSCAN แม้ว่าคุณอาจต้องทำดัชนีอวกาศที่ไม่เป็นมาตรฐานเพื่อทำการค้นหาที่มีประสิทธิภาพในกรณีของคุณ เวอร์ชัน epsilon-Neighborhood ของคุณน่าจะเป็น sim> 1 / epsilon แทนที่จะเป็นแบบอื่น ๆ เรื่องเดียวกันกับ k-mean และอัลกอริธึมที่เกี่ยวข้อง

  2. คุณสามารถสร้างตัวชี้วัดจากความคล้ายคลึงกันของคุณได้หรือไม่? ความเป็นไปได้หนึ่งอย่าง: dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) สำหรับ k ทั้งหมด ... อีกวิธีหนึ่งคุณสามารถให้ขอบเขตบนเช่น sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, สำหรับ k ทั้งหมดและค่าคงที่บวก d? ค่าซิมขนาดใหญ่นั้นหมายถึงการอยู่ใกล้กันมากขึ้น: 1 / sim คล้ายกันหรือไม่? ประมาณ 1 / (ค่าคงที่ + ซิม)? แล้ว min (1 / sim (ei, ek) + 1 / sim (ek, ej)) สำหรับ k ทั้งหมด? (ที่ผ่านมามีการรับประกันว่าจะเป็นตัวชี้วัด btw)

  3. การสร้างทางเลือกของตัวชี้วัดคือทำการฝัง ในขั้นตอนแรกคุณสามารถลองแมปคะแนนของคุณกับ ei -> xi ซึ่ง xi ลดผลรวม (abs (sim (ei, ej, ej) - f (dist (xi, xj))) สำหรับฟังก์ชัน f และเมตริกที่เหมาะสม dist. ฟังก์ชั่น f แปลงระยะทางในการฝังไปเป็นค่าที่เหมือนกันคุณต้องทดลองสักหน่อย แต่ 1 / dist หรือ exp ^ -dist เป็นจุดเริ่มต้นที่ดีและคุณต้องทำการทดลองที่ดีที่สุดด้วย มิติสำหรับ xi จากตรงนั้นคุณสามารถใช้การจัดกลุ่มแบบดั้งเดิมบน xi แนวคิดที่นี่คือคุณสามารถแปลงระยะทางของคุณในการฝังเป็นค่าความคล้ายคลึงกันได้

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


7

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

โดยส่วนตัวอัลกอริธึมการทำคลัสเตอร์แบบ go-to cluster ของฉันคือ OpenOrd สำหรับการจัดกลุ่มผู้ชนะและกลุ่ม FLAME สำหรับการจัดกลุ่มแบบคลุมเครือ ทั้งสองวิธีไม่สนใจว่าตัวชี้วัดที่ใช้มีความคล้ายคลึงกันหรือระยะทางหรือไม่ (โดยเฉพาะอย่างยิ่ง FLAME เกือบเหมือนกันในทั้งสองสิ่งปลูกสร้าง) การใช้งาน OpenOrd ใน Gephi นั้นO(nlogn)เป็นที่รู้กันว่าสามารถปรับขนาดได้มากกว่าอัลกอริทึมการจัดกลุ่มอื่น ๆ ที่มีอยู่ในแพ็คเกจ Gephi

ในทางกลับกัน FLAME นั้นยอดเยี่ยมหากคุณกำลังมองหาวิธีการจัดกลุ่มแบบคลุมเครือ ในขณะที่ความซับซ้อนของ FLAME นั้นยากกว่าการตรวจสอบเนื่องจากเป็นกระบวนการที่ซ้ำซ้อน แต่ก็มีการแสดงให้เห็นว่ามีกำลังสองย่อยและคล้ายกันในการวิ่งด้วยความเร็วถึง knn


4

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


4

DBSCAN (ดูเพิ่มเติมที่: DBSCAN ทั่วไป) ไม่จำเป็นต้องมีระยะทาง ทั้งหมดจะต้องเป็นผู้ตัดสินใจไบนารี โดยทั่วไปเราจะใช้ "distance <epsilon" แต่ไม่มีอะไรบอกว่าคุณไม่สามารถใช้ "Similarity> epsilon" แทนได้ ไม่จำเป็นต้องใช้ความไม่เท่าเทียมกันของสามเหลี่ยม

การเผยแพร่ความสัมพันธ์ตามชื่อบอกว่าใช้ความคล้ายคลึงกัน

การจัดกลุ่มตามลำดับชั้นยกเว้นการเชื่อมโยงวอร์ดอาจไม่ได้สันนิษฐาน ในการใช้งานหลายอย่างคุณสามารถใช้ระยะทางลบเมื่อคุณมีความคล้ายคลึงกันและมันจะทำงานได้ดี เพราะสิ่งที่ต้องการคือ min, max, และ <

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

PAM (K-medoids) ควรใช้งานได้ กำหนดแต่ละออบเจกต์ให้กับ medoid ที่คล้ายกันมากที่สุดจากนั้นเลือกวัตถุที่มีความคล้ายคลึงเฉลี่ยสูงสุดเป็น medoid ใหม่ ... ไม่จำเป็นต้องมีความไม่เท่าเทียมกันของรูปสามเหลี่ยม

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

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