Что такое кластеризация?

кластер — это набор объектов, которые "похожи" между собой и "не похожи" на объекты, принадлежащие другим кластерам. Кластеризация – это метод, используемый для группировки объектов сходного типа и разделения объектов разного типа. Это очень распространенный метод статистического анализа данных, используемый во многих областях, включая распознавание образов, анализ изображений, поиск информации, биоинформатику, сжатие данных, компьютерную графику и машинное обучение. Это относится к области неконтролируемого ОД.

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

Кластеризация K-средних

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

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

У нас нет помеченных данных (обучение без учителя), как мы узнаем, какие точки похожи и не похожи друг на друга? В случае K-средних мы используем евклидово расстояние (ED), чтобы найти сходство.

Среднее значение кластера

Предположим, у нас есть двумерный (x, y) кластер данных, состоящий из n элементов. Чтобы узнать среднее значение кластера, мы должны вычислить среднее значение каждого измерения. Точка, имеющая координату как среднее значение каждого измерения, называется средним кластера.

До сих пор мы рассмотрели все важные концепции, которые нам нужно знать заранее. Давайте обсудим алгоритмы кластеризации k-mean.

Какв точности работает K-Means?

K-Mean не может вернуть, сколько кластеров у нас есть. Мы должны заранее указать количество кластеров, мы хотим, чтобы наши алгоритмы их различали.

  1. Мы должны инициализировать количество средних случайным образом в точках данных.
  2. Затем мы рассчитаем расстояние каждой точки от каждого случайного среднего. Какая точка данных будет принадлежать какому кластеру? Это будет определено только по кратчайшему расстоянию от случайных средств.
  3. После присвоения каждой точки кластерам мы рассчитаем новое среднее значение для каждого кластера с помощью описанного выше метода.
  4. Получив координаты новых средств. мы снова узнаем расстояние каждой точки из новых средних, а затем переназначим каждую точку новым кластерам на основе кратчайшего расстояния.
  5. Этот процесс будет продолжаться.
  6. Это итеративный алгоритм. Эта процедура будет продолжаться до тех пор, пока мы не достигнем глобальных минимумов.

K-Means можно реализовать всего несколькими строками кода.


from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=2, random_state=0).fit(X)

Важные моменты, на которые следует обратить внимание-

  1. Хотя мы стремимся достичь глобального минимума, а не локального минимума. Много раз мы получаем локальные минимумы, потому что на них сильно влияют случайные точки, которые мы выбираем для инициализации средних значений. Чтобы решить эту проблему, мы параллельно запускаем K-средних несколько раз, алгоритм k-средних будет запускаться с разными начальными центроидами. Окончательные результаты будут лучшим выходом. Для реализации этого у нас есть параметр n_init в scikit-learn.
kmeans = KMeans(n_clusters=2, random_state=0,n_init=10)

2. Мы также можем выбрать максимальное количество итераций, которое мы хотим достичь при глобальных минимумах, присвоив значения параметру n_iter.

kmeans = KMeans(n_clusters=2, random_state=0,n_init=10,
max_iter=1000)

3. Мы должны быть очень осторожны при выборе количества кластеров. Мы можем лучше всего оценить его различными методами.Метод локтя очень популярен для его обнаружения. Я буду обсуждать это в другом блоге.

Если вам понравилась эта статья, покажите свою поддержку, похлопав этой статье ниже, оставьте комментарий.

Вы также можете подписаться на меня в Twitter, отправить мне электронное письмо напрямую или в LinkedIn. Я хотел бы услышать от вас.

На этом все, всем хорошего дня :)