Ошибка максимизации ожидания - как найти оптимальное количество гауссиан в данных

Есть ли какой-либо алгоритм или трюк, как определить количество гауссов, которые должны быть идентифицированы в наборе данных, перед применением алгоритма максимизации ожидания?

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

Но что, если бы я не знал числа гауссиан в данных? Есть ли какой-либо алгоритм или трюк, которые я мог бы применить, чтобы узнать эту деталь?

3 ответа

Это может быть немного протектора, так как другие уже связали статью wiki с фактическим определением номера кластера, но я обнаружил, что эта статья была слишком плотной, поэтому я подумал, что дам короткий, интуитивный ответ:

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

Таким образом, вам в основном нужно выбрать некоторую функцию вашего набора данных, чтобы максимизировать количество кластеров (см. статью wiki об индуктивном уклоне для некоторых примеры)

В других печальных новостях во всех таких случаях обнаружение количества кластеров известно как NP-hard, поэтому лучше всего вы можете ожидать является хорошим эвристическим подходом.


  • Непараметрическая байесовская кластеризация теперь получает много внимания. Вам не нужно указывать кластеры.
  • Autoclass - это алгоритм, который автоматически идентифицирует количество кластеров из смеси.

licensed under cc by-sa 3.0 with attribution.