Suite

Création de clusters de données ponctuelles

Création de clusters de données ponctuelles


J'ai une carte des magasins pour un détaillant. J'essaie de former des clusters (de ces magasins) de telle sorte que chaque membre d'un cluster soit au plus à 5 km de tout autre membre et que tout non-membre soit à au moins 10 km de tout membre. Je voudrais également créer un champ dans l'ensemble de données de points indiquant à quel cluster appartient un magasin spécifique. Quelle serait la façon la plus simple de le faire? Merci


Comme le dit @whuber, je pense que vous allez devoir assouplir vos critères, car cela ne fonctionnera pas tel quel. Un algorithme possible serait :

  • pour chaque point, calculez la distance jusqu'à l'autre point le plus proche - dans Mapinfo, cela peut être fait à l'aide de l'outil Calculateur de distance, ou dans MapBasic
  • ranger ces distances dans l'ordre décroissant
  • pour la plus petite distance la plus proche, sélectionnez tous les points situés à moins de 5 km (ou quel que soit le paramètre que vous choisissez) de ce point -
  • dessinez une enveloppe convexe autour de ces points (une forme qui englobe tous les points)
  • supprimer ces points de la liste et continuer dans la liste descendante des distances les plus proches, en ne sélectionnant que les points qui n'ont pas déjà été transformés en une enveloppe convexe

Il existe des routines automatisées pour effectuer ce type d'analyse dans des packages comme ArcGIS ou R, mais le temps de traitement sera important si vous avez un grand nombre de points. Vous devrez probablement expérimenter pour obtenir les meilleurs résultats, je ne pense pas qu'il soit possible d'établir des règles strictes sur les clusters comme vous l'avez fait ci-dessus.