ทำความเข้าใจการเปรียบเทียบผลการจัดกลุ่ม


13

ฉันกำลังทดลองกับการจำแนกข้อมูลออกเป็นกลุ่ม ฉันค่อนข้างใหม่สำหรับหัวข้อนี้และพยายามเข้าใจผลลัพธ์ของการวิเคราะห์

ใช้ตัวอย่างจากQuick-R แนะนำให้ใช้หลายRแพ็คเกจ ฉันได้ลองใช้แพ็คเกจสองชุดนี้ ( fpcโดยใช้kmeansฟังก์ชั่นและmclust) แง่มุมหนึ่งของการวิเคราะห์ที่ฉันไม่เข้าใจคือการเปรียบเทียบผลลัพธ์

# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)

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

$n
[1] 521

$cluster.number
[1] 4

$cluster.size
[1] 250 119  78  74

$diameter
[1]  5.278162  9.773658 16.460074  7.328020

$average.distance
[1] 1.632656 2.106422 3.461598 2.622574

$median.distance
[1] 1.562625 1.788113 2.763217 2.463826

$separation
[1] 0.2797048 0.3754188 0.2797048 0.3557264

$average.toother
[1] 3.442575 3.929158 4.068230 4.425910

$separation.matrix
          [,1]      [,2]      [,3]      [,4]
[1,] 0.0000000 0.3754188 0.2797048 0.3557264
[2,] 0.3754188 0.0000000 0.6299734 2.9020383
[3,] 0.2797048 0.6299734 0.0000000 0.6803704
[4,] 0.3557264 2.9020383 0.6803704 0.0000000

$average.between
[1] 3.865142

$average.within
[1] 1.894740

$n.between
[1] 91610

$n.within
[1] 43850

$within.cluster.ss
[1] 1785.935

$clus.avg.silwidths
         1          2          3          4 
0.42072895 0.31672350 0.01810699 0.23728253 

$avg.silwidth
[1] 0.3106403

$g2
NULL

$g3
NULL

$pearsongamma
[1] 0.4869491

$dunn
[1] 0.01699292

$entropy
[1] 1.251134

$wb.ratio
[1] 0.4902123

$ch
[1] 178.9074

$corrected.rand
[1] 0.2046704

$vi
[1] 1.56189

คำถามหลักของฉันที่นี่คือเพื่อให้เข้าใจวิธีตีความผลลัพธ์ของการเปรียบเทียบคลัสเตอร์นี้ดีขึ้น


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

ส่วนหนึ่งของคำถามก่อนหน้า : หากฉันทำคลัสเตอร์ประเภทใดฉันควรปรับขนาดข้อมูลเสมอหรือไม่ ตัวอย่างเช่นฉันใช้ฟังก์ชันdist()บนชุดข้อมูลที่ปรับขนาดของฉันเป็นอินพุตไปยังcluster.stats()ฟังก์ชัน แต่ฉันไม่เข้าใจว่าเกิดอะไรขึ้น ฉันอ่านเกี่ยวกับdist() ที่นี่และระบุว่า:

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


คุณกำลังมองหาคำอธิบายเพิ่มเติมหรือคุณไม่พอใจการตอบสนองของ @ mariana หรือไม่? ฉันเดาว่ามันเกี่ยวข้องกับคำถามแรกของคุณ (อันดับ 2) หากเป็นกรณีนี้คุณควรอัปเดตคำถามของคุณเพื่อให้ผู้คนเข้าใจว่าทำไมคุณถึงตั้งค่าความโปรดปรานในคำถาม
chl

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

คำตอบ:


13

ก่อนอื่นให้ฉันบอกคุณว่าฉันจะไม่อธิบายการวัดทั้งหมดที่นี่อย่างแน่นอน แต่ฉันจะให้แนวคิดเกี่ยวกับวิธีการเปรียบเทียบวิธีการจัดกลุ่มที่ดี (สมมติว่าเรากำลังเปรียบเทียบวิธีการจัดกลุ่ม 2 รายการด้วยหมายเลขเดียวกัน ของกลุ่ม)

  1. ยกตัวอย่างเช่นยิ่งเส้นผ่าศูนย์กลางของคลัสเตอร์ใหญ่เท่าไรการจัดกลุ่มที่แย่ที่สุดเพราะคะแนนที่อยู่ในคลัสเตอร์กระจัดกระจายมากขึ้น
  2. ยิ่งระยะทางเฉลี่ยของการทำคลัสเตอร์แต่ละครั้งยิ่งสูงเท่าไหร่วิธีการจัดกลุ่มที่แย่ที่สุด (สมมติว่าระยะทางเฉลี่ยคือค่าเฉลี่ยของระยะทางจากแต่ละจุดในคลัสเตอร์ถึงศูนย์กลางของคลัสเตอร์)

