7
votes

Trouver le centre d'un cluster

J'ai le problème suivant - fait abstrait pour faire ressortir les problèmes clés.

J'ai 10 points chacun à une certaine distance de l'autre. Je veux

  1. Être capable de trouver le centre du cluster, c'est-à-dire le point pour lequel la distance par paire de chaque autre point est minimisée,
    Soit p (j) ~ p (k) représenter la distance paire des points J et K p (i) est le point central du cluster iff p (i) s.t. Min [somme (p (j) ~ p (k))] Pour tous 0
  2. Déterminez comment scinder le cluster en deux grappes une fois que le nombre de points de données dans le cluster passe au-dessus du seuil T.

    Ce n'est pas un espace euclidien. Mais les distances peuvent être résumées comme suit - p (i) est le point I: xxx

    Comment calculerais-je quel est le point central de ce groupe? < / p>


5 commentaires

S'il vous plaît définir "centre du cluster"


@ Notifle - fait ... Avez-vous des idées


L'application concerne les concepts de clustering - mon application est un magasin de données sémantiques - les points représentent des objets abstraits. Je veux faire des objets en grappes pour pouvoir déterminer les "concepts"


Voulez-vous dire: choisissez I qui minimise [somme (p (i) ~ p (j)] pour 0


@JIM - En mots, nous voulons minimiser les distances paires pour toutes les paires de points d'une grappe. Le point qui donne au minimum est le point central.


4 Réponses :


1
votes

a)

  • Trouvez des valeurs médianes ou moyennes de toutes distances. = avgela
  • Pour chaque P, trouvez la distance moyenne à d'autres machines. = avgp (i)
  • Choisissez le plus proche en tant que centre. AVGALL ~ = AVGP (I)

    b) aucune idée pour l'instant ..

    Peut-être pour chaque P, trouvez la machine plus proche.

    Par cette logique Faites un graphique.

    que d'une manière ou d'une autre (je ne sais pas encore) diviser le graphique


0 commentaires

8
votes

Autant que je sache, cela ressemble à K signifie regroupement et ce que vous recherchez est généralement appelé "Médoïds".

voir ici: http://fr.wikipedia.org/wiki/medoides ou Ici: http://fr.wikipedia.org/wiki/k-metidoides < / p>


2 commentaires

UPVOTED: Cela ressemble en effet à la voie à suivre pour des métriques non euclidiennes. Mais cela nécessite toujours au moins que l'inégalité du triangle tient; J'avoue que je ne suis pas assez patient pour vérifier que pour l'exemple d'Ankur.


@ Jim, l'inégalité du triangle tient dans mon "espace métrique", alors cela devrait fonctionner.



1
votes

Qu'est-ce que vous essayez de faire, ou au moins (B) appartient à l'analyse de la grappe. Une branche de mathématiques / statistiques / économétrie où les données (par exemple des points dans l'espace N-dimensionnel) sont divisées entre groupes ou clusters. Comment faire ce n'est pas une question triviale, il y a beaucoup de manières possibles.

En savoir plus à L'article Wikipedia sur l'analyse du cluster .


0 commentaires

4
votes

Je suis peut-être sur le point d'avoir ce frisson qui vient juste avant d'afficher une stupidité totale. Mais cela ne cédit-il pas facilement à la force brute? En python: xxx


1 commentaires

Bonjour Bill, je suis arrivé à une conclusion similaire. Une fois votre cluster et que vous souhaitez choisir le centre d'un cluster, c'est à peu près le moyen de le faire. Ce que je fais, c'est ceci: je commence par un seul cluster car je commence par 1 point de données, comme étant davantage ajouté et mon groupe devient supérieur à un seuil T, je le divisions. Je choisis ensuite les deux principaux points que des centres pour les nouvelles clusters. Chaque point est ensuite attribué à l'un des deux points en fonction duquel est plus proche. Ensuite, le centre actuel de chaque cluster est calculé.