Изучение алгоритма K-Means Clustering с использованием Python

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

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

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

Введение

В этом лабораторном занятии мы изучим алгоритм K-Means Clustering и его реализацию на Python с использованием библиотеки scikit-learn. Кластеризация - это тип обучения без учителя, который заключается в группировке точек данных в кластеры на основе их сходства. K-Means Clustering - популярный алгоритм для кластеризации и широко используется в различных областях, таких как обработка изображений, биоинформатика и маркетинговые исследования.

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

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

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL sklearn(("Sklearn")) -.-> sklearn/CoreModelsandAlgorithmsGroup(["Core Models and Algorithms"]) ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) sklearn/CoreModelsandAlgorithmsGroup -.-> sklearn/cluster("Clustering") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/cluster -.-> lab-49082{{"Изучение алгоритма K-Means Clustering с использованием Python"}} ml/sklearn -.-> lab-49082{{"Изучение алгоритма K-Means Clustering с использованием Python"}} end

Импорт библиотек

Сначала нам нужно импортировать необходимые библиотеки для этой лабораторной работы. Мы будем использовать NumPy, Matplotlib и scikit-learn.

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

Загрузка данных

Далее мы загрузим датасет iris, который является популярным в машинном обучении. Этот датасет содержит информацию о характеристиках различных типов ирисных цветов. Мы будем использовать этот датасет для демонстрации алгоритма K-Means Clustering.

iris = datasets.load_iris()
X = iris.data
y = iris.target

Визуализация данных

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

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2])
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()

Применение алгоритма K-Means Clustering

Теперь мы применим алгоритм K-Means Clustering к нашим данным. Мы инициализируем алгоритм с 3 кластерами и подгоняем его под наши данные.

kmeans = KMeans(n_clusters=3)
kmeans.fit(X)

Визуализация кластеров

После применения алгоритма K-Means Clustering давайте визуализируем образовавшиеся кластеры. Мы будем использовать трехмерный точечный график для визуализации точек данных и их соответствующих кластеров.

fig = plt.figure(figsize=(10, 8))
ax = fig.add_subplot(111, projection="3d")
ax.scatter(X[:, 0], X[:, 1], X[:, 2], c=kmeans.labels_)
ax.set_xlabel("Sepal length")
ax.set_ylabel("Sepal width")
ax.set_zlabel("Petal length")
plt.show()

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

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

print("Inertia Score:", kmeans.inertia_)

Резюме

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