ฉันมีเมทริกซ์กึ่งกึ่งกลางของคุณสมบัติไบนารีของมิติ 250k x 100 แต่ละแถวเป็นผู้ใช้และคอลัมน์เป็น "แท็ก" แบบไบนารีของพฤติกรรมผู้ใช้บางอย่างเช่น "Likes_cats"
user 1 2 3 4 5 ...
-------------------------
A 1 0 1 0 1
B 0 1 0 1 0
C 1 0 0 1 0
ฉันต้องการให้ผู้ใช้พอดีกับ 5-10 คลัสเตอร์และวิเคราะห์การโหลดเพื่อดูว่าฉันสามารถตีความกลุ่มพฤติกรรมของผู้ใช้ได้หรือไม่ ดูเหมือนจะมีวิธีการค่อนข้างน้อยในการปรับคลัสเตอร์ให้เหมาะสมกับข้อมูลไบนารี - เราคิดว่าอะไรอาจเป็นกลยุทธ์ที่ดีที่สุดสำหรับข้อมูลนี้
PCA
การสร้างเมทริกซ์ความคล้ายคลึงกันของ Jaccardติดตั้งคลัสเตอร์แบบลำดับขั้นจากนั้นใช้ "โหนด" ด้านบน
K-มีเดีย
K-medoids
แอกเนส
จนถึงตอนนี้ฉันประสบความสำเร็จในการใช้การจัดกลุ่มแบบลำดับชั้น แต่ฉันไม่แน่ใจว่าเป็นวิธีที่ดีที่สุดที่จะไป ..
tags = read.csv("~/tags.csv")
d = dist(tags, method = "binary")
hc = hclust(d, method="ward")
plot(hc)
cluster.means = aggregate(tags,by=list(cutree(hc, k = 6)), mean)