HimeraSearchDB
Carding_EbayThief
triada
CrackerTuch
d-shop
HimeraSearchDB

НОВОСТИ Основы линейной регрессии

NewsBot
Оффлайн

NewsBot

.
.
Регистрация
21.07.20
Сообщения
40.408
Реакции
1
Репутация
0
Здравствуй, Хабр!

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

! Осторожно, трафик! В статье присутствует заметное число изображений для иллюстраций, часть в формате gif.


Содержание





Введение


Есть три сходных между собой понятия, три сестры: интерполяция, аппроксимация и регрессия.
У них общая цель: из семейства функций выбрать ту, которая обладает определенным свойством.

mg988z3hvhghw6jjzcnqg6n3fhw.png
Интерполяция — способ, как из семейства функций выбрать ту, которая проходит через заданные точки. Затем ее обычно используют для вычисления в точках, отличных от заданных. Например, мы вручную задаем цвет нескольким точкам и хотим чтобы цвета остальных точек образовали плавные переходы между заданными. Или задаем ключевые кадры анимации и хотим плавные переходы между ними. Классические примеры: интерполяция полиномами Лагранжа, сплайн-интерполяция.


1b854d44003f175d56fe476eed7a5275.svg


64iybi7e2w8cq8mq0llivrrf7co.png
Аппроксимация — способ, как из семейства «простых» функций выбрать приближение для «сложной» функции на отрезке, при этом ошибка не должна превышать определенного предела. Аппроксимацию используют, когда нужно получить функцию, похожую на данную, но более удобную для вычислений и манипуляций (дифференцирования, интегрирования и т.п). При оптимизации критических участков кода часто используют аппроксимацию: если значение функции вычисляется много раз в секунду и не нужна абсолютная точность, то можно обойтись более простым аппроксимантом с меньшей «ценой» вычисления. Классические примеры включают ряд Тейлора на отрезке, аппроксимацию функции ортогональными многочленами, аппроксимацию Паде, аппроксимацию синуса Бхаскара и т.п.

pkf1x8b6hsnkp9qhtjhju4wjeik.png
Регрессия — способ, как из семейства функций выбрать ту, которая минимизирует функцию потерь. Последняя характеризует насколько сильно пробная функция отклоняется от значений в заданных точках. Если точки получены в эксперименте, они неизбежно содержат ошибку измерений, шум, поэтому разумнее требовать, чтобы функция передавала общую тенденцию, а не точно проходила через все точки. В каком-то смысле регрессия — это «интерполирующая аппроксимация»: мы хотим провести кривую как можно ближе к точкам и при этом сохранить ее максимально простой чтобы уловить общую тенденцию. За баланс между этими противоречивыми желаниями как-раз отвечает функция потерь (в английской литературе «loss function» или «cost function»).

В этой статье мы рассмотрим линейную регрессию. Это означает, что семейство функций, из которых мы выбираем, представляет собой линейную комбинацию наперед заданных базисных функций
59fd0032b90ff1d4822973df693a5ff6.svg


0fc386af52cc285ae58ce7777cc641d9.svg


Цель регрессии — найти коэффициенты этой линейной комбинации, и тем самым определить регрессионную функцию
12ab92a586fb3d91b2b9c1e1ca0dc58c.svg
(которую также называют моделью). Отмечу, что линейную регрессию называют линейной именно из-за линейной комбинации базисных функций — это не связано с самыми базисными функциями (они могут быть линейными или нет).

Регрессия с нами уже давно: впервые метод опубликовал Лежандр в 1805 году, хотя Гаусс пришел к нему раньше и успешно использовал для предсказания орбиты «кометы» (на самом деле карликовой планеты) Цереры. Существует множество вариантов и обобщений линейной регрессии: LAD, метод наименьших квадратов, Ridge регрессия, Lasso регрессия, ElasticNet и многие другие.
гифка
Точки генерируются случайно по распределению Гаусса с заданным средним и вариациями. Синяя линия — регрессионная прямая.
jbdzgenmkxhwbpdn73qajp2ncew.gif

