В статье рассматриваются основные алгоритмы кластеризации в машинном обучении.
Ключевые слова: искусственный интеллект, AI, машинное обучение, ML, кластер, данные.
Ежедневно искусственный интеллект все сильней и сильней вторгается в нашу жизнь. В 90-х годах и начале XXI века искусственный интеллект достиг наибольшего успеха. Все больше и больше различных работ люди оставляют роботам, например, различные географические исследования, исследование других планет, обезвреживание бомб или обычное выполнение повседневной рутинной работы, например, уборку. Компьютеры значительно продвинулись вперед и на сегодняшний день они самостоятельно могут выполнять огромное количество функций: управление автомобилями и самолетами, различное прогнозирование, передача новостей или же просто развлекать нас. Сегодня многие заводские работы выполняются промышленными роботами. Это привело к удешевлению производства различных товаров, в том числе автомобилей и электроники.
Искусственный интеллект успешно используется в широком спектре областей, включая медицинскую диагностику, торговлю акциями, управление роботами, право, научные открытия и игрушки. Промышленные роботы также используются для упаковки промышленных товаров, транспортировки товаров по складам или больницам, или удаления крошечных электронных компонентов с большой точностью, скоростью и надежностью. Роботы могут перемещаться, ощущать окружающую среду и управлять ею, предсказывать действия других и проявлять разумное поведение. Ученые заинтересованы в создании роботов, похожих на человека.
Рассмотрим подробнее одно из направлений в искусственном интеллекте — машинное обучение. Основной принцип машинного обучения заключается в том, что машины получают данные и «обучаются» на них. В настоящее время это наиболее перспективный инструмент для бизнеса, основанный на искусственном интеллекте. Системы машинного обучения позволяют быстро применять знания, полученные при обучении на больших наборах данных, что позволяет им преуспевать в таких задачах, как распознавание лиц, распознавание речи, распознавание объектов, перевод, и многих других. В отличие от программ с закодированными вручную инструкциями для выполнения конкретных задач, машинное обучение позволяет системе научиться самостоятельно распознавать шаблоны и делать прогнозы.
Машинное обучение — одна из самых популярных технологий в 2020 г., поскольку объем данных увеличивается изо дня в день, потребность в машинном обучении также растет в геометрической прогрессии. Машинное обучение — это очень обширная тема, которая имеет разные алгоритмы и варианты использования в каждой области и отрасли. Один из них — это обучение без учителя, в котором мы можем увидеть использование кластеризации. [1]
Обучение без учителя — это метод, при котором машина учится самостоятельно на основе данных без вмешательства со стороны. Поскольку данные «не маркированы», у машины нет правильного ответа, чтобы учиться на ней, но машина сама находит некоторые закономерности на основе данных, чтобы найти ответы на бизнес-проблему. [2] Иными словами, это пригодно только для задач, в которых известны описания множества объектов (обучающей выборки), и требуется обнаружить внутренние взаимосвязи, зависимости, закономерности, существующие между объектами.
Кластеризация — это метод машинного обучения без учителя, который включает в себя группировку заданных немаркированных данных. В каждом очищенном наборе данных с помощью алгоритма кластеризации мы можем кластеризовать данные точки данных в каждую группу. Алгоритм кластеризации предполагает, что точки данных, которые находятся в одном кластере, должны иметь похожие свойства, а точки данных в разных кластерах должны иметь сильно различающиеся свойства.
Зачем нужна кластеризация?
Кластеризация — это широко используемый алгоритм машинного обучения, который позволяет нам находить скрытые связи между точками данных в нашем наборе данных.
Примеры:
- Сегментирование клиентов на основе их сходства с предыдущими клиентами
- Обработка изображений в основном в биологических исследованиях для определения основных закономерностей
- Создание иерархии тем на основе набора текстовых данных в соответствии с сходством контента
- Фильтрация спама
- Выявление мошенничества и преступных действий
Давайте разберемся какие бывают типы кластеризации и узнаем их плюсы и минусы.
В машинном обучении существует множество типов алгоритмов кластеризации. Остановимся на следующих трех алгоритмах:
- Кластеризация k-средних
Это самый популярный алгоритм кластеризации среди других алгоритмов кластеризации в машинном обучении. Он используется во многих ведущих отраслях. Это одна из самых простых моделей как в реализации, так и в понимании. Сначала выбирается случайное число из k для использования и случайным образом инициализируется их соответствующие центральные точки. Затем каждая точка данных классифицируется путем вычисления расстояния между этой точкой и центром каждой группы, а затем кластеризации точки данных в кластер, центр которого находится ближе всего к нему. Далее повторно вычисляется центр группы, на основе средних значений всех векторов в группе. Шаги повторяются в течение n раз или до тех пор, пока центры групп не сильно не изменятся.
Плюсы: очень быстро, минимум вычислений, линейная сложность O(n).
Минусы: выбор значения k, различные центры кластеризации, непоследовательность.
- Кластеризация сдвига среднего значения
Алгоритм среднего сдвига в основном назначает точки данных кластерам итеративно, смещая точки в направлении наивысшей плотности точек данных, то есть центроида кластера. В отличие от алгоритма k-средних, данный алгоритм не делает никаких предположений; следовательно, это непараметрический алгоритм, а также разница заключается в том, что не нужно заранее указывать количество кластеров, поскольку количество кластеров будет определяться алгоритмом по данным.
Алгоритм начинается с выбора «окна», которое будет перемещаться с центром в случайно выбранной точке. После каждой итерации окно смещается в сторону областей с более высокой плотностью путем смещения центральной точки к среднему значению точек внутри окна. Плотность внутри окна увеличивается с увеличением количества точек внутри него. Смещение среднего значения точек в окне будет постепенно перемещаться в области с более высокой плотностью точек. Алгоритм будет остановлен, как только центроиды достигнут позиции, из которой он не сможет двигаться дальше.
Плюсы: нет необходимости выбирать количество кластеров, хорошо сочетается с естественным управлением данными.
Минусы: плохая работа в случае большой размерности, где количество кластеров резко меняется, нет прямого контроля над количеством кластеров.
- Основанная на плотности пространственная кластеризация для приложений с шумами (DBSCAN)
Это алгоритм кластеризации, основанной на плотности — если дан набор точек в некотором пространстве, алгоритм группирует вместе точки, которые тесно расположены (точки со многими близкими соседями), помечая как выбросы точки, которые находятся одиноко в областях с малой плотностью (ближайшие соседи которых лежат далеко). Алгоритм работает путем вычисления расстояния между каждой точкой и всеми другими точками. Затем мы помещаем точки в одну из трех категорий: основная точка, граница и точки шума. Основная точка: точки, расстояние которых относительно точки ниже порога, определенного эпсилоном. Граница: точка, которая не находится в непосредственной близости к одной или нескольким основным точкам. Границы включены в кластер ближайшей базовой точки. Точка шума: точки, которые недостаточно близки к основным точкам, чтобы считаться пограничными точками. Шумовые точки игнорируются. То есть они не являются частью какого-либо кластера.
Плюсы: возможность находить кластеры произвольной формы, имеет понятие шума и устойчив к выбросам.
Минусы: не полностью однозначен — краевые точки, которые могут быть достигнуты из более чем одного кластера, могут принадлежать любому из этих кластеров, что зависит от порядка просмотра точек, не может хорошо кластеризовать наборы данных с большой разницей в плотности. [3]
Таким образом, мы рассмотрели необходимость кластеризации, различные типы алгоритмов кластеризации, а также их плюсы и минусы. Кластеризация — действительно очень интересная тема в машинном обучении, но есть много других типов алгоритмов кластеризации, которые стоит изучить.
Литература:
- Различия между искусственным интеллектом, машинным обучением и глубоким обучением. — Текст: электронный // Хабр: [сайт]. — URL: https://habr.com/ru/post/526984/ (дата обращения: 22.12.2020).
- Clustering in Machine Learning. — Текст: электронный // upGrad blog: [сайт]. — URL: https://www.upgrad.com/blog/clustering-in-machine-learning/ (дата обращения: 22.12.2020).
- DBSCAN. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.wikipedia.org/wiki/DBSCAN (дата обращения: 22.12.2020).