Введение
Это пошаговая лабораторная работа по демонстрации использования 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. Мы также узнали, как проектировать данные на первые три главные компоненты и визуализировать результаты в трехмерном пространстве.