จัดกลุ่มสเปกตรัม

Sep 01 2020

ฉันมีตารางแพนด้าซึ่งมีข้อมูลเกี่ยวกับการสังเกตที่แตกต่างกันแต่ละอันวัดด้วยความยาวคลื่นที่แตกต่างกัน การสังเกตเหล่านี้มีความแตกต่างกันในการรักษาที่ได้รับ ตารางมีลักษณะดังนี้:

>>>name  treatment 410.1 423.2 445.6 477.1 485.2 ....
0 A1       0       0.01  0.02  0.04  0.05   0.87
1 A2       1       0.04  0.05  0.05  0.06  0.04
2 A3       2       0.03  0.02  0.03 0.01   0.03
3 A4       0       0.02  0.02  0.04  0.05  0.91
4 A5       1       0.05  0.06  0.04  0.05  0.02
...

ฉันต้องการจำแนกการสังเกตที่แตกต่างกันตามสเปกตรัม (คอลัมน์ตัวเลข)
ฉันได้พยายามเรียกใช้ PCA และวาดภาพตามการรักษาที่ข้อสังเกตได้รับและเปรียบเทียบกับผลลัพธ์ของการจำแนกประเภทเช่น k-mean และ Spectral clustering แต่ฉันไม่แน่ใจว่าฉันเลือกวิธีการที่ถูกต้องเพราะดูเหมือนว่า ตลอดเวลาเช่นคลัสเตอร์นั้นมากเกินไปเช่นระยะห่างแบบยุคลิดและฉันไม่แน่ใจว่าพวกเขาคำนึงถึงสเปกตรัม (ฉันใช้คอลัมน์ตัวเลขทั้งหมดสำหรับการทำนาย)

นี่เป็นตัวอย่างการเปรียบเทียบระหว่าง PCA + Colors เทียบกับ Spectral cllasification:
PCA:

การจำแนกประเภท (จุดที่อยู่ตาม PCA1 PCA2 แต่สีเป็นไปตามการจำแนกประเภท:

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

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

คำตอบ

1 Tinu Sep 02 2020 at 04:14

สิ่งนี้ดูเหมือนเป็นงานการจัดประเภทภายใต้การดูแลปกติ

คุณได้ลองใช้วิธีมาตรฐานอื่น ๆ เช่น Support Vector Machines, RandomForests, Gradient Boosting, kNN, Neural Networks เป็นต้นหรือไม่หรือมีเหตุผลเฉพาะว่าทำไมคุณถึงลองใช้วิธีการจัดกลุ่มเท่านั้น

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