Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

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

Почему имеет смысл уделить повышенное внимание к формуле Приводим уравнение линейной регрессии в матричный вид?

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

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

Исходные условия

Целевые показатели

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

Регрессоры

Будем считать, что существуют факторы, которые в определенной степени объясняют значения целевого показателя. Например, на курс пары доллар/рубль сильное влияние оказывает цена на нефть, ставка ФРС и др. Такие факторы называются регрессорами. При этом, каждому значению целевого показателя должно соответствовать значение регрессора, то есть, если у нас имеется 12 целевых показателей за каждый месяц в 2018 году, то и значений регрессоров у нас тоже должно быть 12 за тот же период. Обозначим значения каждого регрессора через Приводим уравнение линейной регрессии в матричный вид. Пусть в нашем случае имеется Приводим уравнение линейной регрессии в матричный вид регрессоров (т.е. Приводим уравнение линейной регрессии в матричный вид факторов, которые оказывают влияние на значения целевого показателя). Значит наши регрессоры можно представить следующим образом: для 1-го регрессора (например, цена на нефть): Приводим уравнение линейной регрессии в матричный вид, для 2-го регрессора (например, ставка ФРС): Приводим уравнение линейной регрессии в матричный вид, для «Приводим уравнение линейной регрессии в матричный вид-го» регрессора: Приводим уравнение линейной регрессии в матричный вид

Зависимость целевых показателей от регрессоров

Предположим, что зависимость целевого показателя Приводим уравнение линейной регрессии в матричный вид от регрессоров «Приводим уравнение линейной регрессии в матричный вид-го» наблюдения может быть выражена через уравнение линейной регрессии вида:

Приводим уравнение линейной регрессии в матричный вид

, где Приводим уравнение линейной регрессии в матричный вид — «Приводим уравнение линейной регрессии в матричный вид-ое» значение регрессора от 1 до Приводим уравнение линейной регрессии в матричный вид,

Приводим уравнение линейной регрессии в матричный вид — количество регрессоров от 1 до Приводим уравнение линейной регрессии в матричный вид

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

Другими словами, мы для каждого (за исключением Приводим уравнение линейной регрессии в матричный вид) регрессора определяем «свой» коэффициент Приводим уравнение линейной регрессии в матричный вид, затем перемножаем коэффициенты на значения регрессоров «Приводим уравнение линейной регрессии в матричный вид-го» наблюдения, в результате получаем некое приближение «Приводим уравнение линейной регрессии в матричный вид-го» целевого показателя.

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

Оценка качества апроксиммирующей функции

Будем определять оценку качества апроксимирующей функции методом наименьших квадратов. Функция оценки качества в таком случае примет следующий вид:

Приводим уравнение линейной регрессии в матричный вид

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

Переводим уравнение в матричный вид

Векторное представление

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

Теперь, на некоторое время, с целью упрощения материала, предположим, что у нас только одно «Приводим уравнение линейной регрессии в матричный вид-ое» наблюдение. Тогда, представим значения регрессоров «Приводим уравнение линейной регрессии в матричный вид-ого» наблюдения в качестве вектора Приводим уравнение линейной регрессии в матричный вид. Вектор Приводим уравнение линейной регрессии в матричный вид имеет размерность Приводим уравнение линейной регрессии в матричный вид, то есть Приводим уравнение линейной регрессии в матричный вид строк и 1 столбец:

Приводим уравнение линейной регрессии в матричный вид

Искомые коэффициенты представим в виде вектора Приводим уравнение линейной регрессии в матричный вид, имеющего размерность Приводим уравнение линейной регрессии в матричный вид:

Приводим уравнение линейной регрессии в матричный вид

Уравнение линейной регрессии для «Приводим уравнение линейной регрессии в матричный вид-го» наблюдения примет вид:

Приводим уравнение линейной регрессии в матричный вид

Функция оценки качества линейной модели примет вид:

Приводим уравнение линейной регрессии в матричный вид

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

Матричное представление

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

Приводим уравнение линейной регрессии в матричный вид

Теперь уравнение линейной регрессии примет вид:

Приводим уравнение линейной регрессии в матричный вид

Обозначим значения целевых показателей (все Приводим уравнение линейной регрессии в матричный вид) за вектор Приводим уравнение линейной регрессии в матричный вид размерностью Приводим уравнение линейной регрессии в матричный вид:

Приводим уравнение линейной регрессии в матричный вид

Теперь мы можем записать в матричном формате уравнение оценки качества линейной модели:

