Можете ли вы использовать кластеризацию, чтобы выбрать сигналы в шумных данных?
-
16-10-2019 - |
Вопрос
Как мой первый проект по науке о данных, я хотел бы выбрать основные кластеры в шумных данных. Я думаю, что хороший пример будет попытаться выбрать определенные ссылки на заданный вопрос о StackexChange, который имеет ряд ответов. Наиболее распространенный тип ссылки - это ссылка на вопрос в сети SE. Следующим общим является либо ссылки, либо ссылки на профили пользователей. Остальные ссылки могут быть случайными ссылками, включенными в посты, которые считаются шумом. В идеале я ищу решение, в котором я не знаю, сколько кластеров ссылок будет заранее.
Я реализовал свою первую попытку с помощью scikit-learn
и Kmeans. Тем не менее, это не идеально, потому что мне, кажется, придется указать количество кластеров заранее, и я думаю, что случайные, шумные ссылки сгруппируются неправильно. Я также думаю, что это более эффективно для более крупного корпуса по сравнению с относительно маленьким из токенов URL (хотя это просто предположение).
Есть ли способ сделать этот тип кластеризации, где количество кластеров неизвестно или где один из кластеров - это своего рода различные кластер, содержащие объекты, которые не совпадают с другими кластерами?
Решение
Вы смотрели на DBSCAN? Это пространственная кластеризация данных на основе плотности с шумом, которая может определять нелинейные кластеры (в отличие от K-средних).
Это не требует знания количества кластеров. Тем не менее, для этого требуется два параметра (минимальный размер кластера и размер соседства), которые измеряют плотность. Но вы можете оценить их в своем конкретном домене.