我正在处理具有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
请帮忙。
答案 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对于此类数据来说是一个糟糕的选择:
如果你谷歌一点点,你会发现为什么这不好用的例子。相反,请看一下OPTICS。