Очистка данных и извлечение признаков для машинного обучения

машинное обучение искусственный интеллект анализ данных Тенсент

Приветствую всех вОблачное сообщество Tencent, получить больше крупной технической практики Tencent по галантерее ~

автор:Ван Исюн

Введение:В этой статье подробно объясняется метод PCA, который часто используется при очистке данных и извлечении признаков, в машинном обучении, и анализируется с трех уровней: теории, данных и кода.


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

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

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

1. Предварительная обработка: данные обрабатываются в некоторые значимые функции.Цель этого шага в основном состоит в том, чтобы уменьшить размерность.

2. Моделирование: эта часть в основном предназначена для построения модели (обычно подгонки кривой) для построения возможных границ классификатора.

3. Обработка классификатора: классифицируйте данные в соответствии с моделью и предскажите вывод данных.

В этой статье в основном рассказывается о предварительной обработке данных (уменьшение размерности), и здесь используется метод PCA.

Личностно-теоретический анализ PCA:

Предположим, что есть система управления информацией о студентах, в которой необходимо хранить поле пола, у нас может быть два поля M и F в базе данных, и мы можем использовать 1 и 0 для представления да и нет соответственно. Если это студент мужского пола, M указывается как 1, а F указывается как 0. Когда это девочка, M указывается как 0, а F указывается как 1. Мы обнаруживаем, что для любой записи, когда M равно 1, F должно быть равно 0, и наоборот. Следовательно, в реальном процессе мы не потеряем никакой информации, удалив столбец M или столбец F, потому что мы можем изменить вывод. В этом случае коэффициент корреляции столбцов M и F самый высокий, который составляет 100%.

Другой пример: Сяо Мин открыл магазин и каждый день подсчитывал количество посещений V и объем транзакций D своего магазина. Можно обнаружить, что чем больше V, тем обычно больше D. Когда D низкий, V обычно низкий. Можно догадаться, что V и D имеют неизбежную связь, но абсолютной связи нет. В настоящее время, если Сяо Мин хочет измерить значение этого дня в соответствии с V и D, он часто может рассчитать коэффициент корреляции V и D на основе некоторых исторических данных. Если коэффициент корреляции больше 80%, то вы можете взять любой из VD для измерения ценности дня. Этим достигается эффект уменьшения размерности.

Конечно, уменьшение размерности не ограничивается выбором 1-мерных [V] в качестве собственных значений, например, в 2-мерных данных [V, D], может быть в случае V+D, так что [V , D] Коэффициент корреляции самый большой.

Но мышление PCA такое. Проще говоря: если есть x1, x2, x3...xn-мерные данные, мы хотим уменьшить данные до m-мерных, мы можем вычислить m-мерные данные, связанные с x1...xn на основе n-мерные исторические данные, так что эти m-мерные данные Коэффициент корреляции данных к историческим данным максимален.

Математический анализ

Предположим, у нас есть набор двумерных данных

Если нам нужно использовать одно измерение для представления этих данных, но мы хотим максимально сохранить исходную информацию, как вы выберете?

На самом деле проблема состоит в том, чтобы выбрать направление в двумерной плоскости, спроецировать все данные на линию в этом направлении и использовать спроецированное значение для представления исходной записи. Это реальная задача от 2D до 1D.

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

Возьмем приведенный выше рисунок в качестве примера.Можно увидеть, что если вы проецируете на ось X, две крайние левые точки будут перекрываться, а две средние точки будут перекрываться, поэтому проецируются четыре разные двумерные точки. осталось только два различных значения, что является серьезной потерей информации. Точно так же, если все три точки в середине проекции на ось Y перекрываются, эффект ухудшается. Таким образом, кажется, что ни ось x, ни y не являются лучшим выбором для проецирования. Интуитивно, если вы проецируете на наклонную линию, проходящую через первый и третий квадранты, пять точек все еще можно различить после проецирования.

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

Обычно для облегчения вычислений мы вычитаем среднее значение из каждой точки, так что среднее значение полученных точек будет равно 0. Этот процесс называется нормализацией. После нормализации:

Таким образом, приведенная выше задача формализуется как: найти базис, чтобы после преобразования всех данных в координатное представление на этом базисе значение дисперсии было наибольшим.

Мы сейчас выпрыгиваем из примера, потому что только что сделанный вывод легко обобщить на любую широту. Требуется базис u, соответствующий максимальной дисперсии проецируемой точки.В настоящее время существует два метода решения:

метод первый:

Предположим, что имеется проекция A:

Очевидно, только что упомянутую дисперсию V можно использовать для представления:

а проекция A = исходные данные X.U;

Эта дисперсия может быть выражена как:

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

L(u, λ) равно:

Вывести L':

Пусть производная равна 0:

Таким образом, задача преобразуется в поиск собственных значений и собственных векторов X.XT, и задача решается.

В то же время мы можем знать, что есть много собственных значений и собственных векторов, Когда λ является наибольшим, соответствующий собственный вектор называется вектором главной компоненты. Если вам нужно уменьшить размерность m до n, вам нужно только перейти к собственным векторам, соответствующим первым n наибольшим собственным значениям.

Способ второй:

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

Это имеет:

На данный момент наша идея очень ясна: свести набор N-мерных векторов к K-мерному (K больше 0, меньше N), и цель состоит в том, чтобы выбрать K единиц (по модулю 1) ортонормированного базиса, поэтому что исходные данные могут быть преобразованы в этот набор. После базиса ковариация между каждым полем равна 0, а дисперсия самого поля максимально велика.

Или предположим, что наши исходные данные равны A

мы делаем процессA.ATполучить:

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

Сначала поговорим об априорных знаниях:

В линейной алгебре мы можем знать, что собственные векторы, соответствующие разным собственным значениям реальной симметричной матрицы, должны быть ортогональны. Для вещественной симметричной матрицы с n строками и n столбцами необходимо найти n единичных ортогональных собственных векторов, пусть это n собственных векторов e1, e2, ⋯, en.

Форма, объединенная в матрицу, выглядит следующим образом:

Новый вывод из приведенного выше вывода состоит в том, что для реальной симметричной матрицы A ее матрица собственных векторов равна E, что должно удовлетворять:

С этим предварительным знанием мы предполагаем исходные данные A, базу U и прогнозируемые данные Y. Тогда есть Y=UA. В соответствии с вышеизложенным, если проектируемая матрица YY.YTдиагональная матрица, то имеем:

еслиY.YTявляется диагональной матрицей, то необходимо только, чтобы U былоA.ATСобственный вектор , то задача окончательно преобразуется в поиск AATсобственные векторы .

Код:

Я только что упомянул две идеи расчета PCA.Давайте кратко рассмотрим реализацию кода.Поскольку у Matlab есть собственная функция для поиска собственных векторов, мы используем Matlab для моделирования здесь.

Давайте попробуем это с тестовыми данными:

Когда мы сохраняем только компонент 0,5, newA уменьшается с 3 измерений до 1 измерения, и точность при восстановлении будет немного хуже.

Когда мы сохраняем компонент 0,9, newA уменьшается с 3-мерного до 2-мерного, а когда выполняется сокращение, степень уменьшения немного лучше.

Когда мы сохраняем компонент 0,97, уменьшение размерности невозможно. На данный момент вы можете восстановить 100%.

в заключении:

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

Связанное Чтение

Эта статья была разрешена автором для публикации в сообществе Tencent Cloud Technology Community, укажите это при перепечатке.первоисточник