ML для новичков: Глоссарий, без которого ты не разберёшься - страница 15

Шрифт
Интервал


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

Основные алгоритмы группировки

Существует несколько популярных алгоритмов, которые помогут вам в поиске закономерностей в неразмеченных данных. Давайте рассмотрим некоторые из них.

1. K-средние: Это один из самых популярных и простых в использовании алгоритмов. Он работает по принципу разбиения данных на K групп, где в каждой группе данные имеют наименьшее значение расстояния до центроидов (средних точек групп). Пример кода для применения K-средних в Python с использованием библиотеки scikit-learn выглядит следующим образом:

python


from sklearn.cluster import KMeans


import numpy as np

# Пример данных


data = np.array([[1, 2], [1, 4], [1, 0],


................ [4, 2], [4, 4], [4, 0]])


................


# Создание модели K-средние


kmeans = KMeans(n_clusters=2, random_state=0).fit(data)

# Получение групп


clusters = kmeans.labels_


print(clusters)


2. Иерархическая группировка: Этот метод позволяет создать иерархическую структуру групп, что дает возможность визуализировать отношения между ними. Алгоритм делится на два основных типа: агломеративный (снизу вверх) и дивизивный (сверху вниз). Иерархическую группировку можно реализовать с помощью функции `linkage` из библиотеки SciPy.

python


from scipy.cluster.hierarchy import dendrogram, linkage


import matplotlib.pyplot as plt

# Пример данных


data = np.array([[1, 2], [1, 4], [1, 0],


................ [4, 2], [4, 4], [4, 0]])

# Создание иерархических групп


linked = linkage(data, 'single')

# Построение дендрограммы


dendrogram(linked)


plt.show()


3. DBSCAN (кластеризация с учетом плотности): Этот алгоритм подходит для группировки с учетом плотности, что позволяет ему эффективно находить кластеры произвольной формы. Он хорошо справляется с шумом и выделяет области с различной плотностью.

python


from sklearn.cluster import DBSCAN

# Пример данных


data = np.array([[1, 2], [1, 4], [1, 0],


................ [4, 2], [4, 4], [4, 0],