Можно .
Много других материалов по классическому машинному обучению



Метод наименьших квадратов


Начнём с простейшего двумерного случая. Пусть нам даны точки на плоскости
d430a777cb4172006522cfb402cfa4a6.svg
и мы ищем такую аффинную функцию


2739376fd72de60589b74ad1b8b0f71c.svg


6c-mkyisya-wfvbi9_rngim0suc.png
чтобы ее график ближе всего находился к точкам. Таким образом, наш базис состоит из константной функции и линейной
1cbe015d2f65f261d3844c0565e55f26.svg
.

Как видно из иллюстрации, расстояние от точки до прямой можно понимать по-разному, например геометрически — это длина перпендикуляра. Однако в контексте нашей задачи нам нужно функциональное расстояние, а не геометрическое. Нас интересует разница между экспериментальным значением и предсказанием модели для каждого
56181b91ee90a7eb3e428faabfd9ea18.svg
поэтому измерять нужно вдоль оси
9b34c4da5c757d4982bbd1b6f2e8998a.svg
.

Первое, что приходит в голову, в качестве функции потерь попробовать выражение, зависящее от абсолютных значений разниц
c298d723c764ca85731e106301d3be53.svg
. Простейший вариант — сумма модулей отклонений
4675236bfff8c19340d01e307b1bded1.svg
приводит к Least Absolute Distance (LAD) регрессии.

Впрочем, более популярная функция потерь — сумма квадратов отклонений регрессанта от модели. В англоязычной литературе она носит название Sum of Squared Errors (SSE)


2f41e72ed35162dd268dd0b608d29b62.svg


Метод наименьших квадратов (по англ. OLS) — линейная регрессия c
d62a16ddc842b8866539b7f17e0fb67f.svg
в качестве функции потерь.
isakaoo41ptougax6o1d_tm6deq.png


Такой выбор прежде всего удобен: производная квадратичной функции — линейная функция, а линейные уравнения легко решаются. Впрочем, далее я укажу и другие соображения в пользу
d62a16ddc842b8866539b7f17e0fb67f.svg
.
гифка
Регрессионная прямая (синяя) и пробная прямая (зеленая). Справа показана функция потерь и точки соответствующие параметра пробной и регрессионной прямых.
mjaxx2ddc-z8nsgn4nxgdy2gyfw.gif

Можно .
Много других материалов по классическому машинному обучению



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


Простейший способ найти
42247236f98c5b38a8b25f37ad44c1c9.svg
— вычислить частные производные по
372e18546a3b7abb94c2672708bc5dfe.svg
и
302c7204ea9987e698a70307646abd71.svg
, приравнять их нулю и решить систему линейных уравнений

786825c5170213ae20a8377b2c0fdee5.svg


Значения параметров, минимизирующие функцию потерь, удовлетворяют уравнениям


5301ef5b78e9e03c4fbd8889a080d9b9.svg


которые легко решить


11cf055fa96620a932e54433499383e4.svg


Мы получили громоздкие и неструктурированные выражения. Сейчас мы их облагородим и вдохнем в них смысл.


Статистика


Полученные формулы можно компактно записать с помощью статистических эстиматоров: среднего
6ad767e6ddfaf2a3aa97dd261c86d0e5.svg
, вариации
c1e44254a46eb7b219d4b251c0e4dde0.svg
(стандартного отклонения), ковариации
35a1308483ec70336c1e3c6c1d922df5.svg
и корреляции
a0b7898cb32c1fc5996dd43e80fbb015.svg



6190454309335916fd198bbfb394a29d.svg


Перепишем
32b30bf3ea7943f59e49d6f480bbd5b9.svg
как


1950ab648e07d19d60f917fec7d27af2.svg


