Кластеризация текстовых данных с использованием обучения без учителя

Машинное обучение можно разделить на три типа обучения: обучение с учителем, обучение без учителя и обучение с подкреплением. В то время как обучение с учителем может использоваться для классификации или регрессионного анализа данных, обучение без учителя используется для поиска скрытых структур в данных. Набор данных, используемый при обучении без учителя, не содержит ярлыков. Анализ основных компонентов (PCA), разложение по сингулярным значениям (SVD), кластеризация K-средних, кластеризация K-Medoid и кластеризация ожидания-максимизации (EM) - вот некоторые из алгоритмов обучения, используемых при обучении без учителя.

Алгоритм EM моделирует данные как генерируемые смесью гауссиан. Алгоритм EM оценивает параметры (среднее и ковариационную матрицу) каждого гауссиана. Каждый гауссиан определяет отдельный кластер данных. Основное различие между алгоритмом EM и K-средним состоит в том, что в алгоритме EM членство в кластере является частичным.

Предположим, у нас есть функция плотности F такая, что,

тогда график этой функции плотности и подобранной гауссианы будет выглядеть примерно так.

На рисунке выше он показывает подобранный гауссиан для заданных данных. И ясно, что это было очень плохо. В целом, гауссианы обладают привлекательными свойствами, такими как обучение только двум параметрам (μ и σ), и поэтому для оценки требуется мало обучающих данных. Однако по некоторым данным гауссианы не подходят. Смеси гауссианов часто являются лучшим решением. Для их оценки по-прежнему требуется относительно небольшое количество параметров, поэтому их можно узнать из относительно небольших объемов данных. Они довольно хорошо подходят для реальных распределений данных.

Алгоритм ожидания-максимизации состоит из трех шагов. Инициализация, E-шаг, M-шаг. Сначала мы случайным образом делим набор данных на K различных кластеров и начинаем с M-шага, чтобы найти весовые коэффициенты, среднее значение и матрицу ковариаций. Мы используем эти значения и применяем E-step. Мы продолжаем повторять эти два шага до тех пор, пока не будет выполнено какое-то пороговое условие.

Предположим, у нас есть набор данных с n строками и d атрибутами. Пусть K будет количеством кластеров. Пусть x_1, x_2,…, x_n - d-мерные векторы. Тогда x_i = (x_i, 1, x_i, 2,…, x_i, d), где каждый x_i, j - действительное число.

Инициализация

Сначала мы инициализируем весовой вектор размером K. Затем мы создаем 2D-массив, содержащий средние значения размером k x d. Где каждая строка содержит среднее значение для каждого гауссиана. Затем мы создаем трехмерный массив для хранения значений ковариационной матрицы размером k x d x d. Где каждое измерение представляет собой ковариационную матрицу d x d для каждого гауссиана. Теперь мы случайным образом назначаем данные каждому гауссиану с двумерной матрицей вероятности n x k. Где, n - количество имеющихся у нас данных. Код Python для этапа инициализации показан ниже.

M-Step

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

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

Электронный шаг

На этапе E мы будем использовать весовые коэффициенты, среднее значение и ковариационную матрицу для корректировки значений вероятности, используя формулу оценки Гаусса, показанную ниже.

В приведенном выше уравнении E - ковариационная матрица, а u - среднее значение. Теперь новая вероятность будет рассчитываться следующим образом.

Код Python для E-step показан ниже.

Пороговое условие

Наконец, мы вычисляем логарифмическую вероятность данных после каждой итерации, используя следующее уравнение, и продолжаем повторять M-step и E-step до last_log_likelihood = log_likelihood.

Заключение

В общем, k-средних и EM могут работать лучше или хуже, в зависимости от природы данных, которые мы хотим кластеризовать, и наших критериев того, что определяет хороший результат кластеризации. В отличие от K-средних, модель гауссовой смеси выполняет «мягкие» назначения объектов. А p_ij указывает, сколько x_j принадлежит кластеру i.

Ссылки

ЕПИСКОП, КРИСТОФЕР М. РАСПОЗНАВАНИЕ ОБРАЗЦА И МАШИННОЕ ОБУЧЕНИЕ. ВЕСНА-ВЕРЛАГ, НЬЮ-ЙОРК, 2016.