среда, 15 августа 2018 г.

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

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

Во-первых, исследуем данные, построив по ним график:

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

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

y = mx + b

где:
y - это температура окружающей среды по Цельсию - значение которое мы пытаемся предсказать
m - это коэффициент уклона линии
x - это количество стрекотов в минуту - значение нашего вводного свойства
b - это y-отступ

По общепринятому соглашению в машинном обучении уравнение для модели записывается немного иначе:

y′ = b + w1x1

где:
y′ - это предсказываемая метка (желаемый результат)
b - это смещение (y-отступ), иногда записываемый как w0
w1 - это вес свойства 1. Вес - это тоже самое что и уклон m в традиционном уравнении линейного графика
x1 - это свойство (известный ввод)

Чтобы вывести (предсказать) температуру y′ для нового значения количества стрекотов в минуту x1 необходимо просто подставить это значение в модель.

В то время как эта модель использует только одно свойство, более сложные модели могут основываться на многих свойствах, каждое имеет отдельный вес (w1, w2, и т.д.). Например, модель, основывающаяся на трех свойствах, может выглядеть так:

y′ = b + w1x1 + w2x2 + w3x3