где
20eca4cbb85408da05053d361ee2e85c.svg
это нескорректированное (смещенное) стандартное выборочное отклонение, а
a7155ca0629d7fd01943b72c3eb8983a.svg
— ковариация. Теперь вспомним, что коэффициент корреляции (коэффициент корреляции Пирсона)


3e24c16c64e4981029137b9ece647795.svg


и запишем


e5278cb48ac670a05aab7ea653ff7cc3.svg



4qpw_ougesibbmsr7mu0zoyazog.png

Теперь мы можем оценить все изящество дескриптивной статистики и записать уравнение регрессионной прямой так



b933c8f67ec96579ea0dd77ff52c988d.svg


Во-первых, это уравнение сразу указывает на два свойства регрессионной прямой:
  • прямая проходит через центр масс
    4f21afc5a0dc44020338a9f5a78bfcc8.svg
    ;
  • если по оси
    817b92407f764f57af9226e50cc788fd.svg
    за единицу длины выбрать
    20eca4cbb85408da05053d361ee2e85c.svg
    , а по оси
    9b34c4da5c757d4982bbd1b6f2e8998a.svg
    ea6d5dc9764f21ad2616ef36d7cdd2fd.svg
    , то угол наклона прямой будет от
    6fa599311f9ae455a2185e478c953b10.svg
    до
    d67492c53d29b32a787355cbcaebd15a.svg
    . Это связано с тем, что
    ea1b74df09123325e65ce7192acebb01.svg
    .

Во-вторых, теперь становится понятно, почему метод регрессии называется именно так. В единицах стандартного отклонения
9b34c4da5c757d4982bbd1b6f2e8998a.svg
отклоняется от своего среднего значения меньше чем
817b92407f764f57af9226e50cc788fd.svg
, потому что
2a6c846d96fc8c64a0d6e7cf5d4f8f78.svg
. Это называется регрессией(от лат. regressus — «возвращение») по отношению к среднему. Это явление было описано сэром Фрэнсисом Гальтоном в конце XIX века в его статье «Регрессия к посредственности при наследовании роста». В статье показано, что черты (такие как рост), сильно отклоняющиеся от средних, редко передаются по наследству. Характеристики потомства как-бы стремятся к среднему — на детях гениев природа отдыхает.

Возведя коэффициент корреляции в квадрат, получим коэффициент детерминации
41c23347a03c2ec34172bbdccdc0253e.svg
. Квадрат этой статистической меры показывает насколько хорошо регрессионная модель описывает данные.
0bad21a1feb1341dc1267f2bceaaf5f6.svg
, равный
3e4c77a6e7c579a778fa84a18b6f4be0.svg
, означает что функция идеально ложится на все точки — данные идеально скоррелированны. Можно доказать, что
0bad21a1feb1341dc1267f2bceaaf5f6.svg
показывает какая доля вариативности в данных объясняется лучшей из линейных моделей. Чтобы понять, что это значит, введем определения


3f42d8f22b6f88a675db78830eafb6ae.svg


1d49306d0889e4329ac9b3d0720e6d41.svg
— вариация исходных данных (вариация точек
98f6394b2bd98b852bb0895b97d55e9f.svg
).

cdd768a5e27284b6732b0d61e051f58c.svg
— вариация остатков, то есть вариация отклонений от регрессионной модели — от
98f6394b2bd98b852bb0895b97d55e9f.svg
нужно отнять предсказание модели и найти вариацию.

f6cfac55481cc02155ec2cc1836b5534.svg
— вариация регрессии, то есть вариация предсказаний регрессионной модели в точках
42f173c2992cf2826d484e0dac62fb74.svg
(обратите внимание, что среднее предсказаний модели совпадает с
d900940b3494a8582a0c0eb18a0884fa.svg
).

cysmhz-caq0ju9rbe3bc_pwu90m.png

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


5e04d993fd35e2ac385491d5015f6942.svg


или


