Approches spatiales géodésique latitude longitude de clustering dans R avec géodésique ou grand cercle distances
Je voudrais appliquer un peu de base des techniques de regroupement de certains latitude et longitude coordonnées. Quelque chose le long des lignes de clustering (ou de certains d'apprentissage non supervisé) les coordonnées dans des groupes déterminés, soit par leur grand cercle de distance ou de leur géodésique distance. REMARQUE: ce pourrait être une mauvaise approche, veuillez en informer.
Idéalement, je voudrais aborder ce dans R
.
J'ai fait quelques recherches, mais j'ai peut-être raté une solide approche? Je suis venu à travers les paquets: flexclust
et pam
-- cependant, je n'ai pas trouver un clair exemple(s) concernant le suivant:
- Définir ma propre fonction de distance.
- Ne soit
flexclut
(viakcca
oucclust
) oupam
prendre en compte aléatoire redémarre? - Cerise sur le gâteau = personne ne sait d'approches/packages qui permettent de spécifier le nombre minimum d'éléments dans chaque cluster?
OriginalL'auteur JasonAizkalns | 2014-01-13
Vous devez vous connecter pour publier un commentaire.
Concernant votre première question: Puisque les données sont long/lat, une approche consiste à utiliser
earth.dist(...)
dans le paquetfossil
(calcule grand cercle dist):Une autre approche utilise
distHaversine(...)
dans legeosphere
package:L'avantage ici est que vous pouvez utiliser l'une de l'autre distance algorithmes
geosphere
, ou vous pouvez définir votre propre fonction de distance et utiliser à la place dedistHaversine(...)
. Puis, appliquez de la base de R les techniques de regroupement (par exemple, kmeans, hclust):Enfin, un exemple réel:
La ville données est de GeoLite. Aux Etats-unis shapefile est à partir de la Bureau De Recensement.
Modifier en réponse à @Anony-Mousse commentaire:
Il peut sembler étrange que "LA" est divisé entre les deux groupes, cependant, l'expansion de la carte montre que, pour cette sélection aléatoire des villes, il y a un écart entre le cluster 3 cluster et 4. Groupe 4 est essentiellement de Santa Monica et de Burbank; groupe 3 est Pasadena, dans le Sud de los angeles, Long Beach, et tout le sud de l'.
De clustering K-means (4 groupes) ne gardez la zone autour de los angeles/Santa Monica/Burbank/Long Beach dans un cluster (voir ci-dessous). Cela vient à travers les différents algorithmes utilisés par
kmeans(...)
ethclust(...)
.Il est intéressant de noter que ces méthodes exigent que tous les points doivent aller dans un cluster. Si vous il suffit de demander les points qui sont proches les uns, et de permettre que certaines villes ne pas aller dans un cluster, vous obtenez des résultats très différents.
ne serait-ce pas causer un problème si vous êtes en cours d'exécution sur une taille de données > 2 millions de dollars enregistrements
OriginalL'auteur jlhoward
J'ai parfois cluster de données spatiales avec ELKI.
Il n'est pas R (je n'aime pas les R, et l'a trouvé pour être vraiment lent dans de nombreuses situations. En fait, quelque chose au-delà de la simple matrice de multiplications et d'appels simples en C ou Fortran code est lent.)
De toute façon, ELKI a prise en charge de distances géodésiques, et de même indice de l'accélération de ces distances (à la fois via le M-arbre et le R*-tree; en vrac chargés R*-arbres fonctionnera le mieux pour moi, et les rendements d'une importante accélération); et de nombreux algorithmes de clustering comme DBSCAN et OPTIQUES peuvent être utilisés avec ces fonctions de distance.
Voici un exemple de ce que j'ai obtenu avec ELKI de clustering: https://stackoverflow.com/a/14702758/1060350
Je n'ai pas garder le code. Pas sûr que j'ai utilisé Python pour le fichier KML de sortie, ou si j'ai mis en place un ELKI module de sortie.
OriginalL'auteur Anony-Mousse