Цель этой статьи — рассказать о линейной регрессии, а именно собрать и показать формулировки и интерпретации задачи регрессии с точки зрения математического анализа, статистики, линейной алгебры и теории вероятностей. Хотя в учебниках эта тема изложена строго и исчерпывающе, ещё одна научно-популярная статья не помешает.
! Осторожно, трафик! В статье присутствует заметное число изображений для иллюстраций, часть в формате gif.
Содержание
- Введение
- Метод наименьших квадратов
- Мультилинейная регрессия
- Произвольный базис
- Заключительные замечания
- Реклама и заключение
Введение
Есть три сходных между собой понятия, три сестры: интерполяция, аппроксимация и регрессия.
У них общая цель: из семейства функций выбрать ту, которая обладает определенным свойством.

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


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

Можно поиграться с демонстрацией в GoogleColab.
Много других материалов по классическому машинному обучению на соответствующей страничке на GitHub
Метод наименьших квадратов
Начнём с простейшего двумерного случая. Пусть нам даны точки на плоскости и мы ищем такую аффинную функцию

Как видно из иллюстрации, расстояние от точки до прямой можно понимать по-разному, например геометрически — это длина перпендикуляра. Однако в контексте нашей задачи нам нужно функциональное расстояние, а не геометрическое. Нас интересует разница между экспериментальным значением и предсказанием модели для каждого поэтому измерять нужно вдоль оси .
Первое, что приходит в голову, в качестве функции потерь попробовать выражение, зависящее от абсолютных значений разниц . Простейший вариант — сумма модулей отклонений приводит к Least Absolute Distance (LAD) регрессии.
Впрочем, более популярная функция потерь — сумма квадратов отклонений регрессанта от модели. В англоязычной литературе она носит название Sum of Squared Errors (SSE)
Метод наименьших квадратов (по англ. OLS) — линейная регрессия c в качестве функции потерь.

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

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

Во-первых, это уравнение сразу указывает на два свойства регрессионной прямой:
- прямая проходит через центр масс ;
- если по оси за единицу длины выбрать , а по оси — , то угол наклона прямой будет от до . Это связано с тем, что .
Во-вторых, теперь становится понятно, почему метод регрессии называется именно так. В единицах стандартного отклонения отклоняется от своего среднего значения меньше чем , потому что . Это называется регрессией(от лат. regressus — «возвращение») по отношению к среднему. Это явление было описано сэром Фрэнсисом Гальтоном в конце XIX века в его статье «Регрессия к посредственности при наследовании роста». В статье показано, что черты (такие как рост), сильно отклоняющиеся от средних, редко передаются по наследству. Характеристики потомства как-бы стремятся к среднему — на детях гениев природа отдыхает.
Возведя коэффициент корреляции в квадрат, получим коэффициент детерминации . Квадрат этой статистической меры показывает насколько хорошо регрессионная модель описывает данные. , равный , означает что функция идеально ложится на все точки — данные идеально скоррелированны. Можно доказать, что показывает какая доля вариативности в данных объясняется лучшей из линейных моделей. Чтобы понять, что это значит, введем определения
— вариация исходных данных (вариация точек ).
— вариация остатков, то есть вариация отклонений от регрессионной модели — от нужно отнять предсказание модели и найти вариацию.
— вариация регрессии, то есть вариация предсказаний регрессионной модели в точках (обратите внимание, что среднее предсказаний модели совпадает с ).

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

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