6ceaf06b1b9f37be918156bca4a32a4a.svg


Как видим, стандартные отклонения образуют прямоугольный треугольник.

buam-j8bkg6il4bpspcl6uy77co.png


Мы стремимся избавиться от вариативности связанной с шумом и оставить лишь вариативность, которая объясняется моделью, — хотим отделить зерна от плевел. О том, насколько это удалось лучшей из линейных моделей, свидетельствует
0bad21a1feb1341dc1267f2bceaaf5f6.svg
, равный единице минус доля вариации ошибок в суммарной вариации


e780ede2fa4fcaf376769a277c39317c.svg


или доле объясненной вариации (доля вариации регрессии в полной вариации)


1790b7ebb92346c139ab5690f90693aa.svg


b81a7c1e9676b36cc02ddeea5d5f6e51.svg
равен косинусу угла в прямоугольном треугольнике
bfa93ac861054ede0db19f4b88b63151.svg
. Кстати, иногда вводят долю необъясненной вариации
5ecc2453857634c3e774d74702476ff2.svg
и она равна квадрату синуса в этом треугольнике. Если коэффициент детерминации мал, возможно мы выбрали неудачные базисные функции, линейная регрессия неприменима вовсе и т.п.


Теория вероятностей


Ранее мы пришли к функции потерь
d62a16ddc842b8866539b7f17e0fb67f.svg
из соображений удобства, но к ней же можно прийти с помощью теории вероятностей и метода максимального правдоподобия (ММП). Напомню вкратце его суть. Предположим, у нас есть
1e80c3b3087c0a57b68ad11261a9ec2b.svg
независимых одинаково распределенных случайных величин (в нашем случае — результатов измерений). Мы знаем вид функции распределения (напр. нормальное распределение), но хотим определить параметры, которые в нее входят (например
1ec36e4efef9e67482ea2b86700b82f2.svg
и
bd253add01b6a626f79861899c5e7d73.svg
). Для этого нужно вычислить вероятность получить
1e80c3b3087c0a57b68ad11261a9ec2b.svg
датапоинтов в предположении постоянных, но пока неизвестных параметров. Благодаря независимости измерений, мы получим произведение вероятностей реализации каждого измерения. Если мыслить полученную величину как функцию параметров (функция правдоподобия) и найти её максимум, мы получим оценку параметров. Зачастую вместо функции правдоподобия используют ее логарифм — дифференцировать его проще, а результат — тот же.

Вернемся к задаче простой регрессии. Допустим, что значения
817b92407f764f57af9226e50cc788fd.svg
нам известны точно, а в измерении
9b34c4da5c757d4982bbd1b6f2e8998a.svg
присутствует случайный шум (свойство слабой экзогенности). Более того, положим, что все отклонения от прямой (свойство линейности) вызваны шумом с постоянным распределением (постоянство распределения). Тогда


6910d9e4d2e1a00289ee5c908b8d79b4.svg


где
69c5575e9b1b42051069fb6122976644.svg
— нормально распределенная случайная величина


b1160e830f277d753fd24ae28da323c4.svg



mwd1le_ur5z3wmeybyxwsmg6kee.png


Исходя из предположений выше, запишем функцию правдоподобия


9fdb9091df2089a1035f6d93c7ee7610.svg


и ее логарифм


9627f4c53c9c4fec726076ec3b0d8081.svg


Таким образом, максимум правдоподобия достигается при минимуме
79326338cc2e4768093d960f790e95b0.svg



c83e5b5562d50f54acbaec7f9da50c35.svg


что дает основание принять ее в качестве функции потерь. Кстати, если


5816f2129c52101019c32b82d9f1c348.svg


мы получим функцию потерь LAD регрессии


175434f06311c1dbb8797e20f9af2f0d.svg


которую мы упоминали ранее.

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


Мультилинейная регрессия


