Люди - визуальные существа. Нам нужно видеть, чтобы верить. Когда у вас есть набор данных с более чем тремя измерениями, становится невозможно увидеть, что происходит нашими глазами. Но кто сказал, что эти дополнительные измерения действительно необходимы? Разве нет способа как-то уменьшить это до одного, двух или трех человеческих измерений? Оказывается, есть.

Одним из таких методов является анализ главных компонентов (PCA). Это просто и элегантно. К сожалению, просто не значит легко увидеть и по-настоящему понять, что происходит. Если вы читали об этом раньше, вы могли столкнуться с полностью математическим и абстрактным подходом, не имеющим интуитивного представления о его значении. Или это могло быть объяснено «в стиле непрофессионала» без каких-либо математических оснований. Или, может быть, понемногу и того, и другого, с концептуальным пробелом посередине, который не связывает интуицию с строгостью. Я постараюсь этого избежать.

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

Избавление от ненужного

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

Этот набор данных имеет 4 характеристики (4 измерения) и не может быть визуализирован графически в целом. Однако, если вы внимательно изучите взаимосвязь функций друг с другом и между собой, вы заметите, что не все функции одинаково важны.

Например, можете ли вы охарактеризовать каждый дом по количеству этажей? Помогает ли этажность отличить один дом от другого? Это не так, поскольку они почти равны, то есть имеют низкую дисперсию, а именно σ² = 0,2, и поэтому не очень полезны. А как насчет домашних хозяйств? Он не сильно различается, но его разброс определенно превышает количество этажей (σ² = 28), и поэтому он более полезен. Теперь, что касается последних двух характеристик, площади (σ² = 43) и значения (σ² = 127), они различаются гораздо больше, и, следовательно, они более репрезентативны, чем две другие наши данные.

Но есть кое-что, что мы можем сделать, чтобы максимально использовать каждую функцию без ущерба для точности. Пока что мы изучали каждую функцию индивидуально. А как насчет их отношения друг к другу? Если вы внимательно посмотрите на первые две функции, значение и площадь, вы заметите, что значение примерно вдвое больше площади. Это невероятно полезно, потому что теперь мы можем вывести одну функцию из другой, и нам нужна только одна функция вместо двух. Это свойство называется ковариацией. Чем выше ковариация, тем больше корреляции между двумя характеристиками, что подразумевает избыточность данных, поскольку информации больше, чем необходимо, потому что мы можем вывести одну характеристику из другой.

Из предыдущего обсуждения должно быть очевидно, что:

  • Хорошо иметь функции с высокой дисперсией, поскольку они будут более информативными и более важными.
  • плохо иметь сильно коррелированные признаки или высокую ковариацию, поскольку они могут быть выведены друг из друга с небольшой потерей информации, и, таким образом, хранить их вместе излишне.

И это как раз то, что делает PCA. Он пытается найти другое представление данных (другой набор функций), чтобы функции в этом представлении имели максимально возможную дисперсию и самую низкую возможную ковариацию. Но сейчас в этом не должно быть смысла, пока мы не увидим это своими глазами ...

Покажи мне магию

В интервью PCA я задал ей следующий вопрос: «Как выглядит ваш идеальный набор данных?» Она показала мне это:

И это имеет смысл - данные можно по сути свести к одной строке. Обратите внимание: отклонение в направлении x 1 очень велико по сравнению с направлением x 2, что означает, что мы можем безопасно отбросить объекты x 2 без особого ущерба (говоря «отклонение вдоль x 1 направления», я имею в виду дисперсию первого объекта, поскольку мы решили представить его с помощью x 1-ось, то же самое для x 2). Более того, x 1, похоже, вообще не зависит от x 2, он просто продолжает увеличиваться независимо от значения x 2, что подразумевает относительно низкую ковариацию. Теперь что касается того, почему это на самом деле идеально подходит для PCA, это просто потому, что все, что ей нужно сделать, это следующее:

Очень важно понять, что произошло. Поскольку x 1 гораздо важнее, чем x 2 (согласно двум критериям, указанным ранее), мы решили оставить только x 1, путем проецирования точек данных на свою ось, что эквивалентно сохранению только координаты x 1 точек, что также эквивалентно отбрасыванию «неважной» функции x 2. И теперь у нас есть 1D набор данных вместо 2D!

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

Сюжет сгущается

«Так что насчет вашего не очень идеального набора данных? Как это выглядит?" Я спросил PCA. Не долго думая, она сказала: «Я действительно не верю, что такое существует, понимаете. Все идеальны, вам нужно только изменить свою точку зрения. Вот, взгляни на это ».

«Не так просто, как раньше, не правда ли? Неа. Наклони голову », - сказала она.

«На самом деле это тот же« идеальный »набор данных, который я показывал вам ранее, только повернутый на 45 градусов. Все, что нам нужно сделать, это повернуть наши собственные оси, чтобы выровнять их с набором данных, и действовать, как прежде: проецировать на новую ось x 1 и опустить новую ось x 2. ”

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

Как это произошло? По сути, PCA пытается найти другой набор осей, чтобы отклонение по этой оси было как можно большим. Когда я сказал «отклонение по оси x 1», я имел в виду дисперсию признака x 1. Но после поворота наших осей оси потеряли свое значение - они больше не представляют x 1 или x 2. Скорее, они представляют собой линейную комбинацию того и другого. Чтобы увидеть, как это происходит, обратите внимание, что новая ось x 1 на приведенном выше рисунке представляет собой линию, которая удовлетворяет уравнению: x 2 = x 1 или x 1- x 2 = 0 (по отношению к осям старых элементов). И x 1- x 2 = 0 - это не что иное, как линейная комбинация функций, каждая из которых весит 1 и -1. Эта повернутая ось теперь представляет новую функцию, назовите ее z 1, то есть:

Аналогичным образом, повернутая ось x 2 теперь представляет новую функцию, назовите ее z 2:

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

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

Легко увидеть, как это можно обобщить более чем на два измерения. Вместо проецирования на линии мы проецируем на плоскости, и наш идеальный набор данных в 3D теперь лежит приблизительно на плоскости (или, может быть, даже лучше, на линии):

Волшебные линии и где их найти

Теперь самое главное: как найти эти основные компоненты?

Я оставлю это дело до следующей части, где мы разработаем эту основную формулу:

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