Eu tenho uma matriz semi-pequena de recursos binários da dimensão 250k x 100. Cada linha é um usuário e as colunas são "tags" binárias de algum comportamento do usuário, por exemplo, "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
Gostaria de ajustar os usuários em 5 a 10 clusters e analisar os carregamentos para ver se consigo interpretar grupos de comportamento do usuário. Parece haver algumas abordagens para ajustar clusters em dados binários - qual achamos que pode ser a melhor estratégia para esses dados?
PCA
Criando uma matriz de similaridade Jaccard , ajustando um cluster hierárquico e depois usando os "nós" superiores.
K-medianas
K-medoids
Proximus ?
Agnes
Até agora, tive algum sucesso com o uso de cluster hierárquico, mas não tenho certeza se é o melhor caminho a seguir.
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)