До сих пор мы рассматривали задачу регрессии для одного скалярного признака
817b92407f764f57af9226e50cc788fd.svg
, однако обычно регрессор — это
08d9faefbe272bdf8fbb80773542e343.svg
-мерный вектор
47c54f1eb89e72755962717658585aa4.svg
. Другими словами, для каждого измерения мы регистрируем
08d9faefbe272bdf8fbb80773542e343.svg
фич, объединяя их в вектор. В этом случае логично принять модель с
7e7f6abfc659c22769b2277142014895.svg
независимыми базисными функциями векторного аргумента —
08d9faefbe272bdf8fbb80773542e343.svg
степеней свободы соответствуют
08d9faefbe272bdf8fbb80773542e343.svg
фичам и еще одна — регрессанту
9b34c4da5c757d4982bbd1b6f2e8998a.svg
. Простейший выбор — линейные базисные функции
20eaac86aa3413477bc48b346b3cfe4c.svg
. При
d4c2e9ecc4e633e17139fae6dc981db9.svg
получим уже знакомый нам базис
1cbe015d2f65f261d3844c0565e55f26.svg
.

Итак, мы хотим найти такой вектор (набор коэффициентов)
1cef4b3586f379a0a644a1800281210f.svg
, что


c006820057b1d5fea2452cbecf43b999.svg


Знак "
0f325b7834d43163982e6e31833858ff.svg
" означает, что мы ищем решение, которое минимизирует сумму квадратов ошибок


ff11839f41a80b95dfade9e338509c0e.svg


Последнее уравнение можно переписать более удобным образом. Для этого расположим
52fb125fe0d6b5658b8ffa589fb4fe00.svg
в строках матрицы (матрицы информации)


6df6924e38dc79cd68367ef74ed3a5c9.svg


Тогда столбцы матрицы
fd7ff02aae21ef4772f7763280d91ffd.svg
отвечают измерениям
bf83b532cd867d34004f8eded8c5c79a.svg
-ой фичи. Здесь важно не запутаться:
1e80c3b3087c0a57b68ad11261a9ec2b.svg
— количество измерений,
08d9faefbe272bdf8fbb80773542e343.svg
— количество признаков (фич), которые мы регистрируем. Систему можно записать как


c43a9bd14a23447c4dd04161b9cf0ac9.svg


Квадрат нормы разности векторов в правой и левой частях уравнения образует функцию потерь


2c7991610a0e03c63dcac55d278bf568.svg


которую мы намерены минимизировать


01d3d781e6a1fa93cb9ba284d4933af3.svg


Продифференцируем финальное выражение по
1cef4b3586f379a0a644a1800281210f.svg
(если забыли как это делается — загляните в )


d5e6d0b86429a8456cdf819b9a624c2d.svg


приравняем производную к
22d721490f88eae369ca0ce370455d73.svg
и получим т.н. нормальные уравнения


a4eb70439f53d6f333bbf119d4143a56.svg


Если столбцы матрицы информации
6d6a4f78fbacd6edecc018ce8ad3e364.svg
линейно независимы (нет идеально скоррелированных фич), то матрица
49158467fb0334dbd53a80b75bda19d0.svg
имеет обратную (доказательство можно посмотреть, например, в ). Тогда можно записать


23ae8f6cba3108a8fd39cd45a5e85570.svg


где


d5f2a97ffdc2cdbc203ab89ad2e20bfd.svg


псевдообратная к
6d6a4f78fbacd6edecc018ce8ad3e364.svg
. Понятие псевдообратной матрицы введено в 1903 году Фредгольмом, она сыграла важную роль в работах Мура и Пенроуза.

