R中的地理数据聚类和绘图

时间:2015-12-29 02:49:36

标签: r geolocation cluster-analysis

我正在处理具有lat和long坐标的dataframe。我想根据它们在R中的位置接近度来聚类这些坐标,然后将它绘制在某个地图上。 我可以用传单包绘制地图上的点,这给了我很好的地图布局和纬度和长坐标。只是不知道如何将这些点聚类在3个集群中。 k-means聚类是否适合这类问题?或者我是否必须应用一些距离度量,然后使用聚类算法。我对有关地理数据聚类的在线文献感到困惑。 这是我在R

中所做的
map <- leaflet() %>%
     addTiles() %>%  # Add default OpenStreetMap map tiles
     addMarkers(lng=df_final$order_long, lat=df_final$order_lat)

map

请帮忙。

2 个答案:

答案 0 :(得分:0)

您能否帮助澄清您的问题:您是否已经知道要对数据进行聚类的lon / lat坐标,或者您是否正在尝试根据数据确定理想的质心?

如果您知道每个质心的坐标,那么您可以通过kmeans算法运行数据,最大迭代次数为1。以下是这样的:

set.seed(1)
centroids <- data.frame(lat=1:3, lon=4:6) # Input the coordinates for your centroids here
locations <- data.frame(lat=runif(50,1,3), lon=runif(50,4,6))
kmeans(locations, centroids, iter.max=1) # Set your initial centroids and then iter once

如果您不知道坐标并希望kmeans为您找到它们,那么只需增加iter.max或将其保留为默认值(10)。

答案 1 :(得分:0)

此问题已在此处多次询问,请使用搜索。

k-means对于此类数据来说是一个糟糕的选择:

  1. 你怎么找到k?
  2. k-means使用平方欧几里德但你想要一个球面地理距离
  3. k-means对异常值敏感
  4. 如果你谷歌一点点,你会发现为什么这不好用的例子。相反,请看一下OPTICS。