Регрессия пример: примеры и вычисление функции потерь

Содержание

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

Линейная регрессия (Linear regression) — модель зависимости переменной x от одной или нескольких других переменных (факторов, регрессоров, независимых переменных) с линейной функцией зависимости.

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

Применение линейной регрессии

Предположим, нам задан набор из 7 точек (таблица ниже).

Цель линейной регрессии — поиск линии, которая наилучшим образом соответствует этим точкам. Напомним, что общее уравнение для прямой есть f (x) = m⋅x + b, где m — наклон линии, а b — его y-сдвиг. Таким образом, решение линейной регрессии определяет значения для m и b, так что f (x) приближается как можно ближе к y. Попробуем несколько случайных кандидатов:

Довольно очевидно, что первые две линии не соответствуют нашим данным. Третья, похоже, лучше, чем две другие. Но как мы можем это проверить? Формально нам нужно выразить, насколько хорошо подходит линия, и мы можем это сделать, определив функцию потерь.

Функция потерь — метод наименьших квадратов

Функция потерь — это мера количества ошибок, которые наша линейная регрессия делает на наборе данных. Хотя есть разные функции потерь, все они вычисляют расстояние между предсказанным значением y(х) и его фактическим значением. Например, взяв строку из среднего примера выше, f(x)=−0.11⋅x+2.5, мы выделяем дистанцию ошибки между фактическими и прогнозируемыми значениями  красными пунктирными линиями.

Одна очень распространенная функция потерь называется средней квадратичной ошибкой (MSE). Чтобы вычислить MSE, мы просто берем все значения ошибок, считаем их квадраты длин и усредняем.

Вычислим MSE для каждой из трех функций выше: первая функция дает MSE 0,17, вторая — 0,08, а третья — 0,02. Неудивительно, что третья функция имеет самую низкую MSE, подтверждая нашу догадку, что это линия наилучшего соответствия.

Рассмотрим приведенный ниже рисунок, который использует две визуализации средней квадратичной ошибки в диапазоне, где наклон m находится между -2 и 4, а b между -6 и 8.

Слева: диаграмма, изображающая среднеквадратичную ошибку для -2≤m≤4, -6≤p≤8 Справа: тот же рисунок, но визуализирован как контурный график, где контурные линии являются логарифмически распределенными поперечными сечениями высоты.

Глядя на два графика, мы видим, что наш MSE имеет форму удлиненной чаши, которая, по-видимому, сглаживается в овале, грубо центрированном по окрестности (m, p) ≈ (0.5, 1.0). Если мы построим MSE линейной регрессии для другого датасета, то получим аналогичную форму. Поскольку мы пытаемся минимизировать MSE, наша цель — выяснить, где находится самая низкая точка в чаше.

Больше размерностей

Вышеприведенный пример очень простой, он имеет только одну независимую переменную x и два параметра m и b. Что происходит, когда имеется больше переменных? В общем случае, если есть n переменных, их линейная функция может быть записана как:

f(x) = b+w_1*x_1 + … + w_n*x_n

Один трюк, который применяют, чтобы упростить это — думать о нашем смещении «b», как о еще одном весе, который всегда умножается на «фиктивное» входное значение 1. Другими словами:

f(x) = b*1+w_1*x_1 + … + w_n*x_n

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

Итак, как мы вычисляем, где именно эта точка на дне? Распространенный подход — обычный метод наименьших квадратов, который решает его аналитически. Когда есть только один или два параметра для решения, это может быть сделано вручную, и его обычно преподают во вводном курсе по статистике или линейной алгебре.

Проклятие нелинейности

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

Различие между линейными уравнениями, которые мы составили, и нейронной сетью — функция активации (например, сигмоида, tanh, ReLU или других).

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

Минимум функции

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

Примеры линейной регрессии

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

Загрузить программу ВІ

Демонстрации решений

Оглавление

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

Представьте, что вам дали базу данных, содержащую возраст и доход каждого жителя определенного района. Ваш начальник хочет, чтобы вы использовали эти данные, чтобы создать модель, предсказывающую доход человека на основании его возраста. И вот вы звоните с просьбой о срочной статистической помощи некоему Доктору Иванову из Информационных Систем. Удача вам сопутствует – доктор на связи. Док Иванов мудро удостоверяется, что среди данных нет аномальных значений, способных исказить анализ. Затем он колдует над данными и добросовестно представляет вам математическую модель: «Умножьте возраст в годах на 971.4, приплюсуйте 1536.2 и получите годовой доход в долларах. Вот ваша оптимальная модель».

 

