我知道以前的帖子已经解决了这个问题,但我找不到任何专门针对空间点数据的帖子。我有一个数据集,包含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)`))
感谢您的帮助和指导。
没有算法可供选择。这是你想要做的事情。
对于纬度和经度,您应该使用Haversine距离,以获得米,码,脚,如您所愿(只需确保您知道您得到的单位)。
然后你必须决定什么是“热点”。半径有多少罪行? 100米内的10个罪行?然后你有你的参数。