Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Цель статьи — оказание поддержки начинающим датасайнтистам. В bài viết trước мы на пальцах разобрали три способа решения уравнения линейной регрессии: аналитическое решение, градиентный спуск, стохастический градиентный спуск. Тогда для аналитического решения мы применили формулу Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. В этой статье, как следует из заголовка, мы обоснуем применение данной формулы или другими словами, самостоятельно ее выведем.

Почему имеет смысл уделить повышенное внимание к формуле Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận?

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

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

Điều kiện ban đầu

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

У нас имеется ряд значений целевого показателя. Например, целевым показателем может быть цена на какой-либо актив: нефть, золото, пшеница, доллар и т.д. При этом, под рядом значений целевого показателя мы понимаем количество наблюдений. Такими наблюдениями могут быть, например, ежемесячные цены на нефть за год, то есть у нас будет 12 значений целевого показателя. Начнем вводить обозначения. Обозначим каждое значение целевого показателя как Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Всего мы имеем Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận наблюдений, а значит можно представить наши наблюдения как Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận.

Регрессоры

Будем считать, что существуют факторы, которые в определенной степени объясняют значения целевого показателя. Например, на курс пары доллар/рубль сильное влияние оказывает цена на нефть, ставка ФРС и др. Такие факторы называются регрессорами. При этом, каждому значению целевого показателя должно соответствовать значение регрессора, то есть, если у нас имеется 12 целевых показателей за каждый месяц в 2018 году, то и значений регрессоров у нас тоже должно быть 12 за тот же период. Обозначим значения каждого регрессора через Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Пусть в нашем случае имеется Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận регрессоров (т.е. Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận факторов, которые оказывают влияние на значения целевого показателя). Значит наши регрессоры можно представить следующим образом: для 1-го регрессора (например, цена на нефть): Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, для 2-го регрессора (например, ставка ФРС): Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, Vì "Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» регрессора: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Предположим, что зависимость целевого показателя Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận от регрессоров «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» наблюдения может быть выражена через уравнение линейной регрессии вида:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Đâu Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận - "Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-ое» значение регрессора от 1 до Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận,

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận — количество регрессоров от 1 до Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận — угловые коэффициенты, которые представляют величину, на которую изменится расчетный целевой показатель в среднем при изменении регрессора.

Другими словами, мы для каждого (за исключением Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận) регрессора определяем «свой» коэффициент Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, затем перемножаем коэффициенты на значения регрессоров «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» наблюдения, в результате получаем некое приближение «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» целевого показателя.

Следовательно, нам нужно подобрать такие коэффициенты Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, при которых значения нашей апроксимирующей функции Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận будут расположены максимально близко к значениям целевых показателей.

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

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Нам требуется подобрать такие значения коэффициентов $w$, при которых значение Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận будет наименьшим.

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

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

Для начала, чтобы облегчить себе жизнь, следует обратить внимание на уравнение линейной регрессии и заметить, что первый коэффициент Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận не умножается ни на один регрессор. При этом, когда мы переведем данные в матричный вид, вышеобозначенное обстоятельство будет серьезно осложнять расчеты. В этой связи предлагается ввести еще один регрессор для первого коэффициента Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận и приравнять его единице. Вернее, каждое «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-ое» значение этого регрессора приравнять единице — ведь при умножении на единицу у нас с точки зрения результата вычислений ничего не изменится, а с точки зрения правил произведения матриц, существенно сократятся наши мучения.

Теперь, на некоторое время, с целью упрощения материала, предположим, что у нас только одно «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-ое» наблюдение. Тогда, представим значения регрессоров «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-ого» наблюдения в качестве вектора Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận имеет размерность Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trậnĐó là, Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận строк и 1 столбец:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Искомые коэффициенты представим в виде вектора Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, имеющего размерность Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Уравнение линейной регрессии для «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» наблюдения примет вид:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Обратим внимание, что в соответствии с правилами умножения матриц, нам потребовалось транспонировать вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận.

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