Вы как следует благодарите Доктора Иванова и спешите подготовить отчет своему начальнику. Вы используете формулу, чтобы построить график с доходом по вертикальной оси и возрастом по горизонтальной, и восхищаетесь простотой, с которой это правило связывает возраст и доход. Это прямая линия – и к тому же, оптимальная. Но ее блеск чуть меркнет, когда вы замечаете, что по этой модели доход 18-летних составляет $19,021 (этим юнцам следовало бы делать домашние задания, а не грести такие суммы!)  И он исчезает окончательно, когда вы видите, что предполагаемый доход 70-летних составляет $69,534, и каждый последующий год жизни добавляет автоматический бонус в $971 (и вряд ли за счет надбавок к государственной пенсии).

 

Так почему же формула доктора Иванова выглядит подозрительной? Потому что она плохая. Но как модель может быть плохой, когда она «оптимальна»? Она будет оптимальна только в том случае, если Иванов сделал правильное предположение о ее форме. Он предположил, что правильная форма модели – это прямая линия.  Компьютер сделал свою часть работы, выбрав наиболее подходящую прямую линию из всех возможных с помощью применения многоуважаемой техники, созданной еще Карлом Гауссом (1777-1855).

Уловка-22

Если вам кажется, что здесь есть Уловка-22, то вы правы. Если бы вы знали верную форму модели с самого начала, вам бы не понадобился Доктор Иванов. Док тоже не знал, какая форма является верной, так что из-за своей занятости он выбрал самое простое и предположил, что это прямая линия. Уравнение прямой линии выглядело научным, по крайней мере, в тот момент, но по сути научным не являлось. Прямые линии зачастую отражают невероятные физические законы в науке и инженерии, и нет никаких оснований полагать, что они применимы к экономическим ситуациям. Алгебраическая формула, и впрямь, проста и удобна, но кому нужно простое описание плохой модели?

 

Действительно ли объединенные силы математики и процессора Pentiumвытянули именно то, что было нужно, из данных? Вот и нет. То, что сделал Док, случается слишком часто, потому что всегда есть искушение бездумно применить повсеместно используемый инструмент, называемый линейной регрессией.

Линейная регрессия

Формула, которую дал вам Док, умножает возраст на 971.4 и добавляет 1536. 2 к результату. Он получил 971.4 и 1536.2 с помощью компьютерной программы линейной регрессии, которая выполнила все трудоемкие вычисления, чтобы найти эти числа. Данные числа определяют конкретную прямую, на которую ложатся исходные данные.

 

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

 

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

 

Доход = 1007.8*Возраст -752.35*Число детей +933.6

 

Звездочка – знак умножения.Влияние нашей новой переменной «число детей», тоже линейное. Это происходит потому, что предполагаемый доход прямолинейно уменьшается на $752.35 за каждого дополнительного ребенка. Мы используем эту формулу, показывающую отношение возраста и числа детей к доходу, чтобы проиллюстрировать то, что важно знать о числах, предоставляемых линейной регрессией.

 

1) Довольно часто, некорректно полагают, что 1007.8 – это «вес» возраста, а -752.35 – «вес» числа детей. Если бы возраст выражался в месяцах, а не в годах, то новый «вес» был бы разделен на 12 лишь для того, чтобы отразить изменение шкалы. Таким образом, величина «веса» не является мерой важности прогнозирующего параметра, к которому он относится. Называйте эти множители коэффициентами, и вы не ошибетесь и избежите семантической опасности «веса».  В модели будет столько же коэффициентов, сколько и прогнозирующих параметров.

 

Единственное предназначение коэффициентов и, в сущности, всех чисел (технически, значений параметров), производимых регрессией – это сделать так, чтобы формула хорошо сходилась с исходными данными.

 

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

 

