Введение
В этом лабораторном занятии мы изучим алгоритм K-Means Clustering и его реализацию на Python с использованием библиотеки scikit-learn. Кластеризация - это тип обучения без учителя, который заключается в группировке точек данных в кластеры на основе их сходства. K-Means Clustering - популярный алгоритм для кластеризации и широко используется в различных областях, таких как обработка изображений, биоинформатика и маркетинговые исследования.
Советы по работе с ВМ
После запуска ВМ нажмите в левом верхнем углу, чтобы переключиться на вкладку Notebook и получить доступ к Jupyter Notebook для практики.
Иногда вам может потребоваться подождать несколько секунд, пока Jupyter Notebook не загрузится полностью. Валидация операций не может быть автоматизирована из-за ограничений Jupyter Notebook.
Если вы сталкиваетесь с проблемами во время обучения, не стесняйтесь обращаться к Labby. Оставьте отзыв после занятия, и мы оперативно решим проблему для вас.
Импорт библиотек
Сначала нам нужно импортировать необходимые библиотеки для этой лабораторной работы. Мы будем использовать 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 и оценили его производительность. Кластеризация - это мощный метод анализа данных, который может быть использован в различных приложениях.