Неразмеченная кластеризация с использованием k-средних

Machine LearningMachine LearningBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

Советы по работе с ВМ

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

Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook загрузится. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.

Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) sklearn(("Sklearn")) -.-> sklearn/UtilitiesandDatasetsGroup(["Utilities and Datasets"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/cluster("Clustering") sklearn/UtilitiesandDatasetsGroup -.-> sklearn/datasets("Datasets") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/cluster -.-> lab-71116{{"Неразмеченная кластеризация с использованием k-средних"}} sklearn/datasets -.-> lab-71116{{"Неразмеченная кластеризация с использованием k-средних"}} ml/sklearn -.-> lab-71116{{"Неразмеченная кластеризация с использованием k-средних"}} end

Импортируем необходимые библиотеки

Прежде чем начать, импортируем библиотеки, которые понадобятся нам для этого лаб.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_blobs
from sklearn.cluster import KMeans

Генерируем примерные данные

Далее давайте сгенерируем некоторые примерные данные для работы. Мы будем использовать функцию make_blobs из модуля sklearn.datasets, чтобы создать синтетический набор данных с кластерами.

## Generate sample data
X, y = make_blobs(n_samples=100, centers=4, random_state=0, cluster_std=1.0)

Визуализируем данные

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

## Plot the data points
plt.scatter(X[:, 0], X[:, 1])
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

Выполняем кластеризацию k-средних

Теперь давайте применим алгоритм кластеризации k-средних к данным.

## Perform K-Means clustering
kmeans = KMeans(n_clusters=4)
kmeans.fit(X)

Визуализируем кластеры

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

## Get the cluster labels for each data point
labels = kmeans.labels_

## Plot the data points with color-coded clusters
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.show()

Оцениваем кластеризацию

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

## Calculate the inertia of the clusters
inertia = kmeans.inertia_
print("Inertia:", inertia)

Резюме

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