J'ai une base de données qui contient des paires Lat / Long pour identifier l'emplacement des points d'intérêt. Je voudrais regrouper les points d'intérêt en groupes de 10. Le groupe doit être géographiquement local et contenir exactement 10 points. Chaque groupe doit avoir une superficie minimale.
J'ai examiné diverses implémentations dans R mais aucune d'entre elles (que je vois) ne vous permet de spécifier une taille de cluster définie.
J'ai déjà demandé Grouper les points de la carte en tailles de cluster fixes? mais je ne pense pas avoir été assez précis dans ma question pour obtenir une bonne réponse.
Géographiquement local - je pense que je veux dire que les groupes ne devraient pas se chevaucher de manière significative. Dans mon application (affectation de personnes à des groupes à des fins de surveillance), il serait idéal que chaque groupe soit aussi petit que possible dans la zone physique.
Zone minimale - encore une fois, en essayant de garder la zone de groupe au minimum. Je suppose que cela pourrait être quantifié en maintenant la zone de chaque groupe en dessous d'un seuil spécifié (pour éviter des dizaines de petits groupes et un grand).
la source
Réponses:
Je pense que vous cherchez peut-être un outil k-voisin le plus proche. Ce type d'outil peut être utilisé pour identifier les 10 voisins les plus proches de tous les points de votre jeu de données. Il semble y avoir quelques options différentes pour cela (certaines utilisant des algorithmes différents ou ayant des fonctionnalités légèrement différentes), et je ne sais pas quelle serait la meilleure option. Mais voici quelques liens:
http://stat.ethz.ch/R-manual/R-patched/library/class/html/knn.html http://en.wikibooks.org/wiki/Data_Mining_Algorithms_In_R/Classification/kNN
Vous devrez peut-être combiner les résultats avec un algorithme de clustering ou un outil d'ensemble de cluster pour identifier les clusters de points qui ont des ensembles de voisins similaires pour obtenir des classifications de points où il y a peu ou pas de chevauchement. Vous devrez peut-être faire un peu de manipulation manuelle de la sortie, mais cela devrait vous permettre d'automatiser une grande partie du travail
Quelques liens: http://jmlr.csail.mit.edu/papers/volume3/strehl02a/strehl02a.pdf http://cran.r-project.org/web/packages/clue/vignettes/clue.pdf
Vous pouvez également trouver un outil de clustering k-means qui fera tout cela en une seule étape et appliquera les 10 points dans une règle de cluster (divisez simplement le nombre total de points par 10 et sélectionnez-le comme nombre de clusters souhaités pour l'outil).
la source