Читать нас в Telegram

Что такое линейная регрессия?

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

Линейная… регрессия… – всё по порядку

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

Задача восстановления зависимости между такими парами переменных называется регрессией (regressio — обратное движение, отход).

Зависимости между наблюдаемыми и целевой переменными могут быть любыми, в том числе сколь угодно сложными. Поэтому будем подбирать модель, которая по значениям наблюдаемых переменных будет выдавать значение целевой переменной, “близкое” к истинному, из ограниченного конкретного набора моделей Одним из наиболее простых классов (наборов) моделей является класс линейных моделей. Модель в машинном обучении – это математическая функция, которая (в контексте задачи регрессии) получает на вход значения наблюдаемых переменных, преобразует их, комбинирует и выдаёт значение целевой переменной. 

Линейная модель – модель, которая выражается линейной функцией. Слово “линейная” в названии объясняется тем, что графиком такой функции является прямая. В общем виде линейные функции одной переменной записываются так: h(x) = k*x + b, где k и b – произвольные числа. Пример линейной зависимости – зависимость расстояния от времени (s = v*t).

График линейной функции одной переменной

В случае, когда имеются несколько наблюдаемых переменных, линейные функции имеют вид: h(x_1, x_2, …, x_N) = a_0 + a_1*x_1 + a_2*x_2 + … + a_N*x_N, где a_0, a_1, …, a_N – также произвольные числа. График этой функции – тоже прямая, но уже в N-мерном пространстве.

График линейной функции двух переменных

Теперь соберём всё вместе:

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

Есть модель, есть данные – пары, состоящие из наборов x-ов (наблюдаемых переменных) и соответствующих y (целевых переменных), последнее, что осталось – подобрать оптимальные коэффициенты, которые стоят перед переменными (например, числа k и b в случае одной наблюдаемой переменной).  Оптимальность коэффициентов определяется функцией потерь, которая отображает, насколько прогнозы модели близки к целевым переменным. Их подбор называется обучением модели и производится специальными алгоритмами оптимизации (например, градиентным спуском). Эти коэффициенты называют весами модели, поскольку по значению коэффициента можно понять, насколько значима наблюдаемая переменная при нём (вспомним, что предсказание равно сумме произведений коэффициентов и соответствующих наблюдаемых переменных): чем больше коэффициент, тем больший вес имеет наблюдаемая переменная при нём, и наоборот, если коэффициент близок к 0, то переменная при нём практически никак не влияет на прогноз. Поэтому говорят, что линейная регрессия легко интерпретируема, то есть по модели легко можно, какие наблюдаемые переменные важны, а какие – нет.

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

Пример

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

Наблюдаемой переменной в этом случае является бюджет на рекламу, то есть данные, которые известны, а целевой переменной – прирост выручки по окончании месяца, то есть данные, которые неизвестны и которые вы хотите спрогнозировать. Пусть x_1, x_2, …, x_10 – количество денег, которые были потрачены на рекламу в прошлых 10 месяцах, а y_1, y_2, …, y_10 – прирост выручки, зафиксированный в конце соответствующего месяца. Если предположить, что зависимость между x и y – линейная, то можно воспользоваться линейной регрессией.

Визуализация модели и собранных данных

Если предположение верно, то обучив линейную регрессию, можно довольно точно описать данные. Как можно видеть на графике выше, все красные точки (пары бюджет-прирост) расположены близко к синей прямой (модели). То, что точки не лежат на прямой, объясняется шумом в обучающих данных, который может быть вызван ошибками при измерениях или сборе данных.

Применимость

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

Визуализация модели и дополненных данных

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

Что почитать