Что такое уменьшение размерности? Обзор и популярные методы
Машинное обучение — дело непростое. Хорошо, это мягко сказано. Искусственный интеллект и машинное обучение представляют собой большой шаг вперед в том, чтобы заставить компьютеры думать как люди, но освоить обе концепции непросто. К счастью, результат стоит затраченных усилий.
Сегодня мы занимаемся процессом уменьшения размерности — анализом главных компонентов машинного обучения. Мы рассмотрим его определение, почему это важно, как это сделать, и предоставим вам соответствующий пример, чтобы прояснить концепцию.
Как только вы закончите, вы получите четкое представление о уменьшении размерности, что может пригодиться во время собеседования. Вы также узнаете, как с большей уверенностью и точностью отвечать на вопросы собеседований по глубокому обучению или вопросам машинного обучения.
Что такое уменьшение размерности
Прежде чем мы дадим четкое определение уменьшения размерности, нам сначала необходимо понять размерность. Если у вас слишком много входных переменных, производительность алгоритма машинного обучения может ухудшиться. Предположим, вы используете строки и столбцы, подобные тем, которые обычно встречаются в электронной таблице, для представления данных ML. В этом случае столбцы становятся входными переменными (также называемыми функциями), передаваемыми в модель, прогнозирующую целевую переменную.
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Кроме того, мы можем рассматривать столбцы данных как измерения в n-мерном пространстве объектов, а строки данных — это точки, расположенные в этом пространстве. Этот процесс известен как геометрическая интерпретация набора данных.
К сожалению, если в пространстве признаков находится много измерений, это приводит к увеличению объема пространства. Следовательно, точки в пространстве и строки данных могут представлять собой лишь крошечную, нерепрезентативную выборку. Этот дисбаланс может негативно повлиять на производительность алгоритма машинного обучения. Это состояние известно как «проклятие размерности». Суть в том, что набор данных с обширными входными функциями усложняет задачу прогнозного моделирования, подвергая риску производительность и точность.
Вот пример, который поможет визуализировать проблему. Предположим, вы прошли по прямой 50 ярдов и где-то на этом пути уронили четверть. Вероятно, вы быстро найдете его. Но теперь предположим, что ваша зона поиска занимает квадрат 50 на 50 ярдов. Теперь ваши поиски займут дни! Но мы еще не закончили. Теперь превратите область поиска в куб размером 50 на 50 на 50 ярдов. Возможно, вы захотите попрощаться с этим кварталом! Чем больше измерений задействовано, тем сложнее и дольше поиск.
Как снять проклятие размерности? Уменьшая количество входных объектов, тем самым уменьшая количество измерений в пространстве признаков. Отсюда и «уменьшение размерности».
Короче говоря, уменьшение размерности означает уменьшение размерности вашего набора функций.
Почему уменьшение размерности важно
Уменьшение размерности дает много преимуществ вашим данным машинного обучения, в том числе:
- Меньше функций означает меньшую сложность
- Вам понадобится меньше места для хранения, поскольку у вас меньше данных.
- Меньшее количество функций требует меньше времени вычислений
- Точность модели повышается благодаря меньшему количеству вводящих в заблуждение данных.
- Алгоритмы обучаются быстрее благодаря меньшему количеству данных
- Уменьшение размеров объектов набора данных помогает быстрее визуализировать данные.
- Удаляет шум и лишние функции.
Преимущества уменьшения размерности
Для инженеров искусственного интеллекта или специалистов по данным, работающих с огромными наборами данных, выполняющих визуализацию данных и анализирующих сложные данные, уменьшение размерности полезно.
- Это способствует сжатию данных, в результате чего требуется меньше места для хранения.
- Это ускоряет расчет.
- Это также помогает удалить любые посторонние функции.
Недостатки уменьшения размерности
- Мы потеряли некоторые данные в процессе уменьшения размерности, что может повлиять на эффективность работы будущих алгоритмов обучения.
- Возможно, потребуется много вычислительной мощности.
- Интерпретация преобразованных характеристик может оказаться сложной задачей.
- В результате независимые переменные становятся труднее понять.
Уменьшение размерности в прогнозном моделировании
Для иллюстрации уменьшения размерности можно использовать простой вопрос классификации электронной почты, когда мы должны определить, является ли письмо спамом. Это может охватывать широкий спектр характеристик, в том числе использование в электронном письме шаблона, его содержание, наличие общей темы и т. д.
Тем не менее некоторые из этих характеристик могут частично совпадать. В другом случае, из-за сильной корреляции между ними, проблему классификации, которая зависит от количества осадков и влажности, можно свести к одной основной характеристике. В результате мы можем уменьшить количество функций в этих выпусках. Задачу трехмерной классификации может быть сложно представить, в отличие от двухмерных и одномерных задач, которые можно перевести в простое двумерное пространство. Эта идея показана на изображении ниже, где трехмерное пространство объектов разделено на два двухмерных пространства объектов. Если позже окажется, что два пространства объектов связаны, возможно дальнейшее сокращение функций.
Методы и подходы уменьшения размерности
Итак, теперь, когда мы установили, насколько уменьшение размерности приносит пользу машинному обучению, какой метод лучше всего это сделать? Мы перечислили основные подходы, которые вы можете использовать, подразделив их на различные способы. Эта серия подходов и методов также известна как алгоритмы уменьшения размерности.
Выбор признаков — это средство выбора оптимальных, релевантных признаков набора входных данных и удаления ненужных признаков.
- Методы фильтрации. Этот метод фильтрует набор данных в соответствующее подмножество.
- Методы оболочки. Этот метод использует модель машинного обучения для оценки производительности введенных в нее функций. Производительность определяет, лучше ли сохранить или удалить функции для повышения точности модели. Этот метод более точен, чем фильтрация, но и более сложен.
- Встроенные методы. Встроенный процесс проверяет различные итерации обучения модели машинного обучения и оценивает важность каждой функции.
Этот метод преобразует пространство, содержащее слишком много измерений, в пространство с меньшим количеством измерений. Этот процесс полезен для сохранения всей информации при использовании меньшего количества ресурсов при ее обработке. Вот три наиболее распространенных метода извлечения.
- Линейный дискриминантный анализ. LDA обычно используется для уменьшения размерности непрерывных данных. LDA вращает и проецирует данные в направлении увеличения дисперсии. Признаки с максимальной дисперсией называются главными компонентами.
- Ядро PCA. Этот процесс представляет собой нелинейное расширение PCA, которое работает для более сложных структур, которые невозможно представить в линейном подпространстве простым и подходящим образом. KPCA использует «трюк ядра» для построения нелинейных отображений.
- Квадратичный дискриминантный анализ. Этот метод проецирует данные таким образом, чтобы максимизировать разделение классов. В проекции примеры из одного класса располагаются близко друг к другу, а примеры из разных классов — дальше друг от друга.
Методы уменьшения размерности
Вот некоторые методы, которые используют профессионалы машинного обучения.
Анализ главных компонентов.
Анализ главных компонентов, или PCA, — это метод уменьшения количества измерений в больших наборах данных путем сжатия большого набора переменных в меньший набор, который сохраняет большую часть информации из большого набора.
Поскольку алгоритмы машинного обучения могут анализировать данные гораздо быстрее и эффективнее с меньшими наборами информации, поскольку требуется оценивать меньше ненужных факторов, точность неизбежно должна страдать по мере уменьшения переменных набора данных. Однако решение проблемы уменьшения размерности состоит в том, чтобы пожертвовать некоторой точностью ради простоты. В заключение, PCA стремится сохранить как можно больше информации, минимизируя при этом количество переменных в наборе данных.
Устранение обратной функции.
Обратное исключение помогает модели работать лучше, начиная со всех характеристик и удаляя наименее важные из них за раз. Мы продолжаем делать это до тех пор, пока не увидим никаких улучшений после удаления функций.
- Изначально следует использовать все переменные модели.
- Отбросьте наименее ценную переменную (на основе, например, наименьшей потери точности модели), а затем продолжайте до тех пор, пока не будет выполнен определенный набор требований.
Прямой выбор функции.
Подход прямого выбора начинается с отсутствия признаков в наборе данных и представляет собой итеративную процедуру. Функции вводятся на каждой итерации для улучшения функциональности модели. Функциональные возможности сохраняются при повышении производительности. Функции, которые не улучшают результаты, удаляются. Процедура проводится до тех пор, пока улучшение модели не застопорится.
Рассмотрите возможность получения набора данных. Что на первом месте? Естественно, вам захочется изучить данные, прежде чем разрабатывать модель. При изучении данных вы обнаруживаете, что в вашем наборе данных отсутствуют значения. Что дальше? Вы будете искать причину этих пропущенных значений, прежде чем пытаться их приписать или полностью удалить переменные с пропущенными значениями.
Что делать, если недостающих данных слишком много, предположим, что их больше 50%. Следует ли удалить переменную или вставить недостающие значения? Учитывая, что переменная не будет содержать много данных, мы бы хотели ее удалить. Однако это не данность. Мы можем установить пороговое число, и если доля отсутствующих данных какой-либо переменной превышает этот уровень, нам нужно будет удалить эту переменную.
Как и метод коэффициента пропущенных значений, фильтр низкой дисперсии работает с пороговым значением. Однако в данном случае тестируются столбцы данных. Метод вычисляет дисперсию каждой переменной. Все столбцы данных с отклонениями ниже порогового значения удаляются, поскольку функции с низкой дисперсией не влияют на целевую переменную.
Этот метод применяется к двум переменным, несущим одну и ту же информацию, что потенциально ухудшает модель. В этом методе мы выявляем переменные с высокой корреляцией и используем коэффициент инфляции дисперсии (VIF), чтобы выбрать одну из них. Вы можете удалить переменные с более высоким значением (VIF > 5).
Деревья решений — это популярный алгоритм обучения с учителем, который разбивает данные на однородные наборы на основе входных переменных. Этот подход решает такие проблемы, как выбросы данных, пропущенные значения и выявление значимых переменных.
Этот метод похож на стратегию дерева решений. Однако в этом случае мы генерируем большой набор деревьев (следовательно, «лес») для целевой переменной. Затем мы находим подмножества функций с помощью статистики использования каждого атрибута.
Допустим, у нас есть две переменные: образование и доход. Учитывая, что люди с более высоким уровнем образования также, как правило, имеют гораздо более высокие доходы, между этими факторами может существовать сильная связь.
Метод факторного анализа классифицирует переменные на основе их корреляций; следовательно, все переменные в одной категории будут иметь сильную корреляцию между собой, но лишь слабую связь с факторами другой группы(ов). Здесь каждая группа называется фактором. Этих переменных немного по сравнению с исходными размерами данных. Однако эти элементы трудно наблюдать.
Пример уменьшения размерности
Вот пример уменьшения размерности с использованием упомянутого ранее метода PCA. Вы хотите классифицировать базу данных, полную электронных писем, на «не спам» и «спам». Для этого вы создаете математическое представление каждого электронного письма в виде вектора «мешка слов». Каждая позиция в этом двоичном векторе соответствует слову алфавита. Для любого отдельного электронного письма каждая запись в векторе набора слов представляет собой количество раз, которое соответствующее слово появляется в электронном письме (с нулем, что означает, что оно не появляется вообще).
Теперь предположим, что вы создали набор слов из каждого электронного письма, предоставив вам образец векторов набора слов x1…xm. Однако не все измерения вектора (слова) полезны для классификации спам/не спам. Например, такие слова, как «кредит», «выгодная сделка», «предложение» и «распродажа», лучше подходят для классификации спама, чем «небо», «обувь» или «рыба». Здесь на помощь приходит PCA.
Вам следует построить ковариационную матрицу размера m на m из вашей выборки и вычислить ее собственные векторы и собственные значения. Затем отсортируйте полученные числа в порядке убывания и выберите p верхних собственных значений. Применяя PCA к выборке векторов, вы проецируете их на собственные векторы, соответствующие верхним собственным значениям p. Ваши выходные данные теперь представляют собой проекцию исходных данных на собственные векторы p. Таким образом, прогнозируемая размерность данных была уменьшена до p.
После того, как вы вычислили низкоразмерные проекции PCA вектора «мешка слов», вы можете использовать проекцию с различными алгоритмами классификации для классификации электронных писем вместо использования исходных электронных писем. Прогнозы меньше исходных данных, поэтому дела идут быстрее.
Узнайте об искусственном интеллекте
Об искусственном интеллекте можно многое узнать, особенно если вы хотите сделать карьеру в этой области. К счастью, у Simplilearn есть ресурсы, которые помогут вам освоиться. Курс искусственного интеллекта, проводимый в сотрудничестве с IBM, включает в себя эксклюзивные хакатоны IBM, мастер-классы и сеансы «Спросите меня о чем угодно». Этот сертификационный курс по искусственному интеллекту поможет вам освоить такие ключевые понятия, как наука о данных с помощью Python, машинное обучение, глубокое обучение и НЛП. Вы будете готовы к работе с искусственным интеллектом с помощью живых занятий, практических лабораторий и проектов.
В Simplilearn также есть другие ресурсы, связанные с карьерой в области науки о данных, такие как вопросы для собеседований по науке о данных, которые помогут вам освежить в памяти лучшие ответы на этот сложный аспект процесса подачи заявления.
Стеклянная дверь сообщает, что инженеры искусственного интеллекта в США зарабатывают в среднем 117 044 долларов США в год. В соответствии с Шкала заработной платыИнженеры искусственного интеллекта в Индии зарабатывают в среднем 1 551 046 фунтов стерлингов в год.
Итак, если вы ищете передовую карьеру, которая одновременно бросает вам вызов и вознаграждает вас, дайте миру искусственного интеллекта шанс. Когда вы это сделаете, позвольте Simplilearn стать вашим партнером в достижении ваших новых карьерных целей!
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)