3) Последний параметр регрессии, константа +933.6 существует для того, чтобы удостоверится, что если каждый параметр принимает среднее значение, то результирующий предполагаемый доход тоже окажется средним. Линейная регрессия всегда так работает. Допустим, средний возраст равен 45.67, а среднее число детей – 1.41. Мы можем подставить эти значения в формулу следующим образом:

 

1007.8*45.67 -752.35*1.41 +933.56 = 45899

 

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

Математический подвиг

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

 

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

 

Книга 1995 года, адресованная индустрии прямого маркетинга, говорит о трансформировании следующее [наши комментарии – в квадратных скобках]:

 

«…довольно просто взглянуть на диаграмму рассеяния [точечный график, в котором горизонтальная ось – прогнозирующие параметры, а вертикальная – прогнозируемые] для определения, являются ли отношения линейными, или же они должны быть выпрямлены с помощью какой-либо трансформации».

 

Предыдущее утверждение верно, если рассматривается небольшое число параметров, и отношения настолько сильны, что очевидны при первом взгляде. Но если слабые отношения погребены под грудой из 50,000 параметров, тогда бы и Шерлок Холмс, вооруженный своей лупой, их бы не нашел. Другой подход с такой же сложностью – это построить график с ошибками («погрешностью») линейной модели, чтобы обнаружить очевидные закономерности упущенной информации. Недавно была продемонстрирована работа очень медленной (но упорной) компьютерной программы, которая испытывает одно уравнение трансформации за другим, усердно строя графики каждой найденной формулы на экране. Вы буквально можете оставить эту штуку работать всю ночь. Столь фанатичную преданность аналитическим функциям сложно оправдать, потому что пользователь, тот, кто платит по счетам, без сомнений, не обладает способностью интуитивно интерпретировать любую из них.

 

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

 

Доход = 46001 -exp(0.01355*(Возраст-46)**2)

 

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

Повседневный подвиг

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

 

Начать вам лучше с составления собственной табличной модели со следующими строчками:

Возраст Доход
18-22 $7,500
23-33 $25,000
34-44 $38,000
45-55 $58,000
56-60 $30,000
61 и больше $21,000

По крайней мере, эта таблица отражает реальность, в которой студенты и пенсионеры в среднем получают меньше остальных. Это может быть не алгебраично и не оптимально, но это модель и, к тому же, хорошая и нелинейная. Существует естественная разница между линейной моделью Дока и вашей прагматичной таблицей. Уравнение Дока «глобально»: это означает, что оно делает оценки для любого возраста от нуля до бесконечности. Если из-за ошибки ввода или программирования, в формулу будет подставлено значение возраста 999, то она радостно определит предполагаемый доход как $971,965. Помните, что многие математические формулы безжалостно проецируются в прекрасное далеко, если в них подставляют значения прогнозирующего параметра абсурдно далекие от их разумных пределов. Не всегда легко найти математические выражения, которые подстраиваются под данные в рамках разумного диапазона.

 

Ко всей этой затее с трансформированием есть более практичный подход. Его можно осуществить на основе таблицы, в которой доход для диапазона возрастов 56-60 превосходил бы доход для диапазона 18-22 примерно в четыре раза – лучше или хуже группируя разные  диапазоны возрастов и наблюдая, как изменяется средний доход. Такая компьютерная процедура называется локальным сглаживаем. При локальном сглаживании предполагается, что прогнозируя, скажем, доход для 35-, 34- и 36-летних мы получим значение, схожее со значением дохода для 35-летних, и таким образом, это значение будет обладать почти одним с ним весом при округлении. Доходы для 18-летних или 70-летних не будут иметь ничего общего с доходом 35-летних, и поэтому получат нулевой вес при взвешивании. Более разумно использовать компьютер для нахождения этой локальной информации, чем пускаться в охоту за формой (математической функцией), которая по счастливой случайности будет иметь изгибы в нужных местах. 

Прогнозирующие параметры

