Я пытаюсь использовать MiniBatchKMeans для потоковой передачи данных NLP и группировки, но не имеет способа определить, сколько кластеров мне нужно. То, что я хотел бы сделать, это периодически брать силуэт, и если он опускается ниже определенного порога, увеличьте количество центроидов. Но, насколько я могу судить, n_clusters
устанавливается при инициализации кластера и не может быть изменен без перезапуска. Я здесь не прав? Есть ли другой способ приблизиться к этой проблеме, чтобы избежать этой проблемы?Возможно ли увеличить количество центроидов в KMeans во время установки?
ответ
Это не рекомендуется делать во время оптимизации, так как существенно изменяет процедуру оптимизации. Это приведет к потере всей оптимизации. Существуют стратегии, такие как деление пополам k-средств, которые пытаются узнать значение k во время кластеризации, но они немного сложнее, чем увеличение k на единицу - они решают, какой именно кластер разбивается, и попытайтесь выбрать хорошие начальные центроиды для этот кластер, чтобы держать вещи несколько стабильными.
Кроме того, увеличение k не обязательно улучшит силуэт. Это будет тривиально улучшать SSQ, поэтому вы не можете использовать SSQ как эвристику для выбора k.
И последнее, но не менее важное: вычисление Силуэта - O (n^2). Слишком дорого работать. Если у вас достаточно большого объема данных, чтобы требовать MiniBatchKMeans (который действительно предназначен только для массивных данных), то вы явно не можете позволить себе вычислять Силуэт вообще.
Хорошо, спасибо, я не знал этого, и это> 50 гб метаданных, так что да, это большой –
Тогда позвольте мне дать вам один важный совет: ** сначала используйте образец ** **, чтобы проверить ваш подход. Только масштабные подходы, которые * работают * до полных данных. Потому что, по моему опыту, k-значит вас разочарует (пожалуйста, дайте мне знать, дали ли вам хорошие результаты!). Я всегда подумывал о том, чтобы сделать некоторую работу над k-средствами (и у меня есть интересные идеи), но это никогда не работал хорошо на моих проблемах. –
Я использовал его на образце, он работал достаточно хорошо –
- 1. классифицирует kmeans для заданных центроидов
- 2. Ошибка в вычислении центроидов kmeans в matlab
- 3. Возможно ли использовать файл в установочной папке во время установки?
- 4. Регистрация во время установки/установки пакетов
- 5. Возможно ли создать apk во время выполнения?
- 6. PriviledgedActionException во время работы kmeans на hadoop
- 7. Возможно ли увеличить количество запросов mlt в solr?
- 8. Можно ли изменить преобразование KMeans в sklearn?
- 9. соединения во время установки
- 10. Возможно ли получить время (дня) и дату во время компиляции?
- 11. Соглашение во время установки
- 12. java.lang.NullPointerException во время установки
- 13. Возможно ли увеличить количество байтов для любого типа данных?
- 14. Возможно ли установить узел-узел без загрузки из Github во время этапа установки после установки?
- 15. Проблемы во время установки сервера Samba - возможно, разрешения
- 16. Возможно ли прочитать файл во время компиляции?
- 17. Возможно ли собрать данные во время компиляции
- 18. Возможно ли выполнить процесс во время перезагрузки?
- 19. Возможно ли получить Xaml во время выполнения?
- 20. Возможно ли перегрузить функцию во время выполнения?
- 21. Изменение .exe во время установки
- 22. установка Путь установки во время установки
- 23. Необоснованное количество «используемых файлов» во время процесса установки WiX
- 24. Возможно ли «увеличить» текст в WPF RichTextBox?
- 25. Изменения App.config во время установки
- 26. Возможно ли установить режим совместимости окон приложения во время выполнения?
- 27. Остановка установки останавливается во время установки пучка
- 28. Увеличить страницу во время печати в javascript
- 29. Инициализация R kmeans
- 30. Ошибка Capistrano во время установки установки
Несмотря на то, что k-средство эвристическое, я уверен, что изменение количества кластеров во время работы будет иметь крайне негативные последствия для используемого алгоритма чередующегося минимизации (вы застряли в локальный минимум и получил только там из-за устаревших параметров). Это, по крайней мере, то, что я думаю! Просто оптимизируйте для разных значений '' 'n_cluster''' и сравните свои баллы (если вы им доверяете). k-средства должны быть достаточно быстрыми, чтобы сделать такую стратегию валидации. Такой подход будет намного более стабильным! – sascha