นี่เป็นสองเมตริกที่ใช้มากที่สุด ตรวจสอบลิงก์เหล่านี้เพื่อทำความเข้าใจว่ามันคืออะไร:

  • ระยะระหว่างกลุ่ม (ยิ่งสูงยิ่งดีขึ้นก็จะเป็นการสรุประยะทางระหว่างเซนทรอยด์ของคลัสเตอร์ที่ต่างกัน)
  • ระยะอินทรา - คลัสเตอร์ (ยิ่งต่ำยิ่งดีก็จะเป็นการสรุประยะห่างระหว่างสมาชิกคลัสเตอร์ถึงศูนย์กลางของคลัสเตอร์)

ที่จะเข้าใจตัวชี้วัดดังกล่าวข้างต้นให้ตรวจสอบนี้

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

ลองทำกับคำถามที่คุณทำ:

  1. เกี่ยวกับการปรับขนาดข้อมูล: ใช่คุณควรปรับขนาดข้อมูลสำหรับการทำคลัสเตอร์เสมอมิฉะนั้นเครื่องชั่งที่แตกต่างกันของขนาดที่แตกต่างกัน (ตัวแปร) จะมีอิทธิพลที่แตกต่างกันในการจัดกลุ่มข้อมูลด้วยค่าของตัวแปรสูง จะเป็นวิธีการทำคลัสเตอร์ในขณะที่พวกเขาทั้งหมดควรมีอิทธิพลแบบเดียวกัน (เว้นแต่ด้วยเหตุผลแปลก ๆ บางอย่างที่คุณไม่ต้องการให้เป็นอย่างนั้น)
  2. ฟังก์ชันระยะทางคำนวณระยะทางทั้งหมดจากจุดหนึ่งไปยังอีกจุดหนึ่ง การวัดระยะทางที่พบมากที่สุดคือ Euclidean ดังนั้นสมมติว่าคุณต้องการวัดระยะทางจากอินสแตนซ์ 1 ถึงอินสแตนซ์ 2 (สมมติว่าคุณมี 2 อินสแตนซ์เท่านั้นเพื่อความเรียบง่าย) นอกจากนี้สมมติว่าแต่ละกรณีมี 3 ค่า(x1, x2, x3)ดังนั้นI1=0.3, 0.2, 0.5และI2=0.3, 0.3, 0.4ดังนั้นระยะทางยุคลิดจาก I1 และ I2 จะเป็น: sqrt((0.3-0.2)^2+(0.2-0.3)^2+(0.5-0.4)^2)=0.17เพราะฉะนั้นเมทริกซ์ระยะทางที่จะมีผลใน:

        i1    i2
    i1  0     0.17
    i2  0.17  0

ขอให้สังเกตว่าเมทริกซ์ระยะทางนั้นมีความสมมาตรอยู่เสมอ

สูตรระยะทางแบบยุคลิดไม่ได้เป็นสูตรเดียวที่มีอยู่ มีระยะทางอื่น ๆ อีกมากมายที่สามารถใช้ในการคำนวณเมทริกซ์นี้ได้ ตรวจสอบตัวอย่างใน Wikipedia Manhattain Distanceและวิธีคำนวณ ในตอนท้ายของหน้า Wikipedia สำหรับEuclidean Distance (ซึ่งคุณสามารถตรวจสอบสูตรได้) คุณสามารถตรวจสอบระยะทางอื่น ๆ ที่มีอยู่


ขอบคุณสำหรับคำตอบที่ครอบคลุมมาก - มีประโยชน์มาก
celenius

ฉันมีความสุขจริง ๆ มันเป็นประโยชน์สำหรับคุณ
mariana soffer

@marianas เสนอลิงค์ไปยังหน้า Stanford ไม่ทำงาน โปรดอัปเดตหรือทำให้สามารถเข้าถึงได้ ขอบคุณ
Herman Toothrot

7

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

ตัวอย่างเช่นสมมติว่า X = Rd และความถูกต้องของ "การสันนิษฐานของคลัสเตอร์" กล่าวคือสองจุด x, x ควรมีเลเบลเดียวกัน t หากมีเส้นทางระหว่างพวกเขาใน X ซึ่งผ่านเฉพาะภูมิภาคที่ค่อนข้างสูง P (x )

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

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

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

นอกจากนี้คุณยังอาจจะสนใจในA ข้อมูลอิงทฤษฎีขั้นตอนวิธีการจัดกลุ่ม


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

คุณกรุณาแบ่งปันรหัส R สำหรับรูปที่แนบมาได้ไหม
Andrej

@ Andrej ฉันเดาว่าเมฆ Gaussian ( x<-rnorm(N);rnorm(N)->y) แบ่งออกเป็น 3 ส่วนโดย r (โดยหนึ่งในนั้นถูกลบออก)

ฉันไม่รู้อัลกอริธึมเชิงปฏิบัติที่เหมาะสมกับการวัดคุณภาพนั้น คุณอาจยังต้องการใช้ K-Means และคณะ แต่ถ้าการวัดข้างต้นแตกหักคุณรู้ว่าข้อมูลที่คุณกำลังดูไม่เหมาะสำหรับอัลกอริทึมนั้น (ยัง!
bayerj

@ Andrej ฉันไม่ได้ใช้ R (มาจาก ML มากกว่าสถิติ :) แต่สิ่งที่ mbq แนะนำดูเหมือนดี
bayerj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.