相关疑难解决方法(0)

如何对存储在SQL中的纬度和经度位置进行分组

我试图分析英国周期事故的数据,以找到统计黑点.以下是来自其他网站的数据示例.http://www.cycleinjury.co.uk/map

我目前正在使用SQLite来实现~100k存储lat/lon位置.我想将附近的地点组合在一起.此任务称为群集分析.

我想通过忽略孤立的事件来简化数据集,而只是显示在一个小区域内发生多个事故的集群的起源.

我需要克服3个问题.

  1. 性能 - 如何确保快速找到附近的点.我应该使用的SQLite的实现了的R树的例子吗?

  2. 链条 - 如何避免拾取附近的链条?

  3. 密度 - 如何考虑周期人口密度?伦敦的自行车运动员的人口密度远远超过布里斯托尔,因此伦敦似乎有更多的支持者.

我想避免像这样的'链'场景:

在此输入图像描述

相反,我想找到集群:

在此输入图像描述

伦敦截图(我手绘了一些集群)......

在此输入图像描述

布里斯托尔截图 - 密度低得多 - 如果不考虑相对密度,在该区域上运行的相同程序可能找不到任何黑点.

在此输入图像描述

任何指针都会很棒!

sql sqlite cluster-analysis machine-learning data-mining

9
推荐指数
1
解决办法
4946
查看次数

R中的空间聚类(简单示例)

我有这么简单 data.frame

 lat<-c(1,2,3,10,11,12,20,21,22,23)
 lon<-c(5,6,7,30,31,32,50,51,52,53)
 data=data.frame(lat,lon)
Run Code Online (Sandbox Code Playgroud)

想法是基于距离找到空间聚类

首先,我绘制地图(lon,lat):

plot(data$lon,data$lat)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

很明显我有三个基于点位置之间距离的聚类.

为此目的,我在R中尝试了这个代码:

d= as.matrix(dist(cbind(data$lon,data$lat))) #Creat distance matrix
d=ifelse(d<5,d,0) #keep only distance < 5
d=as.dist(d)
hc<-hclust(d) # hierarchical clustering
plot(hc)
data$clust <- cutree(hc,k=3) # cut the dendrogram to generate 3 clusters
Run Code Online (Sandbox Code Playgroud)

这给出了:

在此输入图像描述

现在我尝试使用簇中的颜色绘制相同的点

plot(data$x,data$y, col=c("red","blue","green")[data$clust],pch=19)
Run Code Online (Sandbox Code Playgroud)

结果如下

在此输入图像描述

这不是我想要的.

实际上,我想找到像这样的情节

在此输入图像描述

谢谢你的帮助.

r hierarchical-clustering spatial geospatial

8
推荐指数
3
解决办法
2万
查看次数