在R中用空间数据(lon,lat)从DBSCAN中选择eps和minPts?

问题描述 投票:0回答:1

我知道以前的帖子已经解决了这个问题,但我找不到任何专门针对空间点数据的帖子。我有一个数据集,包含2013年在纽约市发生的所有停止和搜索停止。我正在尝试确定停止发生位置的“热点”。数据采用以下形式:

stops <- data.frame(lon=c(-74.00478, -74.01046, -74.00521),
                    lat=c(40.71641, 40.71153, 40.72063),
                    precinct = c(1,1,1))

还有其他功能(总数= 89),例如停止时间,嫌疑人种族,停止原因等。此外,还有173,671个观察总数。

我的问题是使用knn方法找到eps我必须转换lat和lon还是我可以按原样使用它们?

我的另一个问题是如何选择minPts?我已经观看了其他有关python的犯罪数据和使用Tableau集成的R的教程,看起来好像是根据一些事件计数来选择它。我使用此代码获取与一天中发生的平均停止次数相关的minPts,但我不确定这是否可靠。

stops2013clean %>%
group_by(precinct, lubridate::hour(stops2013clean$time)) %>%
summarise(n_stops=n()) %>%
summarise(mean(n_stops)) %>%
summarise(mean(`mean(n_stops)`))

感谢您的帮助和指导。

r spatial dbscan
1个回答
1
投票

没有算法可供选择。这是你想要做的事情。

对于纬度和经度,您应该使用Haversine距离,以获得米,码,脚,如您所愿(只需确保您知道您得到的单位)。

然后你必须决定什么是“热点”。半径有多少罪行? 100米内的10个罪行?然后你有你的参数。

© www.soinside.com 2019 - 2024. All rights reserved.