Рубрики
Без рубрики

Линейный регрессионный классификатор с нуля, используя Numpy и Stochastic Gradient Discent в качестве метода оптимизации

В статистике линейная регрессия является линейным подходом для моделирования взаимосвязи между скалярной зависимой переменной Y и одной или несколькими объясняющими переменными (или независимыми переменными).

Автор оригинала: Prakhar Thapak.

В статистике линейная регрессия является линейным подходом для моделирования взаимосвязи между скалярной зависимой переменной Y и одной или несколькими пояснительными переменными (или независимыми переменными) обозначенными X. Случай одной пояснительной переменной называется простым линейным регрессией. Для более чем одной пояснительной переменной процесс называется множественной линейной регрессией.

Как вы можете знать уравнение линии с наклоном м и перехватить C дается y = mx + c . Теперь в нашем наборе данных х это особенность и y это этикетка, которая является выходом.

Теперь мы начнем с некоторых случайных значений M и C и, используя наш классификатор, мы отрегулируем их значения, чтобы мы получили строку с наилучшим образом.

Предположим, у нас есть набор данных с одной функцией Х = [1,2,3,4,5,6,,7,8,9,10] и этикетка/выход Y = [1,4,9,16,25,36,49 64,81,100] . Мы начинаем со случайной стоимости м Быть 1 и C Быть 0 Отказ Сейчас начиная с первой точки данных, которая является х = 1 Мы рассчитаем его соответствующий вывод, который является y = m * x + c -> y = 1-1 + 0 -> y = 1 Отказ

Теперь это наше предположение для данного ввода. Теперь мы вычтем рассчитанным y, что наше предположение whith фактической вывод, который является y (оригинал) = 1 Чтобы рассчитать ошибку, которая является Y (Угадай) -Y (оригинал) Что также может быть названа нашей стоимостью, когда мы берем на квадрат из его среднего, и наша цель – минимизировать эту стоимость.

После каждой итерации через точки данных мы изменим наши значения м и C Таким, что полученный M и C дает линию наилучшим образом. Теперь мы можем сделать это?

Ответ использует Градиентная техника спуска Отказ В градиентном спуске мы смотрим минимизировать функцию стоимости и, чтобы минимизировать функцию затрат, нам нужно минимизировать ошибку, которая дана Ошибка = y (Угадай) -Y (оригинал) Отказ

Gd_demystified.png.

Теперь ошибка зависит от двух значений м и C Отказ Теперь, если мы возьмем частичное производное по ошибке в отношении м и C Мы можем узнать Oreintation I.E, нужно ли нам увеличить значения M и C или уменьшить их, чтобы получить линию наилучшего в форме.

Теперь ошибка зависит от двух значений м и C .Со при принятии частичной производной погрешности по отношению к м Мы получаем х и принимая частичное производное по ошибке с REPSCECT на C Мы получаем постоянную.

Так что если мы применяем два изменения, которые есть m = m-error * x и C = C-Error * 1 После каждой итерации мы можем настроить значение M и C, чтобы получить линию с наилучшими посадкой. Теперь ошибка может быть отрицательной, а также положительным. Когда ошибка отрицательна, это означает наш м и C меньше фактического м и C И, следовательно, нам нужно будет увеличить свои ценности, и если ошибка позитивна, нам нужно будет уменьшить свои ценности, которые мы делаем.

Но подождите, нам также нужен постоянный под названием Onlink_Rate, чтобы мы не увеличиваемся или уменьшали значения м и C С крутой скоростью. Так что нам нужно умножить M = M-ERROR * X * ONLICE_RATE и C = C-ERROR * 1 * SCURING_RATE чтобы сделать процесс гладким.

Поэтому нам нужно обновить м к M = M-ERROR * X * ONLICE_RATE и C к C = C-ERROR * 1 * SCURING_RATE Чтобы получить линию с наилучшей посадкой, и это наши линейные регрессы модели с использованием стохастического градиента спускающегося значения стохастического существа, что мы обновляем значения M и C в каждой итерации.

Вы можете проверить полный код в Python: https://github.com/assassinsurvivor/machinelearning/blob/master/regression.py