Уменьшение размерности !!

Всем привет…
Добро пожаловать в мой первый блог. В этом блоге я хотел бы объяснить, насколько важно уменьшение размерности в машинном обучении, и рассказать о его важности, плюсах и минусах. Также прикрывая некоторую математику за этим.

Давайте начнем!

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

Есть 2 различных широко обсуждаемых метода, используемых для уменьшения размерности:

  1. Выбор функций. Относится к методам, помогающим найти лучшие функции путем удаления повторяющихся и ненужных функций. Это можно рассматривать как подмножество оптимальных признаков.
  2. Извлечение функций: относится к созданию новых функций из существующих функций, которые помогают построить более эффективную модель.

Выбор функций:-

Это процесс уменьшения количества входных переменных/функций при разработке прогностической модели. Функции данных, которые мы используем для обучения нашей модели машинного обучения, оказывают огромное влияние на производительность, которую мы можем достичь. Нерелевантные функции могут негативно повлиять на производительность модели.
Ниже перечислены причины использования метода выбора функций:
→ Это позволяет алгоритму машинного обучения быстрее обучать данные.
→ Это уменьшает сложность модели и облегчает ее интерпретацию.
→ Повышает/улучшает точность модели, если выбрано правильное подмножество.
→ Сокращает переоснащение.
Существуют различные методологий и методов, которые мы можем использовать для выбора наилучшего подмножества, мы обсудим несколько важных методов.
1. Методы фильтрации
2. Методы-оболочки
3. Встроенные методы

Методы фильтрации:-

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

Методы обертки: -

В этом методе мы пытаемся использовать подмножество функций и обучать модель. Основываясь на выводах, которые мы делаем из предыдущей модели, мы пытаемся добавить или удалить функции из подмножества. Задача по существу сводится к получению наилучшего подмножества признаков из всего набора данных. Некоторые распространенные методы-оболочки: -
Прямой выбор: это итеративный метод, в котором мы начинаем с отсутствия признаков в модели. Мы продолжаем добавлять функции, которые лучше всего улучшают нашу модель, до тех пор, пока добавление новой функции не перестанет улучшать модель.
Обратный отбор: мы начинаем со всех функций и удаляем наименее значимые функции в каждая итерация, которая улучшает производительность модели. Мы повторяем это до тех пор, пока не перестанут наблюдаться дальнейшие улучшения при удалении функций.
Рекурсивный отбор.Это жадный алгоритм оптимизации, целью которого является поиск наиболее эффективного подмножества функций. Он постоянно создает модели и отбрасывает лучшие или худшие функции на каждой итерации.
Он строит следующую модель с оставшимися функциями, пока все не будут исчерпаны. Затем он ранжирует функции в порядке производительности, чтобы исключить их.

Встроенные методы. Эти методы используются для решения проблем, возникающих при использовании фильтров и методов-оболочек. Процесс выбора признаков происходит внутри самого алгоритма и классифицирует лучшие признаки, присутствующие в данных. Он также сочетает в себе преимущества обоих методов. У каждого алгоритма есть своя проблема оптимизации, которую необходимо решить, что помогает модели работать лучше. Эта задача оптимизации содержит гиперпараметры, которые помогают нам выбрать наилучшее подмножество функций. Например, у нас есть методы регуляризации (L1, L2, эластичная сеть), которые применяются к алгоритмам линейной и логистической регрессии, которые делают данные более разреженными и помогают нам удалить ненужные функции. Точно так же у нас есть разные гиперпараметры для разных алгоритмов, которые помогают нам выбирать лучшее подмножество функций и снижают вероятность переобучения.
Выбор функций в основном используется для уменьшения временной сложности выбора лучших функций.

Извлечение признаков: –

Извлечение признаков — это метод, который обычно выполняется экспертом в предметной области на основе бизнес-задачи. Требуется много знаний в предметной области для создания новых функций из существующих функций, которые помогают уменьшить количество измерений, а также положительно влияют на производительность модели.
Два основных метода извлечения функций:

  1. Линейный дискриминантный анализ (LDA)
  2. Анализ основных компонентов (PCA)
  3. Встраивание t-распределенных стохастических соседей (t-SNE)

Линейный дискриминантный анализ (LDA): –

Линейный дискриминантный анализ (LDA) — один из самых простых методов уменьшения размерности. LDA предполагает, что данные нормально распределены, если они не распределены нормально, нам необходимо стандартизировать и нормализовать данные перед моделированием.

