Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python中地理点的聚类_Python_Machine Learning_Cluster Analysis - Fatal编程技术网

Python中地理点的聚类

Python中地理点的聚类,python,machine-learning,cluster-analysis,Python,Machine Learning,Cluster Analysis,我有一组400k的地理点(带纬度和经度),我正试图将其聚类并绘制在地图上。目前,我正在使用Folium软件包的MarkerCluster来可视化点的聚类。但这似乎非常缓慢,代码会无限期地运行 只是想知道是否有其他Python包可以有效地用于此目的 当前代码: import folium from folium import plugins from IPython.display import Image, clear_output, display, HTML data = df[['Sta

我有一组400k的地理点(带纬度和经度),我正试图将其聚类并绘制在地图上。目前,我正在使用Folium软件包的MarkerCluster来可视化点的聚类。但这似乎非常缓慢,代码会无限期地运行

只是想知道是否有其他Python包可以有效地用于此目的

当前代码:

import folium
from folium import plugins
from IPython.display import Image, clear_output, display, HTML

data = df[['StartLat','StartLong']].as_matrix()
avgLat = df['StartLat'].mean()
avgLong = df['StartLong'].mean()

mapa = folium.Map([avgLat, avgLong], zoom_start=6)
marker_cluster = folium.MarkerCluster().add_to(mapa)
latArr = np.array(df.StartLat)
lonArr = np.array(df.StartLong)

for i in range(len(latArr)):
        folium.Marker([latArr[i], lonArr[i]], icon = folium.Icon(color='green',icon='ok-sign')).add_to(marker_cluster)
mapa.save('Clustering.html')

让我试着分两步回答你的问题:

  • 你看到那张照片了吗?他们也有同样的问题,聚集了大量的地理坐标。建议的解决方案使用
    scipy.cluster

  • 然而,就地理位置而言,拉特很长。普通的聚类分析技术可能不太适合。这主要是因为从地球表面采集的点样本往往相互关联()。因此,这些点违反了经典统计学中许多技术所固有的独立性条款。因此,如果您坚持使用Python,我建议您查看包
    clusterPy
    ()。他们有几种常用于空间数据的集群算法的实现。对空间自相关的一些阅读也可能有助于理解某些算法通常需要作为参数的考虑因素(如距离带)


  • 空间自相关是另一回事。你需要测量(比如说温度);然后这些测量值往往与附近的位置相关。如果你有一个规则的测量网格,这尤其适用。。。但如果他只有坐标,像光学或DBS这样的集群就可以很好地工作。点密度的概念确实适用。是的。仅当点代表地面某物的值/测量值时,才应使用空间聚类技术。否则,如果只有表示位置的lat/long值,则正常的聚类技术可以正常工作。