Приводим уравнение линейной регрессии в матричный вид

Собственно, из этой формулы далее получают известную нам формулу Приводим уравнение линейной регрессии в матричный вид

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

Матричные преобразования

Раскроем скобки

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Подготовим уравнение для дифференцирования

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

Преобразование 1

Приводим уравнение линейной регрессии в матричный вид

Как это получилось? Для ответа на этот вопрос достаточно посмотреть на размеры умножаемых матриц и увидеть, что на выходе мы получаем число или иначе Приводим уравнение линейной регрессии в матричный вид.

Запишем размеры матричных выражений.

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Преобразование 2

Приводим уравнение линейной регрессии в матричный вид

Распишем аналогично преобразованию 1

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

На выходе получаем уравнение, которое нам предстоит продифференцировать:
Приводим уравнение линейной регрессии в матричный вид

Дифференцируем функцию оценки качества модели

Продифференцируем по вектору Приводим уравнение линейной регрессии в матричный вид:

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

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

Дифференцирование 1

Раскроем дифференцирование: Приводим уравнение линейной регрессии в матричный вид

Для того, чтобы определить производную от матрицы или вектора требуется посмотреть, что у них там внутри. Смотрим:

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид Приводим уравнение линейной регрессии в матричный вид

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

Приводим уравнение линейной регрессии в матричный вид

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

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

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

1) продифференцируем по Приводим уравнение линейной регрессии в матричный вид, получим: Приводим уравнение линейной регрессии в матричный вид

2) продифференцируем по Приводим уравнение линейной регрессии в матричный вид, получим: Приводим уравнение линейной регрессии в матричный вид

3) продифференцируем по Приводим уравнение линейной регрессии в матричный вид, получим: Приводим уравнение линейной регрессии в матричный вид

На выходе — обещанный вектор размером Приводим уравнение линейной регрессии в матричный вид:

Приводим уравнение линейной регрессии в матричный вид

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

Приводим уравнение линейной регрессии в матричный вид

Вынесем вектор Приводим уравнение линейной регрессии в матричный вид и на выходе получим:

Приводим уравнение линейной регрессии в матричный вид

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

Приводим уравнение линейной регрессии в матричный вид

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

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

Приводим уравнение линейной регрессии в матричный вид

Итак, с первым дифференцированием мы справились. Переходим ко второму выражению.

Дифференцирование 2

Приводим уравнение линейной регрессии в матричный вид

Пойдем по протоптанной дорожке. Она будет намного короче предыдущей, так что не уходите далеко от экрана.

Раскроем поэлементно вектора и матрицу:

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

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

Приводим уравнение линейной регрессии в матричный вид

Выполним следующее действие — умножим вектор Приводим уравнение линейной регрессии в матричный вид на полученный вектор. На выходе нас будет ждать число:

Приводим уравнение линейной регрессии в матричный вид

Его то мы и продифференцируем. На выходе получим вектор размерности Приводим уравнение линейной регрессии в матричный вид:

Приводим уравнение линейной регрессии в матричный вид

Что-то напоминает? Все верно! Это произведение матрицы Приводим уравнение линейной регрессии в матричный вид на вектор Приводим уравнение линейной регрессии в матричный вид.

Таким образом, второе дифференцирование успешно завершено.

Вместо заключения

Теперь мы знаем, как получилось равенство Приводим уравнение линейной регрессии в матричный вид.

Напоследок опишем быстрый путь преобразований основных формул.

Оценим качество модели в соответствии с методом наименьших квадратов:
Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Дифференцируем полученное выражение:
Приводим уравнение линейной регрессии в матричный вид Приводим уравнение линейной регрессии в матричный вид

Приводим уравнение линейной регрессии в матричный вид

Литература

Интернет источники:

1) habr.com/ru/post/278513
2) habr.com/ru/company/ods/blog/322076
3) habr.com/ru/post/307004
4) nabatchikov.com/blog/view/matrix_der

Учебники, сборники задач:

1) Конспект лекций по высшей математике: полный курс / Д.Т. Письменный – 4-е изд. – М.: Айрис-пресс, 2006
2) Прикладной регрессионный анализ / Н. Дрейпер, Г. Смит – 2-е изд. – М.: Финансы и статистика, 1986 (перевод с английского)
3) Задачи на решение матричных уравнений:
function-x.ru/matrix_equations.html
mathprofi.ru/deistviya_s_matricami.html


Источник: habr.com

Добавить комментарий