Этот вопрос начинался как « Кластеризация пространственных данных в R », а теперь перешел к вопросу DBSCAN.
Поскольку ответы на первый вопрос подсказали, я искал информацию о DBSCAN и прочитал несколько документов о. Новые вопросы возникли.
DBSCAN требует некоторых параметров, одним из которых является «расстояние». Как мои данные являются трехмерными, долгота, широта и температура, какое «расстояние» я должен использовать? какое измерение связано с этим расстоянием? Я полагаю, это должна быть температура. Как мне найти такое минимальное расстояние с R?
Другим параметром является минимальное количество точек, необходимых для формирования кластера. Есть ли способ найти это число? К сожалению, я не нашел.
Поиск в Google Я не смог найти пример R для использования dbscan в наборе данных, похожем на мой, знаете ли вы какой-либо веб-сайт с такими примерами? Поэтому я могу читать и пытаться приспособиться к своему делу.
Последний вопрос заключается в том, что моя первая попытка R с DBSCAN (без правильного ответа на предыдущие вопросы) привела к проблеме с памятью. R говорит, что не может выделить вектор. Я начинаю с разнесенной на 4 км сетки с 779191 точками, которая заканчивается при удалении недопустимых точек SST приблизительно 300000 строк x 3 столбца (широта, долгота и температура). Любой намек на решение этой проблемы с памятью. Зависит ли это от моего компьютера или от самого DBSCAN?
Спасибо за терпение, чтобы прочитать длинное и, вероятно, скучное сообщение и за вашу помощь.
источник
Ответы:
Я все еще застрял с этой проблемой. Я получил несколько предложений из списка рассылки R (спасибо Кристиану Хеннигу), который я прилагаю здесь:
Я сделал несколько попыток с моими данными, но безуспешно:
«Да, я пробовал dbscan из fpc, но все еще застрял на проблеме с памятью. Что касается вашего ответа, я не уверен, какой параметр памяти мне следует посмотреть. Ниже приведен код, который я пробовал с параметрами dbscan, возможно, вы можете посмотрим, есть ли ошибка.
В этом примере я применяю только
dbscan()
значения температуры, но не lon / lat, поэтомуeps
параметр равен 0.1. Поскольку это набор данных с сеткой, любая точка окружена восемью точками данных, и я подумал, что по крайней мере 5 из окружающих точек должны находиться в пределах досягаемости. Но я не уверен, что получаю правильный подход, только учитывая значение температуры, может быть, тогда мне не хватает пространственной информации. Как мне работать с данными о долготе и широте?Размеры
sst2
: 152243 строки х 3 столбца "Я делюсь этими сообщениями здесь на тот случай, если кто-нибудь из вас сможет рассказать о R и DBSCAN. еще раз спасибо
источник
Проблема здесь с R . Чтобы DBSCAN был эффективным, вам нужно иметь соответствующую структуру индекса (которая должна соответствовать вашему расстоянию). Однако R не выполняет индексацию. Кроме того, пакет fpc представляет собой минималистичную реализацию DBSCAN, предлагая лишь небольшую часть его функциональных возможностей.
Что касается функции расстояния, то здесь необходимо ваше «знание предметной области». Если у вас есть достаточно гибкая реализация DBSCAN (это действительно легко реализовать, индекс сделать его быстрее, чем намного сложнее!), Вы должны быть в состоянии поместить на произвольное расстояние. Вы даже можете сделать это двумя функциями расстояния и значениями эпсилона: точки должны находиться на расстоянии не более , а разница в температуре должна быть не менее10 к т 1 К .O(n2) 10km 1K.
Посмотрите на «Обобщенный DBSCAN» для общих принципов, которые нужны DBSCAN: понятие «соседство» и понятие «основные точки» (или «плотность»).
источник