«Это 8-й день моего участия в ноябрьском испытании обновлений, ознакомьтесь с подробностями события:Вызов последнего обновления 2021 г."
Обзор уменьшения размерности (почему уменьшение размерности)
Проклятие размерности: обычно относится к явлению, при котором количество вычислений увеличивается экспоненциально по мере увеличения количества измерений при вычислении векторов. Во многих задачах машинного обучения каждый фрагмент данных в обучающем наборе часто сопровождается тысячами или даже десятками тысяч признаков. Обработка всех этих особенностей не только делает обучение очень медленным, но и значительно увеличивает сложность поиска хорошего решения. Эту проблему мы часто называем проклятием размерности.
Проклятие размерности затрагивает многие области, такие как численный анализ, выборка, комбинирование, машинное обучение, интеллектуальный анализ данных и базы данных. В процессе моделирования машинного обучения это обычно означает, что с увеличением количества признаков объем вычислений станет очень большим.Если признак достигает сотен миллионов измерений, он не может быть рассчитан во время расчета. Иногда слишком большое измерение также приводит к снижению производительности машинного обучения.Дело не в том, что чем больше размер объекта, тем лучше.Производительность модели сначала будет увеличиваться, а затем снижаться с увеличением количества функций.
Многомерные данные усложняют вычисления
Высокие размерности делают обобщающую способность алгоритма обучения слабее (например, в классификаторе ближайшего соседа сложность выборки возрастает экспоненциально с размерностью), и чем выше размерность, тем сложнее и дороже алгоритм для поиска.
Уменьшение размерности может повысить удобочитаемость данных и помочь обнаружить значимую структуру данных.
Как уменьшить размерность
Снижение размерности — это преобразование выборок (экземпляров) обучающих данных из пространства высокой размерности в пространство низкой размерности, и этот процесс тесно связан с концепцией сжатия с потерями в теории информации. Также важно понимать, что полностью без потерь уменьшения размерности не существует. Существует множество алгоритмов уменьшения размерности исходных данных, в этих методах уменьшение размерности достигается путем линейного преобразования исходных данных.
Роль уменьшения размерности
1. Сократите избыточные функции и уменьшите размеры данных
Предположим, у нас есть два признака: ?1: высота в сантиметрах для длины; ?2: высота в дюймах. Эти две отдельные функции ?1 и ?2 на самом деле представляют один и тот же контент, который фактически может уменьшить данные до одного измерения, и для представления высоты достаточно только одной функции. Многие функции имеют линейную связь, а многие функции с линейной зависимостью являются избыточными. Удаление избыточных функций не повлияет на результаты вычислений машинного обучения.
2. Упрощение визуализации данных
t-SNE (TSNE) преобразует сходство между точками данных в вероятности. Сходство в исходном пространстве представлено гауссовской совместной вероятностью, а сходство во встроенном пространстве представлено «распределением Стьюдента». Хотя методы уменьшения размерности данных и визуализации, такие как Isomap, LLE и их варианты, больше подходят для развертывания единого непрерывного низкоразмерного многообразия. Но если вы хотите точно визуализировать отношение сходства между образцами, например S-кривую, показанную на рисунке ниже (изображения с разными цветами представляют разные категории данных), t-SNE работает лучше. Потому что t-SNE в основном фокусируется на локальной структуре данных.
Уменьшение размерности PCA (анализ главных компонентов)
Код
Он реализован с помощью встроенного алгоритма PCA в библиотеке sklearn.
from sklearn.decomposition import PCA
import numpy as np
import pandas as pd
X = np.array([[-1, -2], [-1, 0], [0, 0], [2, 1], [0, 1]])
pca = PCA(n_components=1)
newX = pca.fit_transform(X)
print(newX)
Результат выглядит следующим образом: