Я написал код на python для реализации алгоритма кластеризации DBSCAN. Мой набор данных состоит из 14 тысяч пользователей, каждый из которых представлен 10 функциями. Я не могу решить, что именно оставить в качестве значения Min_samples и epsilon в качестве входных данных. Как мне это решить? Мерой подобия является евклидово расстояние. (Поэтому становится еще сложнее принять решение.) Любые указатели?
Определение входных значений для алгоритма DBSCAN
comment
Оцените евклидово расстояние в вашем наборе данных. Это работает? Что такое порог разумного сходства? Затем используйте этот порог как эпсилон для DBSCAN.
- person Has QUIT--Anony-Mousse   schedule 15.04.2012
comment
Как мне оценить евклидово расстояние в моем наборе данных?
- person Maxwell   schedule 16.04.2012
comment
@ Anony-Mousse: Я думал об этом: имеет ли смысл нормализовать евклидовы расстояния в пределах 0-1. Теперь расстояния могут возрасти до 10к+, что затрудняет определение порога. Но я не уверен, как это нормализовать. Есть идеи?
- person Maxwell   schedule 16.04.2012
comment
Возможно, вы захотите прочитать о проклятии размерности и использовать какую-то совершенно другую функцию расстояния. Евклидово расстояние имеет смысл в физическом мире, но не в произвольных пространствах.
- person Has QUIT--Anony-Mousse   schedule 16.04.2012
Ответы (1)
DBSCAN довольно часто трудно оценить его параметры.
Вы думали об алгоритме OPTICS? В этом случае вам нужны только Min_samples, которые будут соответствовать минимальному размеру кластера.
В противном случае для DBSCAN я делал это в прошлом методом проб и ошибок: попробуйте некоторые значения и посмотрите, что произойдет. Общее правило, которому нужно следовать, заключается в том, что если ваш набор данных зашумлен, у вас должно быть большее значение, и оно также коррелирует с количеством измерений (в данном случае 10).
person
Charles Menguy
schedule
14.04.2012