2013-02-24 3 views
6

Мне нужно найти естественные классы существительных на основе их распределения с различными предлогами (например, агенты, инструментальные, время, место и т. Д.). Я попытался использовать кластеры k-mean, но с меньшей помощью, это не сработало, было много совпадений над классами, которые я искал (вероятно, из-за негладкой формы классов и случайной инициализации в k-средствах).Оценка параметров в DBSCAN

Теперь я работаю над использованием DBSCAN, но мне трудно понять значение эпсилона и значение мини-точек в этом алгоритме кластеризации. Могу ли я использовать случайные значения или мне нужно их вычислить. Может кто-нибудь помочь. В частности, с epsilon, по крайней мере, как вычислить его, если нужно.

ответ

6

Используйте информацию о домене, чтобы выбрать параметры. Эпсилон - это радиус. Вы можете думать об этом как о минимальном размере кластера.

Очевидно, что случайные значения не будут работать очень хорошо. В качестве эвристики вы можете попытаться взглянуть на k-дистанционный сюжет; но это тоже не автоматическое.

Первое, что нужно сделать в любом случае: Выберите хорошую функцию расстояния для ваших данных. И выполните соответствующую нормализацию.

Что касается "minPts", это снова зависит от ваших данных и . Один пользователь может иметь совсем другое значение, чем другое. И, конечно, миниатюры и Эпсилон связаны. Если вы удвоите epsilon, вам будет примерно необходимо увеличить ваши minPts на 2^d (для евклидова расстояния, потому что это увеличивает объем гиперсферы!)

Если вы хотите много мелких и мелких подробных кластеров, выберите низкий minpts. Если вам нужно больше и меньше кластеров (и больше шума), используйте более крупные minpts. Если вы вообще не хотите никаких кластеров, выберите minpts больше, чем ваш размер набора данных ...

+0

Здесь я не могу сообщить вам параметры. Вам нужно * экспериментировать *. Но серьезно, сначала попытайтесь выяснить, как измерить сходство. Результат кластеризации DBSCAN всегда будет только так хорош, как ваша функция подобия. –

+0

Я принимаю иерархическую структуру в своих данных, имея 3 основных класса. У меня около 32 тысяч точек с 15 размерами. Мои данные: существительное, счет (prep1)/общий подсчет существительного, счет (prep2)/итого ....... кол (prep15)/всего. Я использую функцию евклидовой дистанции, я еще не пробовал других. Что вы подразумеваете под нормализацией, как я должен нормализовать данные, я уже нормализовал распределения по общей частоте данного существительного. Еще один вопрос, его о k-средствах, я могу выбрать центроид перед рукой, так как я могу догадаться о прототипах каждого класса, учитывая мои знания в области. – Riyaz

Смежные вопросы