Напомню, что обратить
49158467fb0334dbd53a80b75bda19d0.svg
и найти
4dbfbf4f994b7b15f3c7bcf66eccb4c4.svg
можно только если столбцы
6d6a4f78fbacd6edecc018ce8ad3e364.svg
линейно независимы. Впрочем, если столбцы
6d6a4f78fbacd6edecc018ce8ad3e364.svg
близки к линейной зависимости, вычисление
06ebecea3e495d4e736a3cf4bd617d04.svg
уже становится численно нестабильным. Степень линейной зависимости признаков в
6d6a4f78fbacd6edecc018ce8ad3e364.svg
или, как говорят, мультиколлинеарности матрицы
49158467fb0334dbd53a80b75bda19d0.svg
, можно измерить числом обусловленности — отношением максимального собственного значения к минимальному. Чем оно больше, тем ближе
49158467fb0334dbd53a80b75bda19d0.svg
к вырожденной и неустойчивее вычисление псевдообратной.


Линейная алгебра


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


c43a9bd14a23447c4dd04161b9cf0ac9.svg


Если количество переменных равно количеству неизвестных и уравнения линейно независимы, то система имеет единственное решение. Однако, если число измерений превосходит число признаков, то есть уравнений больше чем неизвестных — система становится несовместной, переопределенной. В этом случае лучшее, что мы можем сделать — выбрать вектор
1cef4b3586f379a0a644a1800281210f.svg
, образ которого
f5d5b5cd3279d4e3c579912a809626a3.svg
ближе остальных к
2d8ae800a005c3174c330be15e097f32.svg
. Напомню, что множество образов или колоночное пространство
ed6f27bbcd43ab17eb44ef3c79158de7.svg
— это линейная комбинация вектор-столбцов матрицы
6d6a4f78fbacd6edecc018ce8ad3e364.svg



f5ef7128326c66e5a8d5d572d1db9995.svg


ed6f27bbcd43ab17eb44ef3c79158de7.svg
7e7f6abfc659c22769b2277142014895.svg
-мерное линейное подпространство (мы считаем фичи линейно независимыми), линейная оболочка вектор-столбцов
6d6a4f78fbacd6edecc018ce8ad3e364.svg
. Итак, если
2d8ae800a005c3174c330be15e097f32.svg
принадлежит
ed6f27bbcd43ab17eb44ef3c79158de7.svg
, то мы можем найти решение, если нет — будем искать, так сказать, лучшее из нерешений.

Если в дополнение к векторам
ed6f27bbcd43ab17eb44ef3c79158de7.svg
мы рассмотрим все вектора им перпендикулярные, то получим еще одно подпространство и сможем любой вектор из
3603e45e434f8a55101ed7c137231bef.svg
разложить на две компоненты, каждая из которых живет в своем подпространстве. Второе, перпендикулярное пространство, можно характеризовать следующим образом (нам это понадобится в дальнейшем). Пускай
f8cf045b6a54b285dedba351e11de439.svg
, тогда


7b3231d8ef756cc144b864a24a64a7b0.svg


равен нулю в том и только в том случае, если
2c4b0b1facb860c5dd334b06a87de9d0.svg
перпендикулярен всем
fd7ff02aae21ef4772f7763280d91ffd.svg
, а значит и целому
ed6f27bbcd43ab17eb44ef3c79158de7.svg
. Таким образом, мы нашли два перпендикулярных линейных подпространства, линейные комбинации векторов из которых полностью, без дыр, «покрывают» все
3603e45e434f8a55101ed7c137231bef.svg
. Иногда это обозначают c помощью символа ортогональной прямой суммы

5ik__r7wqskixxwfe6hiqyb6pkw.png


где
bdb041828babfec06940f2be5fb6c4cb.svg
. В каждое из подпространств можно попасть с помощью соответствующего оператора проекции, но об этом ниже.

o6enrlyxw4uwoa9g-s-xacnwwn8.png

Теперь представим
2d8ae800a005c3174c330be15e097f32.svg
в виде разложения


a8f707a7735ab47627f05585a939bc82.svg



ipaxuz3a3js1tuy7oj2gmku5s2q.png

