Supposons que nous avons un ensemble d'éléments E et une similitude ( non loin ) fonction SIM (ei, ej) entre deux éléments ei, ej ∈ E .
Comment pourrions-nous (efficacement) regrouper les éléments de E , en utilisant sim ?
k -moyen, par exemple, nécessite un k donné , Canopy Clustering nécessite deux valeurs de seuil. Et si nous ne voulons pas de tels paramètres prédéfinis?
Notez que sim n'est pas nécessairement une métrique (c'est-à-dire que l'inégalité du triangle peut ou peut ne pas tenir). De plus, peu importe si les clusters sont disjoints (partitions de E ).
clustering
algorithms
similarity
vefthym
la source
la source
1-sim(ei, ej) = Distance
. Avec la métrique de distance, vous pouvez par exemple appliquer un clustering hiérarchique. En descendant de la racine, vous verrez à quel niveau de grappes de granularité aurait un sens pour votre problème particulier.Réponses:
Je pense qu'un certain nombre d'algorithmes de clustering qui utilisent normalement une métrique, ne reposent pas réellement sur les propriétés métriques (autres que la commutativité, mais je pense que vous auriez cela ici). Par exemple, DBSCAN utilise des voisinages epsilon autour d'un point; il n'y a rien là-dedans qui indique spécifiquement que l'inégalité du triangle est importante. Vous pouvez donc probablement utiliser DBSCAN, même si vous devrez peut-être faire une sorte d'index spatial non standard pour effectuer des recherches efficaces dans votre cas. Votre version d'Epsilon-quartier sera probablement sim> 1 / epsilon plutôt que l'inverse. Même histoire avec k-means et les algorithmes associés.
Pouvez-vous construire une métrique à partir de votre similitude? Une possibilité: dist (ei, ej) = min (sim (ei, ek) + sim (ek, ej)) pour tous les k ... Alternativement, pouvez-vous fournir une borne supérieure telle que sim (ei, ej) <sim (ei, ek) + sim (ek, ej) + d, pour tout k et une constante positive d? Intuitivement, de grandes valeurs de simulation signifient un rapprochement: la simulation 1 / sim est-elle de type métrique? Et 1 / (sim + constant)? Qu'en est-il de min (1 / sim (ei, ek) + 1 / sim (ek, ej)) pour tous les k? (ce dernier est garanti être une métrique, btw)
Une construction alternative d'une métrique consiste à effectuer une incorporation. Dans un premier temps, vous pouvez essayer de mapper vos points ei -> xi, de telle sorte que xi minimise la somme (abs (sim (ei, ej) - f (dist (xi, xj))), pour une fonction appropriée f et métrique dist. La fonction f convertit la distance dans l'incorporation en une valeur similaire à la similitude; vous devrez expérimenter un peu, mais 1 / dist ou exp ^ -dist sont de bons points de départ. Vous devrez également expérimenter sur le meilleur dimension pour xi. À partir de là, vous pouvez utiliser le clustering conventionnel sur xi. L'idée ici est que vous pouvez presque (dans le meilleur des cas) convertir vos distances dans l'incorporation en valeurs de similarité, afin qu'elles se regroupent correctement.
Sur l'utilisation de paramètres prédéfinis, tous les algorithmes ont un certain réglage. DBSCAN peut trouver le nombre de clusters, mais vous devez quand même lui donner quelques paramètres. En général, le réglage nécessite plusieurs exécutions de l'algorithme avec des valeurs différentes pour les paramètres réglables, ainsi qu'une fonction qui évalue la qualité du clustering (soit calculée séparément, fournie par l'algorithme de clustering lui-même, soit simplement oculaire :) Si le caractère de vos données ne changent pas, vous pouvez régler une fois puis utiliser ces paramètres fixes; s'il change, vous devez régler pour chaque exécution. Vous pouvez le découvrir en ajustant pour chaque exécution, puis en comparant la façon dont les paramètres d'une exécution fonctionnent sur une autre, par rapport aux paramètres spécialement ajustés pour cela.
la source
Alex a fait un certain nombre de bons points, bien que je devrais peut-être revenir un peu sur son implication selon laquelle DBSCAN est le meilleur algorithme de clustering à utiliser ici. Selon votre implémentation, et si vous utilisez ou non des indices accélérés (de nombreuses implémentations ne le font pas), votre complexité en temps et en espace sera
O(n2)
, ce qui est loin d'être idéal.Personnellement, mes algorithmes de clustering go-to sont OpenOrd pour le clustering gagnant-prend-tout et FLAME pour le clustering flou. Les deux méthodes sont indifférentes à savoir si les métriques utilisées sont la similitude ou la distance (FLAME en particulier est presque identique dans les deux constructions). L'implémentation d'OpenOrd dans Gephi est
O(nlogn)
et est connue pour être plus évolutive que n'importe lequel des autres algorithmes de clustering présents dans le package Gephi.FLAME, d'autre part, est idéal si vous recherchez une méthode de clustering floue. Bien que la complexité de FLAME soit un peu plus difficile à déterminer car il s'agit d'un processus itératif, il s'est avéré être sub-quadratique et similaire en termes de vitesse d'exécution à knn.
la source
DBSCAN (voir aussi: DBSCAN généralisé) ne nécessite pas de distance. Tout ce dont il a besoin, c'est d'une décision binaire . Généralement, on utiliserait "distance <epsilon" mais rien ne dit que vous ne pouvez pas utiliser "similarité> epsilon" à la place. Les inégalités triangulaires, etc. ne sont pas nécessaires.
La propagation d'affinité, comme son nom l'indique, utilise des similitudes.
Le regroupement hiérarchique, à l'exception peut-être de la liaison Ward, ne fait aucune hypothèse. Dans de nombreuses implémentations, vous pouvez simplement utiliser des distances négatives lorsque vous avez des similitudes, et cela fonctionnera très bien. Parce que tout ce qui est nécessaire est min, max et <.
Le k-means du noyau pourrait fonctionner SI votre similitude est une bonne fonction du noyau. Considérez-le comme le calcul de k-moyennes dans un espace vectoriel différent, où la distance euclidienne correspond à votre fonction de similitude. Mais alors vous devez savoir k.
PAM (K-medoids) devrait fonctionner. Attribuez chaque objet au médoïde le plus similaire, puis choisissez l'objet ayant la similitude moyenne la plus élevée comme nouveau médoïde ... aucune inégalité de triangle nécessaire.
... et probablement beaucoup plus. Il existe littéralement des centaines d'algorithmes de clustering. La plupart devraient fonctionner à mon humble avis. Très peu semblent exiger des propriétés métriques. K-means a probablement les exigences les plus fortes: il minimise la variance (pas la distance ou la similitude), et vous devez être capable de calculer les moyennes.
la source
L'analyse des données topologiques est une méthode explicitement conçue pour le paramètre que vous décrivez. Plutôt qu'une métrique de distance globale, elle ne repose que sur une métrique locale de proximité ou de voisinage. Voir: Topologie et données et Extraire des informations de la forme de données complexes à l'aide de la topologie . Vous pouvez trouver des ressources supplémentaires sur le site Web d'Ayasdi.
la source