J'ai une matrice semi-petite de caractéristiques binaires de dimension 250k x 100. Chaque ligne est un utilisateur et les colonnes sont des "balises" binaires d'un certain comportement d'utilisateur, par exemple "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
Je voudrais adapter les utilisateurs en 5 à 10 clusters et analyser les chargements pour voir si je peux interpréter des groupes de comportements d'utilisateurs. Il semble y avoir quelques approches pour ajuster les clusters sur des données binaires - quelle est, selon nous, la meilleure stratégie pour ces données?
PCA
Création d'une matrice de similarité Jaccard , ajustement d'un cluster hiérarchique, puis utilisation des «nœuds» supérieurs.
K-médianes
K-medoids
Proximus ?
Agnès
Jusqu'à présent, j'ai réussi à utiliser le clustering hiérarchique, mais je ne suis vraiment pas sûr que ce soit la meilleure solution.
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)
la source
Réponses:
L'analyse des classes latentes est une approche possible.
Prenez la distribution de probabilité suivante où A, B et C peuvent prendre des valeurs de 1 ou 0.
Si ceux-ci étaient indépendants les uns des autres, alors nous nous attendrions à voir:
Une fois cette possibilité éliminée, nous pourrions émettre l'hypothèse que toute dépendance observée est due à des regroupements de valeurs dans des sous-groupes autrement non observés. Pour tester cette idée, nous pouvons estimer le modèle suivant:
Où est une variable catégorielle latente avec niveaux. Vous spécifiez et les paramètres du modèle (probabilités marginales d'appartenance à une classe et probabilités spécifiques à une classe pour chaque variable) peuvent être estimés via la maximisation des attentes.X n n
En pratique, vous pouvez estimer plusieurs modèles, avec , et "choisir" le meilleur modèle basé sur la théorie, les indices d'ajustement basés sur la vraisemblance et la qualité de la classification (qui peut être évaluée en calculant les probabilités postérieures d'appartenance à la classe pour les observations).5 ≤ n ≤ 10
Cependant, essayer d'identifier des modèles significatifs dans 100 variables avec 5 à 10 groupes nécessitera probablement de réduire cette liste avant d'estimer le modèle, qui est un sujet assez délicat en soi ( REF ).
la source
En fait, l' exploration fréquente d'éléments peut être un meilleur choix que le clustering sur de telles données.
L'ensemble d'algorithmes vectoriels habituels n'a pas beaucoup de sens. Par exemple, K-means produira des moyennes qui ne sont plus binaires.
la source