Если мы ищем решение
1a3cace534c66a9dd3ce8e4ab5699ff9.svg
, то естественно потребовать, чтобы
55c283f9c0646ad244c0b033824db395.svg
была минимальна, ведь это длина вектора-остатка. Учитывая перпендикулярность подпространств и теорему Пифагора


cde9fd6878f1214bf624fa49c7045070.svg


но поскольку, выбрав подходящий
1cef4b3586f379a0a644a1800281210f.svg
, я могу получить любой вектор колоночного пространства, то задача сводится к


0fb945d8c5bd39905c20aba51221caac.svg


а
2bead0de8b4f9089b878c4494280e13d.svg
останется в качестве неустранимой ошибки. Любой другой выбор
1a3cace534c66a9dd3ce8e4ab5699ff9.svg
сделает ошибку только больше.

svirb5a4p6qr-bumlssczfw2ioy.png

Если теперь вспомнить, что
dcd30dcedc40994685a04a7e63eda0d5.svg
, то легко видеть


cb24d42f17e1b9eba3a809fe1fc5735e.svg


что очень удобно, так как
6e8ee90003465da6b161871f7da22bf0.svg
у нас нет, а вот
2d8ae800a005c3174c330be15e097f32.svg
— есть. Вспомним из предыдущего параграфа, что
49158467fb0334dbd53a80b75bda19d0.svg
имеет обратную при условии линейной независимости признаков и запишем решение


c0b8437783a41b26cae41d2b2885c551.svg


где
4dbfbf4f994b7b15f3c7bcf66eccb4c4.svg
уже знакомая нам псевдообратная матрица. Если нам интересна проекция
6e8ee90003465da6b161871f7da22bf0.svg
, то можно записать


2266dffc15d7949ce23cb4d0aecf4a0c.svg


где
514ff987b7adad79d87d5233d6862ad8.svg
— оператор проекции на колоночное пространство.

Выясним геометрический смысл коэффициента детерминации.

ika838b9x-bzyna7m6m8skoakfi.png

Заметьте, что фиолетовый вектор
fe4e6f909696b51bb70984a8ef205bb2.svg
пропорционален первому столбцу матрицы информации
6d6a4f78fbacd6edecc018ce8ad3e364.svg
, который состоит из одних единиц согласно нашему выбору базисных функций. В RGB треугольнике


88d4469f64e6dbbaeb8dc40782050932.svg


Так как этот треугольник прямоугольный, то по теореме Пифагора


fc1c0d795b8d6583df27ee37cf32fb24.svg


Это геометрическая интерпретация уже известного нам факта, что


fe98888f99c5d81110bca3d41435f71c.svg


Мы знаем, что


4dda7fe68c07bd7918507375f3819a2e.svg


а значит


ca8552b9ddff08e5147b75ef16163a18.svg


Красиво, не правда ли?


Произвольный базис


Как мы знаем, регрессия выполняется на базисных функциях
59fd0032b90ff1d4822973df693a5ff6.svg
и её результатом есть модель


c12690fe4e177966a44d9e7dc57fad2d.svg


но до сих пор мы использовали простейшие
59fd0032b90ff1d4822973df693a5ff6.svg
, которые просто ретранслировали изначальные признаки без изменений, ну разве что дополняли их постоянной фичей
2467e32bc8b0076d39d2b7cfeaa7f7b1.svg
. Как можно было заметить, на самом деле ни вид
59fd0032b90ff1d4822973df693a5ff6.svg
, ни их количество ничем не ограничены — главное чтобы функции в базисе были линейно независимы. Обычно, выбор делается исходя из предположений о природе процесса, который мы моделируем. Если у нас есть основания полагать, что точки
d430a777cb4172006522cfb402cfa4a6.svg
ложатся на параболу, а не на прямую, то стоит выбрать базис
67aa9443d26721af93dbc47e8891805e.svg
. Количество базисных функций может быть как меньшим, так и большим, чем количество изначальных фич.
гифка
Регрессия в полиномиальном базисе. Выделенная часть кода демонстрирует использование стандартных функций scikit-learn для выполнения регрессии полиномами разной степени, снизу — визуализация результата работы.
pwnogfxouzaslryuzxrrzy9iga8.gif