Линейная регрессия делает допущение, что прогнозирующие параметры что-то измеряют. Предположим, у нас есть прогнозирующий параметр – семейное положение, и он кодируется так: 1 = состоит в браке, 2 = не состоит в браке, 3 = разведен(а), 4 = вдова(ец). Эти четыре числовых кода ничего не измеряют; они произвольно выбраны, чтобы обозначать категории. Пользователю линейной регрессии приходится обходить эту проблему с помощью создания дополнительных прогнозирующих параметров, называемых вспомогательными переменными. Мы не станем в это углубляться, но рекомендуем вам учесть, что это другой неудобный аспект попытки приспособиться к допущениям линейной регрессии. Мы не завидуем тем, кому приходится иметь дело с дюжиной потенциальных прогнозирующих параметров, которые требуют применения уловки с трансформацией или же со вспомогательными переменными.

Значима ли модель?

В оценке того, насколько модель хороша, только одна вещь имеет значение – насколько хорошо модель делает предположения на основе данных, которых никогда не встречала. Всегда придерживайте некоторые данные в стороне в процессе моделирования как раз на этот случай. Когда значения внешних данных отсортированы от меньшего к большему, очевидна ли разница между возможностями и рисками? Сравнение различий между нижними 10 процентами значений и верхними 10 процентами – это распространенная проверка качества модели. Нет ничего особенного в группировке по десяткам. Общее правило – сделать группы настолько маленькими, насколько возможно, чтобы при этом сохранялась закономерность ступенчатого различия между группами. Если градация сохраняется, а результаты, полученные на основе данных, не входящих в выборку, выглядят хорошо, то модель значима. Точка.

 

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

Охраняя храм

Если вы посмотрите на линейную регрессию с точки зрения математики, то она прекрасна. Если вы взгляните на нее как на инструмент моделирования и оценки, то у нее обнаружится множество недостатков. Чтобы приблизится к математическому храму, вам потребуется жрец, который знает, как манипулировать данными, чтобы они соответствовали линейному канону, говорит о F-тестах и делает такого рода предупреждения (все та же книга):

 

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

 

Это невероятное заявление! После всей суеты вокруг модели, может оказаться, что у бедного программиста нет необходимых инструментов, чтобы с ней работать!

Заключение

Можно еще многое сказать о линейной регрессии. В статье представлены наиболее практичные советы, потому что регрессия находится повсюду и обладает такой богатой историей, что она будет использоваться еще долго. Линейная регрессия – это наследие тех дней, когда компьютеров не существовало, и нужен эксперт, чтобы грамотно ей воспользоваться. Это контрпродуктивно и дорого. Программное обеспечение должно помогать людям. Если вы действительно знаете, чего хотите, вы можете выполнить это в компьютерной программе. Современные компьютерно-ориентированные методы могут позаботиться о тех ограничениях линейной регрессии, которые требуют затратных услуг эксперта, вроде выявления аномальных значений, проведения трансформаций и манипуляций с категориями. Когда дело касается предсказаний, они тоже могут выполняться с помощью компьютерных программ, используя в основе данные, использованные при создании модели.

Оригинал статьи www.quirks.com
Перевод статьи Агентство маркетинговых исследований FDFgroup

Почитать еще

Скользкий склон безудержной семантики

Недавняя статья под названием «Спящее будущее визуализации данных? Фотография »расширяет определение визуализации данных до нового предела.

Data mining средства обнаружения данных могут создавать ценность для бизнеса?

Мы живем во время, когда данные вокруг нас. В эпоху цифровых технологий те, кто может выжать

Что такое гипер-персонализация? Преимущества, структура и примеры

Представьте себе сценарий встречи с кем-то много раз: Представьте, что человек узнает ваше имя, ваши

Введение в анализ временных рядов

Хотя для анализа данных используются все многочисленные передовые инструменты и методы, такие как наука о

Визуализация данных и виртуальная реальность

Время от времени кто-то заявляет, что визуализация данных может быть улучшена при просмотре в виртуальной

Структурированные и неструктурированные данные

Из-за всей шумихи вокруг больших данных и способов их использования компаниями вы можете спросить: «Какие

Что может сделать машинное обучение для вашего бизнеса прямо сейчас?

Этим вопросом задается множество бизнес-лидеров, поскольку ежедневно новшества в сфере ИИ и машинного обучения расширяют

История развития моделей данных

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

Информационный шум

Чтобы тщательно, точно и четко информировать, мы должны определить предполагаемый сигнал, а затем усилить его,

Читайте о всех решениях

Какие бы задачи перед Вами не стояли, мы сможем предложить лучшие инструменты и решения

Смотреть