2

Я все еще занимаюсь исследованием кластеров, сформированных с использованием кластеризации (неконтролируемое обучение)?Как оценить кластеризацию?

Я пробовал искать, но меры, которые я получаю, слишком теоретические. Будет здорово, если люди смогут поделиться механизмами, которые они используют, для оценки сформированных кластеров. Скажем, у меня есть кластер Java, который будет содержать Java EE, Java ME, RMI, JVM и т. Д., Другой кластер говорит NoSQL, и у него будет что-то вроде Neo4j, OrientDB, CouchDB и т. Д. Это прекрасно, и мой алгоритм кластеризации дал мне больше всего точные кластеры.

Однако после обучения, а затем тестирования я могу сказать MySQL, Oracle в кластере NoSQL, поэтому я просто выполняю ручную/визуальную интерпретацию, а затем переучиваю свой алгоритм или настраиваю его, чтобы улучшить кластеризацию.

Теперь я хочу автоматизировать этот процесс визуализации кластеров вручную и иметь систему, которая дает мне точность сформированных кластеров. Я ищу что-то похожее на точность, отзыв, NDCG, карту и т. Д., Используемые в поиске. Мои кластеры различаются по длине, и может быть n - другой кластер, сформированный таким образом, чтобы точность/отзыв не были правильными.

ответ

2

Я работаю над проектом с кластеризацией, и до сих пор у меня такой же вопрос.

Сейчас я пользуюсь библиотекой JavaML, которая имеет встроенные алгоритмы кластеризации (в моем случае я использую K-средства), и эта библиотека также имеет несколько функций для оценки этих алгоритмов.

Функция, которую я использую для оценки «качества» моих кластеров, представляет собой сумму квадратов ошибок элементов каждого кластера. Чтобы не математически объяснить этот метод оценки, в основном сумма квадратов ошибок суммирует расстояние каждого элемента каждого кластера до их соответствующего кластеризованного центроида (в случае K-средних). Это не идеальная и идеальная оценка, как вам нравится, это может быть лучше, чем визуальное сравнение (у меня такая же проблема), но, по крайней мере, формальный способ определить, насколько хороши ваши кластеры. Это дешево, быстро и может дать вам общее представление о ваших кластерах.

Вы также можете проверить проблему 'Cluster labeling'. Это не тривиально, но намеревается атаковать ту же проблему.

Я думаю, что правильный ответ на ваш вопрос зависит от алгоритма кластеризации вы используете и понять некоторые математические теории здесь, потому что это не простой предмет :)

Удачи вам в этом!

+0

Спасибо за эту информацию. Ваш пост определенно полезен. – Yavar

+0

Надеюсь, это поможет! Я с нетерпением жду, чтобы узнать, как этот проект закончился –

1

Обычно кластеризация используется как неконтролируемый и полунаблюдаемый алгоритм обучения. Поскольку вы упомянули «Однако после обучения, а затем тестирования я могу сказать, что MySQL, ...». Я предполагаю, что вы используете алгоритм кластеризации с полунаблюдением для вашего приложения.

Вы можете увеличить количество входных функций (или, возможно, сделать несколько экспериментов при увеличении количества функций ввода), посмотреть, как изменяется точность вашей системы w.r.t. размер вектор-функции.

Кроме того, вы можете оценить различные алгоритмы кластера и выбрать лучший алгоритм, который дает наилучшую точность прогнозирования.

+0

Спасибо Upul. На самом деле я работаю над неконтролируемым обучением, потому что из кластеров не фиксируются изначально, и у меня есть неструктурированный текст. Я уже выбрал алгоритм кластеризации. Однако я хочу оценить тот же алгоритм кластеризации в отношении создаваемого кластера.В качестве примера скажем, что я получаю кластеры, то какая метрика может использоваться для оценки кластеров, которые могут просто дать мне процент, говорят, что точность кластеризации составляет 70%. Затем я могу работать и перенастраивать один и тот же алгоритм для достижения более высокой точности. – Yavar