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

формула, которую мы используем в линейной регрессии,

y=m*x+c

эта формула называется уравнением прямой.

это уравнение нарисует линию, которая будет пересекать ось Y в соответствии со значением c. Значение m определяет крутизну линииe. Формула будет представлять собой прямую линию на двумерном графике со значениями m=1 и c=1 и значениями x=(0,5) и y=(1,6).

Линия красного цвета называется линией наилучшего соответствия. Мы можем предсказать зависимую переменную для любого значения независимой переменной, если m и c известны, на приведенной выше диаграмме мы имеем m = 1 и c = 1, значения m и c генерируются в соответствии со значениями зависимой и независимые столбцы.

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

salary = m * experience +c

m-> slop of line
c -> intercept

Я использовал набор данных Kaggle для выполнения линейной регрессии, вот ссылка: -



нахождение значения m (наклон линии): -

Это значение m определяет угол наклона линии. Изменение этого значения эффективно поворачивает линию. Увеличение наклона(м) приведет к тому, что линия станет круче или ближе к вертикальной оси , а уменьшение наклона сделает линию более плоской или ближе к горизонтальной. ось. Наклон линии (m) говорит нам об изменении y для изменения x. он показывает изменение y, когда изменение произошло в 1 единице x.

У нас есть формула для наклона двух точек: m=(y2-y1)(x2-x1). На значение m могут влиять точки данных набора данных, но формула, которую мы будем использовать для линейной регрессии, отличается, потому что в нашем случае у нас может быть n точек, поэтому формула определяется как.

Пусть набор данных с «n» наблюдениями и двумя переменными, «x» (независимая переменная) и «y» (зависимая переменная), формула для расчета наклона, часто обозначаемая как «m», выглядит следующим образом:

        (Σ((xᵢ - x̄ ) (yᵢ - ȳ )))
    m = ---------------------
           (Σ((xᵢ - x̄)²))

Где:

  • Σ представляет собой сумму значений по наблюдениям «i».
  • xᵢ и yᵢ представляют отдельные значения независимых и зависимых переменных соответственно.
  • x̄ и ȳ представляют собой средние значения независимых и зависимых переменных соответственно.

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



используя формулу, чтобы найти значение m, мы получаем значение m = 9449,962321455077. Мы выполнили первое задание. Теперь следующий c.

нахождение значения c(y-intercept):-

мы находим значение m, чтобы найти значение c, которое найдем с помощью следующей формулы, приведенной ниже.

c=(mean of y) - m * (mean of x)
          
              or
c=(mean of salary) - m * (mean of YearsExperience)

Вот что происходит, когда вы меняете значение «c».

  1. Увеличение «с»: если вы увеличите значение «с», линия сдвинется вверх. Это означает, что для любого заданного значения x прогнозируемое значение y будет выше по сравнению с исходной линией. По сути, линия удаляется от начала координат по оси Y.
  2. Уменьшение «с»: И наоборот, если вы уменьшите значение «с», линия сдвинется вниз. В этом случае предсказанные значения y для любого данного x будут ниже по сравнению с исходной линией. Линия перемещается ближе к началу координат по оси Y.
  3. Установка «c» на ноль: Когда «c» установлено на ноль, линия будет проходить через начало координат (0,0). Это означает, что линия не имеет постоянного члена, а значения y прямо пропорциональны значениям x. Уравнение линии будет иметь форму y = m*x, где «m» представляет собой наклон.

используя формулу, которую мы имеем для c, мы получаем значение c=25792,20019866869.



Прогноз

у нас есть значения m и c, которые являются двумя основными параметрами линейной регрессии после получения значений нашей новой модифицированной формулы.

y`=(9449.962321455077) *(year of Experience) +(25792.20019866869)

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

actual value(y) | predicted value(y`)
-------------------------------------
112635.0        | 116511.838485    
67938.0         | 72097.015574
113812.0        | 103281.891235
83088.0         | 75877.000502
64445.0         | 56032.079627
57189.0         | 60757.060788

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

Оценка модели: -

мы делаем прогноз нашей модели, теперь мы оценим, насколько точна наша модель, для выполнения этой задачи мы будем использовать R-квадрат (R²), который является статистической мерой, которая представляет долю дисперсии в зависимой переменной (целевой переменная), которую можно предсказать по независимым переменным (переменным-предикторам) в регрессионной модели. Он указывает, насколько хорошо модель регрессии соответствует данным. См. Код, в котором я вычисляю R² с помощью sklearn. Вот код. наше значение R² равно 0,90.



Формула для R-квадрата выглядит следующим образом:

R² = 1 — (ТСР/СТП)

  • SSR (Sum of Squares Residual) представляет собой сумму квадратов разностей между фактическими значениями зависимой переменной (y) и значениями, предсказанными регрессионной моделью (ŷ).
  • SST (Sum of Squares Total) представляет собой сумму квадратов разностей между фактическими значениями зависимой переменной (y) и средним значением зависимой переменной (ȳ).

здесь SSR=Σ(y — ŷ)² и SST=Σ(y — ȳ)²

R² = 1 — (Σ(y — ŷ)² / Σ(y — ȳ)²)

Это всего лишь одна из многих оценочных метрик, используемых для оценки качества соответствия. Наряду с R-квадратом следует учитывать и другие показатели оценки, чтобы получить полное представление о производительности модели.

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

у нас есть 3 вещи в приведенной выше ошибке изображения, фактическом и прогнозируемом значении, ошибка - это просто разница между фактическим и прогнозируемым значением. простое значение ошибки для каждой точки данных представлено как -> (yᵢ - ȳ)² это даст ошибку в каждая точка. Но чтобы получить общую ошибку, мы используем другую формулу, как указано ниже.

Total Error=Σ(yᵢ - ȳ)²

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

у нас есть y и ȳ у нас есть значение ȳ=m*xᵢ+c

подставив значение ȳ в формулу общей ошибки, мы получим новое уравнение.

total Error(E)=Σ(yᵢ -m*xᵢ+c)²

используя приведенное выше уравнение, мы выполним вывод и получим значение c и m. Мы сделаем частную производную, чтобы найти значения обоих. Мы получим значение c, затем m.

найдите значение c, используя частную производную.

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

найти значение m, используя частную производную.

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

оба вывода начинаются с формулы общей ошибки Σ(yᵢ -m*xᵢ+c)², так что это поможет вам легко связать.

Заключение:-

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

счастливого обучения :)