Исходя из предположений выше, запишем функцию правдоподобия
и ее логарифм
Таким образом, максимум правдоподобия достигается при минимуме
что дает основание принять ее в качестве функции потерь. Кстати, если
мы получим функцию потерь LAD регрессии
которую мы упоминали ранее.
Подход, который мы использовали в этом разделе — один из возможных. Можно прийти к такому же результату, используя более общие свойства. В частности, свойство постоянства распределения можно ослабить, заменив на свойства независимости, постоянства вариации (гомоскедастичность) и отсутствия мультиколлинеарности. Также вместо ММП эстимации можно воспользоваться другими методами, например линейной MMSE эстимацией.
Мультилинейная регрессия
До сих пор мы рассматривали задачу регрессии для одного скалярного признака , однако обычно регрессор — это -мерный вектор . Другими словами, для каждого измерения мы регистрируем фич, объединяя их в вектор. В этом случае логично принять модель с независимыми базисными функциями векторного аргумента — степеней свободы соответствуют фичам и еще одна — регрессанту . Простейший выбор — линейные базисные функции . При получим уже знакомый нам базис .
Итак, мы хотим найти такой вектор (набор коэффициентов) , что
Знак "" означает, что мы ищем решение, которое минимизирует сумму квадратов ошибок
Последнее уравнение можно переписать более удобным образом. Для этого расположим в строках матрицы (матрицы информации)
Тогда столбцы матрицы отвечают измерениям -ой фичи. Здесь важно не запутаться: — количество измерений, — количество признаков (фич), которые мы регистрируем. Систему можно записать как
Квадрат нормы разности векторов в правой и левой частях уравнения образует функцию потерь
которую мы намерены минимизировать
Продифференцируем финальное выражение по (если забыли как это делается — загляните в Matrix cookbook)
приравняем производную к и получим т.н. нормальные уравнения
Если столбцы матрицы информации линейно независимы (нет идеально скоррелированных фич), то матрица имеет обратную (доказательство можно посмотреть, например, в видео академии Хана). Тогда можно записать
где
псевдообратная к . Понятие псевдообратной матрицы введено в 1903 году Фредгольмом, она сыграла важную роль в работах Мура и Пенроуза.
Напомню, что обратить и найти можно только если столбцы линейно независимы. Впрочем, если столбцы близки к линейной зависимости, вычисление уже становится численно нестабильным. Степень линейной зависимости признаков в или, как говорят, мультиколлинеарности матрицы , можно измерить числом обусловленности — отношением максимального собственного значения к минимальному. Чем оно больше, тем ближе к вырожденной и неустойчивее вычисление псевдообратной.
Линейная алгебра
К решению задачи мультилинейной регрессии можно прийти довольно естественно и с помощью линейной алгебры и геометрии, ведь даже то, что в функции потерь фигурирует норма вектора ошибок уже намекает, что у задачи есть геометрическая сторона. Мы видели, что попытка найти линейную модель, описывающую экспериментальные точки, приводит к уравнению
Если количество переменных равно количеству неизвестных и уравнения линейно независимы, то система имеет единственное решение. Однако, если число измерений превосходит число признаков, то есть уравнений больше чем неизвестных — система становится несовместной, переопределенной. В этом случае лучшее, что мы можем сделать — выбрать вектор , образ которого ближе остальных к . Напомню, что множество образов или колоночное пространство — это линейная комбинация вектор-столбцов матрицы
— -мерное линейное подпространство (мы считаем фичи линейно независимыми), линейная оболочка вектор-столбцов . Итак, если принадлежит , то мы можем найти решение, если нет — будем искать, так сказать, лучшее из нерешений.
Если в дополнение к векторам мы рассмотрим все вектора им перпендикулярные, то получим еще одно подпространство и сможем любой вектор из разложить на две компоненты, каждая из которых живет в своем подпространстве. Второе, перпендикулярное пространство, можно характеризовать следующим образом (нам это понадобится в дальнейшем). Пускай , тогда
равен нулю в том и только в том случае, если перпендикулярен всем , а значит и целому . Таким образом, мы нашли два перпендикулярных линейных подпространства, линейные комбинации векторов из которых полностью, без дыр, «покрывают» все . Иногда это обозначают c помощью символа ортогональной прямой суммы

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


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

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

Так как этот треугольник прямоугольный, то по теореме Пифагора
Это геометрическая интерпретация уже известного нам факта, что
Мы знаем, что
а значит
Красиво, не правда ли?
Произвольный базис
Как мы знаем, регрессия выполняется на базисных функциях и её результатом есть модель
но до сих пор мы использовали простейшие , которые просто ретранслировали изначальные признаки без изменений, ну разве что дополняли их постоянной фичей . Как можно было заметить, на самом деле ни вид , ни их количество ничем не ограничены — главное чтобы функции в базисе были линейно независимы. Обычно, выбор делается исходя из предположений о природе процесса, который мы моделируем. Если у нас есть основания полагать, что точки ложатся на параболу, а не на прямую, то стоит выбрать базис . Количество базисных функций может быть как меньшим, так и большим, чем количество изначальных фич.

