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

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

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

Давайте сосредоточимся на слове Линейная регрессия . Линейный означает «относящийся к, напоминающий или имеющий график, который является линией и особенно прямой линией» . С другой стороны, регрессия — это процесс, в котором мы прогнозируем числовое значение, используя доступные данные. Таким образом, согласно этим определениям, линейная регрессия — это процесс, с помощью которого мы прогнозируем числовое значение, проводя прямую линию через доступные точки данных.

примечание: для целей этой статьи Линейная регрессия = одномерная линейная регрессия

Все еще не ясно, что означает подгонка линии через точки данных? Взгляните на визуализацию и данные ниже.

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

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

ŷ = wx + b

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

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

x : ввод обучающих данных.

y : вывод обучающих данных.

X : данные тестирования.

ŷ :прогнозируемый результат (часто также называемый ƒ(x))

В нашей очень важной формуле здесь рассмотрим w как веса, которые умножаются на значения данных тестирования, а b — это смещение, которое добавляется к полученному продукту. В течение всего процесса обучения Модели за кулисами происходит то, что Модель корректирует значения w и b и находит наилучшую комбинацию этих значений. Как модель оценивает, является ли линия наилучшим образом подходящей для комбинации весов и смещения, мы обсудим здесь, а пока давайте интуитивно поймем, как различные веса и смещения влияют на линию. Рассмотрим точки данных на рисунке 1 (а), давайте подгоним линию с несколькими значениями веса, в то время как мы установим фиксированное значение смещения на 0, чтобы упростить задачу.

Напоминает ли вам Формула нечто подобное? Конечно, это так, это ничем не отличается от формулы наклона линии, которую мы изучали всю свою жизнь.

y = mx + c

Уравнение — это общее уравнение любой прямой линии, где m — это градиент линии (насколько крута линия), а c — этопересечение у-у(точка в котором линия пересекает ось Y). Это уравнение является линейным уравнением, и переменные x и y относятся к координатам на линии. Когда мы вводим значение x в уравнение y, мы получаем результат для y. Это означает, что x являетсянезависимой переменной, а y является зависимой переменной, поскольку она определяется значением x.

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

Функция стоимости — это функция/формула для определения того, насколько хорошо линия соответствует данным, и если она не соответствует идеально, каково значение ошибки подобранной линии. Наиболее часто используемая формула для расчета ошибки подобранной линии для линейной регрессии — это среднеквадратическая ошибка.

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

Давайте представим, как вычисляется функция стоимости для линейной регрессии, используя визуализацию набора данных, отличного от нашего предыдущего набора данных на РИСУНОК 1 (а).

Если мы нарушаем формулу MSE, «n» обозначает общее количество примеров, т. Е. Количество входных примеров, данных модели, в нашем случае у нас есть 10 примеров. Мы возводим в квадрат разницу фактических значений и прогнозируемых значений и делим ее на количество примеров. Это означает, что значение MSE никогда не может быть отрицательным.

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

Для приведенной выше РИСУНОК 4 (c) достигаются следующие значения MSE.

I : 101.1

II : 19.2

III: 14,3

IV : 6.54

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

Градиентный спуск — очень важный алгоритм, который помогает нам достичь минимально возможного значения функции стоимости. Поскольку мы уже обсуждали функцию стоимости MSE, важно знать, что эта функция стоимости является выпуклой функцией, а это означает, что она имеет только 1 глобальный минимум и не имеет локального минимума. Если это звучит как инопланетная концепция для вас, давайте объясним это подробнее. Если для некоторых данных и их модели мы построим трехмерную модель, где есть 3 оси, горизонтальные оси — это параметры W и b, а вертикальная ось — функция стоимости для этой конкретной комбинации W и b, мы всегда будем получать график кривой/формы дуги, как показано ниже.

Формулы градиентного спуска для параметров линейной регрессии:

Давайте разделим приведенную выше формулу, греческий алфавит альфа (a) известен как скорость обучения, он представляет собой размер шага, выполняемого во время каждого обновления, поскольку сначала устанавливается определенное значение для параметров (обычно оба устанавливаются равными 0), функция стоимости построена / найдена, а затем приведенные выше формулы используются для принятия мер по уменьшению функций стоимости путем настройки значений параметров, таким образом, скорость обучения используется для определения того, насколько сильно происходит изменение параметров. Частная производная параметров вычисляет, как функция стоимости J изменяется при изменении параметров при сохранении других переменных постоянными. Следует отметить, что изменения обоих параметров происходят одновременно.

Скорость обучения — это гиперпараметр градиентного спуска логистической регрессии. Гиперпараметры, в отличие от параметров, устанавливаются и изменяются/настраиваются пользователем, а не настраиваются автоматически.

Существует несколько способов реализации линейной регрессии. Python предоставляет библиотеки с открытым исходным кодом, которые можно использовать для простой реализации линейной регрессии, а также для создания модели линейной регрессии с нуля.

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

Более того, если вы хотите запачкать руки созданием модели с нуля, важно хорошо разбираться в классах и функциях Python, а затем реализовывать их с помощью известных библиотек Python Tensorflow или Pytorch.