Теоретический подход

Когда я сижу на стуле и думаю о будущем науки о данных и машинного обучения, я вижу огромный разрыв в том, как люди думают об этом предмете и чем он является на самом деле. Я верю, что Обычный Человек может быть специалистом по обработке данных или инженером по машинному обучению, получив план о том, как и что читать. Существует так много руководств о том, как и с чего начать, и я не буду вдаваться в подробности. Моя идея состоит в том, чтобы познакомить людей с первым алгоритмом машинного обучения, который все узнают: Линейная регрессия ... !!

Я хочу показать, насколько простым может быть машинное обучение с самого начала, но при этом оно будет таким сложным и захватывающим, когда вы погрузитесь глубже. Итак, начнем. 😃

Как вы думаете, что такое линейная регрессия?

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

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

y = Mx + C

Разве это не похоже на старое-доброе уравнение прямой? Да, это так..!!

Здесь « - независимая переменная (имеющаяся у нас функция), а « - зависимая переменная (значение, которое мы хотим спрогнозировать). « и « являются константами и представляют наклон линии регрессии и точку пересечения оси Y соответственно.

Теперь с точки зрения машинного обучения представьте, что у вас есть 1000 экземпляров независимой переменной (x), а также зависимой переменной (y). Возможно, вы захотите использовать машинное обучение для прогнозирования 'y' по заданному значению. независимой переменной «x» (этот «x» не входит в те 100 экземпляров, которые мы уже знаем). Но действительно ли вы верите, что можете получить такие данные, при которых вы на 100% уверены, что « и « имеют линейную связь (означает, что точки (x, у) образуют прямую)? Без прав? В реальной жизни это невозможно. Но мы по-прежнему используем линейную регрессию. Почему??

Что мы делаем с помощью линейной регрессии, так это пытаемся подобрать линию, которая минимизирует расстояние между линией и точками (x, y). Эта линия называется линией наилучшего соответствия или линией регрессии. Теперь для этой линии мы обязательно будем иметь значение M и C. Следовательно, если у нас есть значение x, теперь мы можем предсказать значение y, просто подставив его в уравнение для прямой линии: y = Mx + C.

Теперь процесс поиска наиболее подходящей линии является повторяющимся. Мы используем метод наименьших квадратов, чтобы найти линию. Это в основном поиск ошибки между вашими предсказаниями y и реальным значением y. А затем используя вашу ошибку, чтобы лучше соответствовать линии. Вот руководство, объясняющее, как работает метод наименьших квадратов: https://www.varsitytutors.com/hotmath/hotmath_help/topics/line-of-best-fit

Ok. Таким образом, описанный выше процесс будет работать нормально, если у вас есть одна независимая переменная x. Что делать, если у вас много функций. т.е. много независимых переменных (x1, x2, x3,…)?

Вы не можете использовать уравнение: y = Mx + C,, если у вас нет единственного значения x для каждого экземпляра, а вместо этого x1, x2, x3,… Итак, в этом сценарии мы используем модель множественной линейной регрессии:

y = C + M1x1 + M2x2 + M3x3 + ....

Это уравнение аналогично уравнению для прямой линии с той лишь разницей, что оно представляет собой n-мерную плоскость, а не линию. Предположим, у вас есть x1 и x2 вместо одного x, тогда наиболее подходящая плоскость может выглядеть, как показано ниже:

Большой..!! Итак, теперь, используя приведенные выше уравнения, вы не можете подобрать линейную модель, имеющую одну или несколько независимых переменных. Ну не совсем. 😅

Я описал только одно предположение, связанное с линейной регрессией, а именно: мы предполагаем, что независимые переменные и зависимая переменная имеют линейную связь. Но помимо этого у нас есть и другие предположения… !!

Вот другие предположения, описанные в этом блоге: https://www.statisticssolutions.com/assumings-of-linear-regression/

  • Многомерная нормальность
  • Нет или мало мультиколлинеарности
  • Нет автокорреляции
  • Гомоскедастичность

Позвольте мне немного объяснить каждый термин:

  • Многомерная нормальность: это означает, что все переменные независимо друг от друга должны иметь нормальное распределение, как показано ниже:

  • Нет или мало мультиколлинеарности: это означает, что у нас не должно быть переменных с высокой степенью корреляции. т.е. у нас не должно быть независимых переменных, которые фактически зависят друг от друга.
  • Без автокорреляции: автокорреляция возникает, когда для определенной переменной будущие значения зависят от прошлых значений (например, в данных фондового рынка). f (x + 1) зависит от f (x)
  • Гомоскедастичность. Это, вероятно, наиболее наивное предположение из всех. Гомоскедастичность возникает, когда для переменной у нас есть более или менее равные значения для всех значений «y». Зачем кому-то использовать константу как независимую переменную? 😏

Следующий?? Вы все еще можете узнать больше о том, как проверить, соответствует ли наш набор данных этим предположениям, а также исправить их, если необходимо, перейдя по следующей ссылке: https://www.statisticssolutions.com/assumings-of-linear-regression/

Ладно, насчет линейной регрессии .. !! После того, как мы построим модели линейной регрессии, нам нужно правильно проверить производительность модели. Для этого нам понадобится некоторая метрика производительности, чтобы взвесить нашу модель.

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

  • Средняя абсолютная ошибка: в этой метрике производительности мы просто вычитаем каждый y_ref из y_pred, берем абсолютное значение, а затем принимаем среднее значение по всему установленный. Основным недостатком использования этой метрики ошибок является то, что она дает равный вес как большим, так и малым ошибкам.

  • Среднеквадратичная ошибка: в этом показателе производительности вместо абсолютного значения разницы мы берем квадрат разницы между y_ref и y_pred. После возведения в квадрат мы находим среднее значение, а затем извлекаем квадратный корень. В этой метрике большие ошибки наказываются больше, поскольку мы возводим ошибку в квадрат.

На практике мы используем оба этих показателя производительности в зависимости от необходимости проблемы. Обе оценки имеют диапазон от 0 до ∞, и чем меньше у нас ошибок, тем лучше модель.

Если вы читаете это, значит, теперь вы знаете некоторую линейную регрессию. Но на этом история не заканчивается. 😃

В моделях реального мира, если вы просто попытаетесь подогнать данные непосредственно к уравнению, это приведет к беспорядку и чрезмерной подгонке. Вот почему мы используем регуляризацию. Есть три типа регуляризации, которые мы используем в линейной регрессии: Лассо, Ридж и Эластичная сеть. Вероятно, это будет частью моего следующего обсуждения. 😺

Так что до тех пор, если вам понравилась эта статья, вы можете погрузиться глубже и научиться реализовывать ее на Python или R.

Вот как вы можете реализовать это в python (вы также найдете примеры в конце этой страницы): http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LinearRegression.html