У меня есть набор данных, я хочу создать кластеры на этих данных на основе только одной переменной (нет пропущенных значений). Я хочу создать 3 кластера на основе этой одной переменной.
Какой алгоритм кластеризации использовать, k-means, EM, DBSCAN и т. Д.?
Мой главный вопрос заключается в том, при каких обстоятельствах я должен использовать k-средние над EM или EM над k-средними?
clustering
Али
источник
источник
Ответы:
Алгоритм K-средних и алгоритм EM будут очень похожи для одномерной кластеризации.
В K-средних вы начинаете с предположения, где находятся средние значения, и присваиваете каждой точке кластер с ближайшим средним значением, затем заново вычисляете средние значения (и отклонения) на основе текущих назначений точек, затем обновляете назначение точек, затем обновляете значение ...
В EM вы также начинаете с предположения, где находятся средние значения, затем вычисляете ожидаемое значение назначений (по существу, вероятность того, что каждая точка находится в каждом кластере), затем вы обновляете предполагаемые средние (и отклонения), используя ожидаемые значения. в качестве весов, затем вычислить новые ожидаемые значения, а затем вычислить новые средства, ...
Основное отличие состоит в том, что распределение точек для кластеров в K-средних - это все или ничего, где EM дает пропорции / вероятность членства в группе (одна точка может рассматриваться как имеющая 80% вероятности нахождения в группе А, 18% вероятности быть в группе B, и 2% вероятность быть в группе C). Если между группами существует большое разделение, то два метода дадут довольно похожие результаты. Но если существует значительное перекрытие, то EM, вероятно, даст более значимые результаты (даже больше, если интерес представляет дисперсия / стандартное отклонение). Но если все, что вас волнует, это назначить членство в группе, не заботясь о параметрах, то K-means, вероятно, проще.
Почему бы не сделать оба и посмотреть, как разные ответы? если они похожи, то выбирайте более простой, если они отличаются, тогда решите сравнить группирование с данными и внешним знанием.
источник
EM лучше, чем k-means с точки зрения результатов.
К-значит, однако, имеет более быстрое время выполнения.
Они будут давать аналогичные результаты, если матрицы стандартного отклонения / ковариации приблизительно равны. Если вы подозреваете, что это правда, используйте k-means.
DBSCAN используется, когда данные не являются гауссовыми. Если вы используете одномерные данные, это, как правило, неприменимо, поскольку гауссовское приближение обычно допустимо в одномерном измерении.
источник
Другой простой способ - это в основном использовать сортировку массива 1D: т.е. выполнять итерацию по каждой точке и получать значения, которые находятся на минимальном расстоянии от нее как в положительном, так и в отрицательном направлениях. Например:
выдаст:
Что указывает на то, что предметы, близкие к определенной точке, в основном находятся в ее группе. Единственное, над чем стоит задуматься в этой технике, это переменная k, которая является фиксированным размером кластера :-).
источник
Если есть только одна переменная, нет необходимости кластеризации. Вы можете легко сгруппировать свои наблюдения на основе распределения переменной.
Или я здесь упускаю некоторые моменты?
источник