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

Что такое кластеризация K-средних?

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

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

Простая демонстрация

Чтобы получить представление о том, как работает кластеризация K-средних, давайте посмотрим на простую демонстрацию. Для этой демонстрации мы будем использовать библиотеку кластеризации k-means от Scikit-Learn.

Во-первых, давайте создадим несколько точек данных для кластеризации. Мы будем использовать функцию NumPy random.rand для создания 100 точек, равномерно распределенных в двумерном пространстве.

import numpy as np

# Generate random data points
data = np.random.rand(100, 2)

Теперь давайте используем K-Means для кластеризации этих данных. Мы будем использовать класс KMeans из Scikit-Learn и установим количество кластеров равным 3.

from sklearn.cluster import KMeans

# Initialize KMeans model
kmeans = KMeans(n_clusters=3)

# Fit the model to the data
kmeans.fit(data)

# Predict the clusters for each data point
labels = kmeans.predict(data)

Наконец, давайте визуализируем кластеры. Мы будем использовать Matplotlib для построения точек данных и окрашивания их в соответствии с их кластерами.

import matplotlib.pyplot as plt

# Plot the data points
plt.scatter(data[:,0], data[:,1], c=labels, cmap="rainbow")

# Show the plot
plt.show()

Результат должен выглядеть примерно так:

Как видите, точки данных сгруппированы в три отдельные группы.

Заключение

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

Если вы хотите узнать больше о кластеризации методом K-средних, я рекомендую следующие ресурсы:

Удачной кластеризации!