J'ai une grande matrice (650K lignes * 62 colonnes) de données binaires (0-1 entrées uniquement). La matrice est généralement clairsemée: environ 8% est remplie.
Je voudrais le regrouper en 5 groupes - disons nommés de 1 à 5. J'ai essayé le regroupement hiérarchique et il n'a pas pu gérer la taille. J'ai également utilisé un algorithme de clustering k-means basé sur la distance de hamming, compte tenu des vecteurs de 650 K bits de longueur 62. Je n'ai obtenu de résultats appropriés avec aucun de ces éléments.
Veuillez aider.
clustering
dataset
k-means
binary-data
Illimité26
la source
la source
Réponses:
Vous posez la mauvaise question.
Au lieu de demander "quel algorithme", vous devriez demander "qu'est-ce qu'une catégorie / cluster significatif dans votre application".
Je ne suis pas surpris que les algorithmes ci-dessus n'aient pas fonctionné - ils sont conçus pour des cas d'utilisation très différents. k-means ne fonctionne pas avec d'autres distances arbitraires. Ne l'utilisez pas avec une distance de Hamming. Il y a une raison pour laquelle il est appelé k- signifie , il n'a de sens que lorsque la moyenne arithmétique est significative (ce qui n'est pas le cas pour les données binaires).
Vous voudrez peut-être essayer les modes k à la place, IIRC c'est une variante qui est en fait destinée à être utilisée avec des données catégorielles, et les données binaires sont quelque peu catégorielles (mais la rareté peut toujours vous tuer).
Mais tout d'abord, avez-vous supprimé les doublons pour simplifier vos données et supprimé les colonnes uniques / vides par exemple?
Peut-être qu'APRIORI ou des approches similaires sont également plus significatives pour votre problème.
Quoi qu'il en soit, déterminez d'abord ce dont vous avez besoin, puis quel algorithme peut résoudre ce défi. Travaillez en fonction des données , pas en essayant des algorithmes aléatoires.
la source
Peut-être que je suis un peu en retard dans la réponse, mais cela serait probablement utile pour un organisme à l'avenir.
La théorie de la résonance adaptative est un bon algorithme pour les problèmes de classification binaire. Vérifiez à propos de ART 1. Plus d'informations que vous pouvez voir dans le livre gratuit Neural Network Design au chapitre 19.
Ce réseau combine une excellente idée biologique et une bonne implémentation mathématique. Cet algorithme est également facile à implémenter et, dans ce livre, vous pouvez également trouver des instructions étape par étape sur la façon de construire ce classificateur.
la source
Un algorithme classique pour le clustering de données binaires est le modèle de Bernoulli Mixture. Le modèle peut être ajusté en utilisant des méthodes bayésiennes et peut également être ajusté en utilisant EM (Expectation Maximization). Vous pouvez trouver des exemples de code python partout dans le GitHub tandis que le premier est plus puissant mais aussi plus difficile. J'ai une implémentation C # du modèle sur GitHub (utilise Infer.NET qui a une licence restrictive!).
Le modèle est assez simple. Échantillonnez d'abord le cluster auquel appartient un point de données. Ensuite, échantillonnez indépendamment autant de Bernoullis que vous avez de dimensions dans votre jeu de données. Notez que cela implique l'indépendance conditionnelle des valeurs binaires étant donné le cluster!
Dans le cadre bayésien, les affectations antérieures par rapport au cluster sont une distribution de Dirichlet. C'est l'endroit idéal pour mettre des priorités si vous pensez que certains clusters sont plus grands que d'autres. Pour chaque cluster, vous devez spécifier au préalable, une distribution bêta, pour chaque distribution de Bernoulli. Typiquement, cet a priori est Beta (1,1) ou uniforme. Enfin, n'oubliez pas d'initialiser au hasard les affectations de cluster lorsque des données sont fournies. Cela rompra la symétrie et l'échantillonneur ne restera pas bloqué.
Il existe plusieurs fonctionnalités intéressantes du modèle BMM dans un cadre bayésien:
Clustering en ligne (les données peuvent arriver sous forme de flux)
Le modèle peut être utilisé pour déduire les dimensions manquantes
Le premier est très pratique lorsque l'ensemble de données est très volumineux et ne tient pas dans la RAM d'une machine. Le second peut être utilisé dans toutes sortes de tâches d'imputation de données manquantes, par exemple. imputation de la moitié manquante de l'image binaire MNIST.
la source