Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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 我有按kmeans算法排序的区域。我希望分区作为区域(如多边形)。怎么做?_Python_Google Maps_Matplotlib_Plot_K Means - Fatal编程技术网

Python 我有按kmeans算法排序的区域。我希望分区作为区域(如多边形)。怎么做?

Python 我有按kmeans算法排序的区域。我希望分区作为区域(如多边形)。怎么做?,python,google-maps,matplotlib,plot,k-means,Python,Google Maps,Matplotlib,Plot,K Means,我想为图中的每个分区(请参考上图)创建一个多边形(图中所示的点)。你能帮我弄清楚怎么做吗 PS:我还绘制了所有这些点的点(GPS坐标)。计算集群中心的Delaunay三角网。其中的对偶是Voronpi细胞,这些细胞与通过k-均值发现的簇完全对应 然而,这些细胞将无限大。在k=2的情况下,得到一个简单的平分线:两点的Delaunay三角剖分只是它们的连接线。然后在两个中心的中点处画一条垂直的线。这将平面分为两个区域,这是簇 在许多情况下,凸包将更容易处理,尽管它没有精确地显示集群分离 对于地理数据

我想为图中的每个分区(请参考上图)创建一个多边形(图中所示的点)。你能帮我弄清楚怎么做吗


PS:我还绘制了所有这些点的点(GPS坐标)。

计算集群中心的Delaunay三角网。其中的对偶是Voronpi细胞,这些细胞与通过k-均值发现的簇完全对应

然而,这些细胞将无限大。在k=2的情况下,得到一个简单的平分线:两点的Delaunay三角剖分只是它们的连接线。然后在两个中心的中点处画一条垂直的线。这将平面分为两个区域,这是簇

在许多情况下,凸包将更容易处理,尽管它没有精确地显示集群分离


对于地理数据,k-means也不是最好的选择:1)它对异常值不可靠,并且经常有一些不应该在集群中的点2)它使用平方误差,而不是距离。平方误差在地理上没有特别直观的意义(走两倍远通常需要两倍的时间,而不是四倍!),当在纬度和经度上使用平方误差时,它会导致偏差,除非你总是靠近赤道,而不是+-180。

我不明白你说的“多边形”是什么意思。您知道如何在多边形内绘制点吗?或者只是为每个区域创建簇?我的意思是将簇中的所有点连接起来,使其看起来像一个多边形。最后会有很多多边形,所以每个多边形都指向每个簇。我想你正在寻找一个凸面外壳,谢谢你的建议。但是如果我想直接在地图上画呢?