Во время моего изучения машинного обучения на онлайн-платформе Стэнфордского университета одной из областей, которая особенно интересовала меня, было обучение без учителя. Мне показалось интригующим то, что модель машинного обучения можно обучить так, чтобы она взаимодействовала с функциями набора данных без ссылки на какой-либо ярлык. В отличие от обучения с учителем, когда алгоритму дается набор данных, в котором даются правильные ответы, обучение без учителя имеет дело с моделированием характеристик набора данных без ссылки на какую-либо метку и часто описывается как позволяющее набору данных говорить сам за себя. . Обучение без учителя делится на две части: уменьшение размерности и кластеризация. В то время как алгоритм уменьшения размерности ищет более сжатые представления данных, алгоритм кластеризации идентифицирует отдельные группы данных. Эти алгоритмы связаны с изучением свойств данных, оптимальным разделением или дискретной маркировкой групп точек. В следующих абзацах я бы проанализировал математику, лежащую в основе простейшего для понимания алгоритма кластеризации - алгоритма кластеризации K-средних. У этого алгоритма есть различные практические применения, от рекомендательных систем до векторного квантования и кластерного анализа до обучения функциям, ботам и обнаружения аномалий, и это лишь некоторые из них. Хотя библиотеки, такие как Scikit-Learn, уже помогают абстрагироваться от математического аспекта модели на практике, тем не менее, как инженерам машинного обучения и энтузиастам науки о данных важно заниматься математикой, лежащей в основе from sklearn.cluster import KMeans

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

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

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

⦁ Центроид новообразованных кластеров не меняется

⦁ Точки остаются в том же кластере

⦁ Достигнуто максимальное количество итераций, заданное специалистом по данным, работающим над моделью.

После завершения итерации набор данных принимает форму, показанную ниже:

Итак, каковы основные недостатки этого алгоритма? Хотя этот алгоритм является относительно одним из лучших, одна область, которая имеет тенденцию влиять на его результат, - это количество кластеров, k, который является входным параметром. Неправильный выбор k может дать плохие результаты. Вот почему при выполнении k-средних важно выполнять диагностические проверки для определения количества кластеров в наборе данных. Кроме того, хотя и в меньшей степени, сходимость к локальному минимуму может привести к противоречивым («неправильным») результатам. Это означает, что результат кластеризации k-средних может противоречить очевидной кластерной структуре набора данных.

ПРИМЕЧАНИЕ. В нашей реализации мы выбрали первые 4 точки в качестве начальных центроидов кластера, которые могут давать немного разные центроиды каждый раз, когда программа запускается на случайном наборе данных. Мы также можем использовать метод K-means ++ для выбора наших начальных центроидов. k-means ++ был предложен в 2007 году Артуром и Васильвицким. Этот алгоритм дает теоретическую гарантию нахождения решения, которое на O (log k) конкурирует с оптимальным решением k-средних. Класс Sklearn KMeans использует kmeans ++ в качестве метода по умолчанию для заполнения алгоритма.

Автор Ойинлола Салим.

Бакалавриат. Студент инженерного факультета Лагосского университета.