Выбор eps и minPts из DBSCAN с пространственными данными (lon, lat) в R? - PullRequest
0 голосов
/ 10 марта 2019

Я знаю, что предыдущие посты касались этой темы, но я не смог найти ничего специально для данных пространственных точек. У меня есть набор данных со всеми остановками и резкими остановками, которые имели место в Нью-Йорке в 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 и R с интеграцией таблиц, и кажется, что они выбирают его на основе некоторого количества инцидентов. Я использовал этот код, чтобы получить minPts, который относится к среднему количеству остановок за день, но я не уверен, что это надежно.

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

Спасибо за любую помощь и руководство.

1 Ответ

1 голос
/ 12 марта 2019

Нет алгоритма их выбора.Это вопрос того, что вы хотите сделать.

С широтой и долготой вы должны использовать расстояние Хаверсайн, чтобы получить метры, ярды, футы, как вам нравится (просто убедитесь, чтоВы знаете, какую единицу вы получаете).

Тогда вам нужно решить, что такое "горячая точка".Сколько преступлений в каком радиусе?10 преступлений в пределах 100 метров?Тогда у вас есть ваши параметры.

...