Классификация цветов Ириса с использованием Scikit-learn

Beginner

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

Введение

Это пошаговая лабораторная работа по демонстрации использования Scikit-learn, популярной библиотеки машинного обучения в Python. Мы будем использовать датасет Iris, который содержит информацию о физических атрибутах различных типов ирисных цветов. Цель этой лабораторной работы - показать, как использовать Scikit-learn для выполнения основных задач машинного обучения, таких как загрузка данных, предобработка данных, выбор признаков и визуализация.

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

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

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

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

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

Начнем с импорта необходимых библиотек. В этой лабораторной работе мы будем использовать Scikit-learn, NumPy и Matplotlib.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from sklearn import datasets
from sklearn.decomposition import PCA

Загрузка датасета Iris

Мы будем загружать датасет Iris с использованием встроенной функции load_iris из Scikit-learn.

iris = datasets.load_iris()
X = iris.data[:, :2]  ## мы берем только первые два признака.
y = iris.target

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

Мы будем визуализировать датасет Iris с использованием диаграммы рассеяния. Мы построим график длины чашелистика против ширины чашелистика и покрасим точки в соответствии с их классом.

x_min, x_max = X[:, 0].min() - 0.5, X[:, 0].max() + 0.5
y_min, y_max = X[:, 1].min() - 0.5, X[:, 1].max() + 0.5

plt.figure(2, figsize=(8, 6))
plt.clf()

## Plot the training points
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.Set1, edgecolor="k")
plt.xlabel("Длина чашелистика")
plt.ylabel("Ширина чашелистика")

plt.xlim(x_min, x_max)
plt.ylim(y_min, y_max)
plt.xticks(())
plt.yticks(())

Выполнить анализ главных компонент (PCA)

Мы выполним анализ главных компонент (PCA) для уменьшения размерности датасета. Мы проектируем данные на первые три главные компоненты и строим результаты в трехмерном пространстве.

fig = plt.figure(1, figsize=(8, 6))
ax = fig.add_subplot(111, projection="3d", elev=-150, azim=110)

X_reduced = PCA(n_components=3).fit_transform(iris.data)
ax.scatter(
    X_reduced[:, 0],
    X_reduced[:, 1],
    X_reduced[:, 2],
    c=y,
    cmap=plt.cm.Set1,
    edgecolor="k",
    s=40,
)

ax.set_title("First three PCA directions")
ax.set_xlabel("1st eigenvector")
ax.xaxis.set_ticklabels([])
ax.set_ylabel("2nd eigenvector")
ax.yaxis.set_ticklabels([])
ax.set_zlabel("3rd eigenvector")
ax.zaxis.set_ticklabels([])

Резюме

В этой лабораторной работе мы узнали, как загружать датасет Iris с использованием Scikit-learn, визуализировать данные с использованием Matplotlib и выполнять анализ главных компонент (PCA) с использованием Scikit-learn. Мы также узнали, как проектировать данные на первые три главные компоненты и визуализировать результаты в трехмерном пространстве.