Основная цель LDA — сократить n-мерные данные до меньшего количества измерений, сохранив при этом большую часть информации. Геометрическая интерпретация LDA значительно облегчит понимание стоящей за ней интуиции.

Рассмотрим данные с 2 функциями/размерами. График слева — это исходные данные, а график слева показывает представление данных в линейном измерении (ось Y). Здесь размерность данных уменьшается, но информация, присутствующая внутри данных, интерпретируется неправильно.

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

Чтобы быть точным, мы должны изменить ось и найти наиболее подходящую линию на основе двух критериев:

  • Увеличьте расстояние между двумя категориями.
  • Сведите к минимуму вариации внутри каждой категории.

Формула определяется как,

где μi — среднее значение категории i, Si — дисперсия категории i. Дисперсия объясняет нам, насколько разбросаны точки данных в каждой категории.
Наконец, мы хотим создать ось таким образом, чтобы максимизировать расстояние между средними значениями каждой категории и минимизировать вариацию между точками данных каждой категории.

Для данных с 3 или более измерениями/признаками мы находим центральную точку данных, находя среднее значение каждого признака. Затем мы создаем наиболее подходящую линию, которая разделяет категории. Хотя LDA не так полезен, как по сравнению с другими методами уменьшения размерности. У него есть свои недостатки, такие как предположения о том, что данные являются линейными, некоррелированными и что признаки принадлежат одному и тому же распределению. В таких случаях для уменьшения размерности используется недискриминационный анализ.

Анализ основных компонентов (АПК): –

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

Первое, что нам нужно проверить, — принадлежат ли все функции данных к одному и тому же масштабу или нет. Если они относятся к разным масштабам, нам нужно преобразовать данные перед масштабированием таким образом, чтобы все функции были в одном масштабе. Мы можем либо нормализовать, либо стандартизировать данные на основе базового распределения данных.
Нормализация означает изменение масштаба данных со значением между [0,1]. Он также известен как Min-Max Scaling. Здесь минимальное значение признака преобразуется в «0», а максимальное значение признака преобразуется в «1». Формула определяется следующим образом.

Стандартизация, с другой стороны, — это метод, при котором мы масштабируем данные таким образом, чтобы среднее значение и стандартное отклонение данных были равны «0» и «1» соответственно. Формула определяется следующим образом

Нормализация изменяет масштаб данных с разных масштабов на данные с небольшим интервалом, что означает, что все признаки имеют одинаковую шкалу и плохо обрабатывают выбросы. Принимая во внимание, что стандартизация хорошо справляется с выбросами и является предпочтительным методом масштабирования признаков по сравнению с нормализацией.
Нам не нужно беспокоиться о масштабировании признаков, когда мы используем алгоритмы, не основанные на расстоянии (Дерево решений, Случайный лес, Повышение градиента) для подбора модели, так как различные масштабы могут не оказывать существенного влияния на производительность модели.
С точки зрения методов масштабирования геометрических объектов, таких как стандартизация и нормализация, можно интерпретировать путем сдвига данных, помещая среднее значение данных поверх Происхождение. Сдвиг данных не влияет на то, как точки данных расположены относительно друг друга.

Теперь нам нужно подобрать линию, проходящую через начало координат. Статистически мы также можем вычислить ковариационные матрицы, чтобы найти линию, наиболее подходящую для данных. Для геометрической интерпретации нам нужно повернуть линию, чтобы найти наилучшую линию для данных, учитывая, что линия проходит через начало координат. Чтобы количественно оценить, насколько хорошо линия соответствует данным, нам нужно защитить данные на линии и измерить наилучшее соответствие на основе 2 критериев.
→ Линия минимизирует расстояние от данных до самой себя.
→ Линия, которая максимизирует расстояния от проецируемых точек до начала координат, т. е. дает максимальную дисперсию данных.

Как правило, предпочтительно найти линию, которая максимизирует расстояния от спроецированных точек до начала координат, т. е. линию, которая максимизирует дисперсию. Первая линия наилучшего соответствия с максимальной дисперсией называется «Первый основной компонент» (PC1). Здесь мы выполняем матричную декомпозицию по главному компоненту, так что в конечном итоге мы масштабируем его до единичного вектора. Нам нужно выполнить декомпозицию матрицы, чтобы получить правильное решение, поскольку проекция дисперсии увеличивается, когда она представлена ​​​​в векторной форме.
Этот единичный вектор главного компонента называется «Собственный вектор» и сумма квадратов расстояний называется «собственными значениями».

