Обучение многообразия с использованием Scikit-Learn

Beginner

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

Введение

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

В этом практическом занятии мы будем использовать библиотеку scikit-learn для выполнения обучения многообразия на различных наборах данных. Мы изучим разные алгоритмы и сравним их производительность и выходные данные.

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

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

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

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

Isomap

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

from sklearn.manifold import Isomap

## Создайте экземпляр алгоритма Isomap
isomap = Isomap(n_components=2)

## Примените алгоритм к данным и преобразуйте данные в пространство с меньшей размерностью
X_transformed = isomap.fit_transform(X)

Locally Linear Embedding (LLE)

Locally Linear Embedding (LLE) - еще один алгоритм обучения многообразия. Он ищет проекцию данных с меньшей размерностью, которая сохраняет расстояния внутри локальных окрестностей.

from sklearn.manifold import LocallyLinearEmbedding

## Создайте экземпляр алгоритма LLE
lle = LocallyLinearEmbedding(n_components=2)

## Примените алгоритм к данным и преобразуйте данные в пространство с меньшей размерностью
X_transformed = lle.fit_transform(X)

t-distributed Stochastic Neighbor Embedding (t-SNE)

t-SNE - популярный метод обучения многообразия, который преобразует схожести точек данных в вероятности. Он особенно эффективен при визуализации высокомерных данных.

from sklearn.manifold import TSNE

## Создайте экземпляр алгоритма t-SNE
tsne = TSNE(n_components=2)

## Примените алгоритм к данным и преобразуйте данные в пространство с меньшей размерностью
X_transformed = tsne.fit_transform(X)

Сравните результаты

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

import matplotlib.pyplot as plt

## Создайте диаграмму рассеяния преобразованных данных
plt.scatter(X_transformed[:, 0], X_transformed[:, 1], c=y)
plt.title('Manifold Learning')
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()

Обзор

Обучение многообразия - это мощный инструмент для визуализации высокомерных наборов данных. Это позволяет нам уменьшить размерность данных, сохраняя при этом основную структуру. В этом практическом занятии мы изучили три различных алгоритма обучения многообразия: Isomap, Locally Linear Embedding (LLE) и t-SNE. Мы применили эти алгоритмы к различным наборам данных и сравнили их результаты. Используя обучение многообразия, мы можем получить представление о структуре сложных наборов данных и более эффективно анализировать и визуализировать высокомерные данные.