Можно поиграться с демонстрацией в GoogleColab.
Много других материалов по классическому машинному обучению на соответствующей страничке на GitHub
Если мы определились с базисом, то дальше действуем следующим образом. Мы формируем матрицу информации
записываем функцию потерь
и находим её минимум, например с помощью псевдообратной матрицы
или другим методом.
Заключительные замечания
Проблема выбора размерности
На практике часто приходится самостоятельно построить модель явления, то есть определиться сколько и каких нужно взять базисных функций. Первый порыв «набрать побольше» может сыграть злую шутку: модель окажется слишком чувствительной к шумам в данных (переобучение). С другой стороны, если излишне ограничить модель, она будет слишком грубой (недообучение).
Есть два способа выйти из ситуации. Первый: последовательно наращивать количество базисных функций, проверять качество регрессии и вовремя остановиться. Или же второй: выбрать функцию потерь, которая определит число степеней свободы автоматически. В качестве критерия успешности регрессии можно использовать коэффициент детерминации, о котором уже упоминалось выше, однако, проблема в том, что монотонно растет с ростом размерности базиса. Поэтому вводят скорректированный коэффициент
где — размер выборки, — количество независимых переменных. Следя за , мы можем вовремя остановиться и перестать добавлять дополнительные степени свободы.
Вторая группа подходов — регуляризации, самые известные из которых Ridge(/гребневая/Тихоновская регуляризация), Lasso( регуляризация) и Elastic Net(Ridge+Lasso). Главная идея этих методов: модифицировать функцию потерь дополнительными слагаемыми, которые не позволят вектору коэффициентов неограниченно расти и тем самым воспрепятствуют переобучению
где и — параметры, которые регулируют «силу» регуляризации. Это обширная тема с красивой геометрией, которая заслуживает отдельного рассмотрения. Упомяну кстати, что для случая двух переменных при помощи вероятностной интерпретации можно получить Ridge и Lasso регрессии, удачно выбрав априорное распределения для коэффициента
Численные методы
Скажу пару слов, как минимизировать функцию потерь на практике. SSE — это обычная квадратичная функция, которая параметризируется входными данными, так что принципиально ее можно минимизировать методом скорейшего спуска или другими методами оптимизации. Так, реализация Lasso регрессии в scikit-learn использует метод координатного спуска.
Также можно решить нормальные уравнения с помощью численных методов линейной алгебры. Эффективный метод, который используется в scikit-learn для МНК — нахождение псевдообратной матрицы с помощью сингулярного разложения. Поля этой статьи слишком узки, чтобы касаться этой темы, за подробностями советую обратиться к курсу лекций К.В.Воронцова.
Реклама и заключение
Эта статья — сокращенный пересказ одной из глав курса классического машинного обучения в Киевском академическом университете (преемник Киевского отделения Московского физико-технического института, КО МФТИ). Автор статьи помогал в создании этого курса. Технически курс выполнен на платформе Google Colab, что позволяет совмещать формулы, форматированные LaTeX, исполняемый код Python и интерактивные демонстрации на Python+JavaScript, так что студенты могут работать с материалами курса и запускать код с любого компьютера, на котором есть браузер. На главной странице собраны ссылки на конспекты, «рабочие тетради» для практик и дополнительные ресурсы. В основу курса положены следующие принципы:
- все материалы должны быть доступны студентам с первой пары;
- лекция нужны для понимания, а не для конспектирования (конспекты уже готовы, нет смысла их писать, если не хочется);
- конспект — больше чем лекция (материала в конспектах больше, чем было озвучено на лекции, фактически конспекты представляют собой полноценный учебник);
- наглядность и интерактивность (иллюстрации, фото, демки, гифки, код, видео с youtube).
Если хотите посмотреть на результат — загляните на страничку курса на GitHub.
Надеюсь Вам было интересно, спасибо за внимание.
Refridgerator
Всегда думал, что интерполяция — это выбор из семейства функций уже проходящих через заданные точки, поскольку их так же бесконечное множество.