Можно .
Много других материалов по классическому машинному обучению

Если мы определились с базисом, то дальше действуем следующим образом. Мы формируем матрицу информации


7996c6bcd56b1ccfce42701eb963a3ba.svg


записываем функцию потерь


3f0f33464773df9dd0f4a9752191f238.svg


и находим её минимум, например с помощью псевдообратной матрицы


b3bfc5f45acfd6dae7a1ce90154955d2.svg


или другим методом.



Заключительные замечания


Проблема выбора размерности


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

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


0ae5ae9423589805037259c2308f8051.svg


где
1e80c3b3087c0a57b68ad11261a9ec2b.svg
— размер выборки,
08d9faefbe272bdf8fbb80773542e343.svg
— количество независимых переменных. Следя за
85d646c1cf6031b4027d91fdf9538d41.svg
, мы можем вовремя остановиться и перестать добавлять дополнительные степени свободы.

Вторая группа подходов — регуляризации, самые известные из которых Ridge(
78238810332579c8c3605568fa05dc6c.svg
/гребневая/Тихоновская регуляризация), Lasso(
3f771243c6e4e2826f3071100c3a50fc.svg
регуляризация) и Elastic Net(Ridge+Lasso). Главная идея этих методов: модифицировать функцию потерь дополнительными слагаемыми, которые не позволят вектору коэффициентов
1cef4b3586f379a0a644a1800281210f.svg
неограниченно расти и тем самым воспрепятствуют переобучению


b2f3475870d70a6f4eae4eba5cac7ea9.svg


где
7234a52ba041cdb09b9328a047048fb2.svg
и
7fdb730d916a98c0ad71826e0bc706bf.svg
— параметры, которые регулируют «силу» регуляризации. Это обширная тема с красивой геометрией, которая заслуживает отдельного рассмотрения. Упомяну кстати, что для случая двух переменных при помощи вероятностной интерпретации можно получить Ridge и Lasso регрессии, удачно выбрав априорное распределения для коэффициента
302c7204ea9987e698a70307646abd71.svg



4eaf69538e04a4f92ba29e24aa52089e.svg




Численные методы


Скажу пару слов, как минимизировать функцию потерь на практике. SSE — это обычная квадратичная функция, которая параметризируется входными данными, так что принципиально ее можно минимизировать методом скорейшего спуска или другими методами оптимизации. Так, реализация Lasso регрессии в scikit-learn использует метод координатного спуска.

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


Реклама и заключение


Эта статья — сокращенный пересказ одной из глав курса классического машинного обучения в (преемник Киевского отделения Московского физико-технического института, КО МФТИ). Автор статьи помогал в создании этого курса. Технически курс выполнен на платформе Google Colab, что позволяет совмещать формулы, форматированные LaTeX, исполняемый код Python и интерактивные демонстрации на Python+JavaScript, так что студенты могут работать с материалами курса и запускать код с любого компьютера, на котором есть браузер. На собраны ссылки на конспекты, «рабочие тетради» для практик и дополнительные ресурсы. В основу курса положены следующие принципы:
  • все материалы должны быть доступны студентам с первой пары;
  • лекция нужны для понимания, а не для конспектирования (конспекты уже готовы, нет смысла их писать, если не хочется);
  • конспект — больше чем лекция (материала в конспектах больше, чем было озвучено на лекции, фактически конспекты представляют собой полноценный учебник);
  • наглядность и интерактивность (иллюстрации, фото, демки, гифки, код, видео с youtube).

Если хотите посмотреть на результат — загляните на .

Надеюсь Вам было интересно, спасибо за внимание.
 
Сверху Снизу