В результате умножения векторов, мы получим число: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, что и следовало ожидать. Это число и есть приближение «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-го» целевого показателя. Но нам-то нужно приближение не одного значения целевого показателя, а всех. Для этого запишем все «Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận-ые» регрессоры в формате матрицы Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Полученная матрица имеет размерность Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Обозначим значения целевых показателей (все Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận) за вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận размерностью Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Собственно, из этой формулы далее получают известную нам формулу Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

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

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Для этого проведем некоторые преобразования. В последующих расчетах нам будет удобнее, если вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận будет представлен в начале каждого произведения в уравнении.

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Как это получилось? Для ответа на этот вопрос достаточно посмотреть на размеры умножаемых матриц и увидеть, что на выходе мы получаем число или иначе Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận.

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

На выходе получаем уравнение, которое нам предстоит продифференцировать:
Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Продифференцируем по вектору Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Вопросов почему Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận быть не должно, а вот операции по определению производных в двух других выражениях мы разберем подробнее.

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

Раскроем дифференцирование: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Обозначим произведение матриц Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận через матрицу Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Матрица Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận квадратная и более того, она симметричная. Эти свойства нам пригодятся далее, запомним их. Матрица Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận имеет размерность Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Однако, замысловатое выражение у нас получилось! На самом деле мы получили число — скаляр. И теперь, уже по-настоящему, переходим к дифференцированию. Необходимо найти производную полученного выражения по каждому коэффициенту Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận и получить на выходе вектор размерности Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. На всякий случай распишу процедуры по действиям:

1) продифференцируем по Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, получим: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

2) продифференцируем по Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, получим: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

3) продифференцируем по Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, получим: Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

На выходе — обещанный вектор размером Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Если присмотреться к вектору повнимательнее, то можно заметить, что левые и соответствующие правые элементы вектора можно сгруппировать таким образом, что в итоге из представленного вектора можно выделить вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận kích cỡ Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Ví dụ, Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận (левый элемент верхней строчки вектора) Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận (правый элемент верхней строчки вектора) можно представить как Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trậnChúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận — как Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận и т.д. по каждой строчке. Сгруппируем:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Вынесем вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận и на выходе получим:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Теперь, присмотримся к получившейся матрице. Матрица представляет собой сумму двух матриц Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Вспомним, что несколько ранее, мы отметили одно важное свойство матрицы Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận — она симметричная. Исходя из этого свойства, мы можем с уверенностью заявить, что выражение Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận bằng Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Это легко проверить, раскрыв поэлементно произведение матриц Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận. Мы не будем делать этого здесь, желающие могут провести проверку самостоятельно.

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

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

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

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

На время уберем из расчетов двойку — она большой роли не играет, потом вернем ее на место. Перемножим вектора на матрицу. В первую очередь умножим матрицу Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận на вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận, здесь у нас нет никаких ограничений. Получим вектор размера Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Выполним следующее действие — умножим вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận на полученный вектор. На выходе нас будет ждать число:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Его то мы и продифференцируем. На выходе получим вектор размерности Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận:

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Что-то напоминает? Все верно! Это произведение матрицы Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận на вектор Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận.

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

Thay vì một kết luận

Теперь мы знаем, как получилось равенство Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận.

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

Оценим качество модели в соответствии с методом наименьших квадратов:
Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Дифференцируем полученное выражение:
Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Chúng tôi đưa phương trình hồi quy tuyến tính về dạng ma trận

Văn chương

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

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

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

1) Конспект лекций по высшей математике: полный курс / Д.Т. Письменный – 4-е изд. – М.: Айрис-пресс, 2006
2) Phân tích hồi quy ứng dụng / N. Draper, G. Smith - tái bản lần thứ 2. – M.: Tài chính và Thống kê, 1986 (dịch từ tiếng Anh)
3) Задачи на решение матричных уравнений:
function-x.ru/matrix_equations.html
mathprofi.ru/deistviya_s_matricami.html


Nguồn: www.habr.com

Thêm một lời nhận xét