Теперь мы находим вторую линию наилучшего соответствия для данных, известную как PC2 (второй главный компонент). Нам нужно вычислить PC2 таким образом, чтобы он был перпендикулярен PC1, чтобы уменьшить мультиколлинеарность между признаками. Точно так же мы вычисляем другие главные компоненты, перпендикулярные его предыдущему компоненту.
Наконец, мы вычисляем вариацию каждого главного компонента с помощью собственных значений, что помогает определить пропорцию вариации каждого из них.

Когда мы объединим все основные компоненты, мы получим окончательный оптимизированный вектор признаков, на котором мы можем подобрать модель для прогнозирования выходных данных для данных более высокой размерности. PCA в основном улучшает исследовательский анализ данных, устраняет коллинеарность между функциями и уменьшает переоснащение модели за счет удаления избыточных и нерелевантных функций. У него также есть свои недостатки, такие как потеря информации, независимые функции становятся менее интерпретируемыми, а масштабирование функций становится обязательным. Кроме того, PCA — это линейный алгоритм, и он не сможет интерпретировать сложные отношения между признаками. С другой стороны, у нас есть t-SNE, который представляет собой нелинейный метод, основанный на распределении вероятностей, который более эффективно выполняет уменьшение размерности.

т-СНЭ:-

t-Distributed Stochastic Neighbor Embedded — это алгоритм машинного обучения, используемый для визуализации на основе Neighbor Embedded.
В отличие от PCA, это не линейная проекция данных на линию, он использует локальные отношения между точками для создания низкоразмерного отображение. Это позволяет фиксировать нелинейную структуру данных.
Он создает распределение вероятностей, используя распределение Гаусса, которое определяет отношение между точками в многомерном пространстве.
Он использует t-распределение Стьюдента для воссоздания распределение вероятностей в низкоразмерном пространстве. Это предотвращает переполнение проблемного пространства из-за «проклятия размерности». Он оптимизирует вложения напрямую, используя градиентный спуск. По сути, t-SNE сохраняет отношения между точками в более высоких измерениях и проецирует их на более низкие измерения.

Геометрически мы можем интерпретировать интуицию t-SNE следующим образом.

Давайте рассмотрим простой набор данных с 4 функциями, чтобы понять концепцию t-SNE. Эта базовая интерпретация простых данных помогает нам понять, как t-SNE работает с большими n-мерными наборами данных. Если мы посмотрим на рисунок выше, то сможем понять, что точки данных в каждой категории находятся на некотором расстоянии друг от друга.

Теперь, уменьшая размерность и проецируя данные на любую из осей, как мы это делали для PCA или LDA, мы получим неправильную проекцию данных, не сохраняющую исходную связь между ними. Эта проблема известна как скученность данных.

t-SNE с помощью t-распределения Стьюдента и методов градиентного спуска медленно приближается к этапу, на котором он проецирует данные более высокого измерения на более низкие измерения, сохраняя связь между ними. Градиентный спуск — это итеративный алгоритм оптимизации или функция потерь, которая приближается к цели, итеративно продвигаясь к минимальному значению ошибки.
Также сохранение взаимосвязи данных в основном означает, что, скажем, точка A находится в два раза дальше от B, в три раза от C. Теперь t-SNE помогает сохранить взаимосвязь между ними, что, в свою очередь, помогает в интерпретации особенностей при моделировании.
t-SNE справляется с нелинейностью намного эффективнее, чем любой другой метод уменьшения размерности, а также сохраняет информацию внутри данных. Точно так же он сложен в вычислительном отношении, требует настройки параметров для получения желаемого результата и генерирует зашумленные шаблоны.

Извлечение признаков наиболее широко используется, поскольку оно решает всевозможные проблемы при подгонке модели, хотя это и занимает много времени.
Итак, все дело в уменьшении размерности и его важности при работе с огромным объемом данных.

Использованная литература:



https://omarshehata.github.io/lda-explorable/ — Пробовал реализовать интерактивные графики LDA, но не смог. Надеюсь, постараюсь реализовать это в следующем блоге.

https://www.youtube.com/user/joshstarmer