Tengo una matriz semi-pequeña de características binarias de dimensión 250k x 100. Cada fila es un usuario y las columnas son "etiquetas" binarias de algún comportamiento del usuario, por ejemplo, "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
Me gustaría encajar a los usuarios en grupos de 5-10 y analizar las cargas para ver si puedo interpretar grupos de comportamiento del usuario. Parece haber bastantes enfoques para ajustar clusters en datos binarios: ¿cuál creemos que podría ser la mejor estrategia para estos datos?
PCA
Hacer una matriz de similitud Jaccard , ajustar un grupo jerárquico y luego usar los "nodos" superiores.
K-medianas
K-medoides
Proximus ?
Inés
Hasta ahora he tenido cierto éxito con el uso de la agrupación jerárquica, pero realmente no estoy seguro de que sea la mejor manera de hacerlo ...
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)