Линейная регрессия в основном является используемым типом прогнозирующего анализа и один из самых простых алгоритмов в изучении машины. Он пытается измерить взаимосвязь между переменными, устанавливая линейное уравнение к наблюдаемым данным. Например, когда возраст мобильного телефона увеличивается, цена снизится. Итак, одна переменная – пояснительная переменная (возраст). Или иначе мы можем сказать, что это независимая переменная. А другой считается зависимой переменной (ценой).
Из этого примера мы можем сказать будущую цену мобильного телефона, используя это наблюдаемые данные. Вот таблица примерных данных.
250 | 1 |
230 | 2 |
190 | 5 |
160 | 6 |
120 | 8 |
90 | 9 |
70 | 10 |
40 | 11 |
В этом случае мы видим, что Отрицательные отношения между возрастом мобильного телефона и ценой. Почему я говорю это, когда возраст мобильного телефона увеличивается, цена будет снижена.
Другим примером является когда опыт увеличивается, так и зарплату. Это положительные отношения .
Мы пытаемся предсказать будущие цены мобильного телефона, учитывая такой возраст.
Вопрос в том, чтобы Какова цена после 7 лет? . Давайте поставим туда, чтобы увидеть, сколько это так.
Это немного ниже, чем сто пятьдесят долларов. Итак, теперь смотрите математическую сторону простой линейной регрессии. Формула – Y + B
Отказ Я знаю, что ты немного знаком с этой формулой. Потому что в основном мы все узнали это в школе.
y
– Что мы собираемся предсказать. В этом случае цена мобильных телефонов (зависимая переменная)м
– склон или постоянныйx
– вводится как 7 лет (независимая переменная)B
– Перехват
И м
и B
даются следующей формулой.
Найдите уравнение линейного регрессии для этого набора данных мобильных телефонов.
1 | 250 | 1 | 250 |
4 | 460 | 2 | 230 |
25 | 950 | 5 | 190 |
36 | 960 | 6 | 160 |
64 | 960 | 8 | 120 |
81 | 810 | 9 | 90 |
100 | 700 | 10 | 70 |
121 | 440 | 11 | 40 |
Хорошо, теперь мы можем назначить эти значения к этому формулам и получить значение м
и B
Отказ
Находить m – Склон
Находить b – Перехват
Предсказать цену мобильной связи через 7 лет. Использование Y + B
Отказ y
это цена мобильного телефона через 7 лет (что мы собираемся предсказать). х
7 лет.
Цена мобильных телефонов после 7 лет 133,40 грн . Теперь сделайте то же самое с Scikit Узнайте линейную регрессию Модель с помощью Python.
Модель линейной регрессии (Scikit Survey)
Во-первых, мы должны сохранить эти данные, установленные в файл CSV. Для этого создайте новый файл CSV AS MobileData.csv
и добавьте эти данные такими.
Давайте кодируемся! Я использую Jupyter ноутбук
Отказ Вы можете использовать любой Python IDE, как вы предпочитаете. Далее установите библиотеки, которые нам нужны. (Если вы используете Jupyter ноутбук
, добавьте восклицательный знак перед командой, чтобы действовать как если бы она выполнена в терминале)
!pip install scikit-learn !pip install numpy !pip install pandas !pip install matplotlib
Импортировать эти библиотеки
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression
Прочитайте MobileData.csv
Файл с использованием панда
data_set = pd.read_csv('mobiledata.csv')
Создайте диаграмму и положите точки там
plt.scatter(data.age, data.price, color='red') plt.xlabel('Mobile phone Age') plt.ylabel('Price')
Вы можете увидеть тарту, как это.
Получить возрастные значения как х
и цен цен как y
Отказ Нам нужно преобразовать эти значения на numpy
множество.
x = np.array(data.age.values) y = np.array(data.price.values)
Создайте объект класса линейного регрессии и обувьте модель, используя подходит
функция. Кроме того, model.fit
Функция позволяет двумерным массивом для х
позиция.
model = LinearRegression() model.fit(x.reshape((-1,1)), y) # x.reshape((-1,1) is convert numpy array to two dimensional array
Мы можем найти лучшую подходящую строку для этого набора данных, если мы хотим. И получить значения м
(Склон) и B
(Перехватить).
plt.scatter(data.age, data.price, color='red') plt.xlabel('Mobile phone Age') plt.ylabel('Price') m,b = np.polyfit(x,y,1) plt.plot(x,m*x+b)
Наконец, прогнозировать цену мобильной связи после 7 лет с использованием модели. Объект модели определяется как модель
Отказ Предсказать цену, чтобы увидеть, равно ли она ранее рассчитанной стоимости или нет. Для этого нам нужно преобразовать значение x (7) на номерного массива и двумерного массива.
year_seven = np.array([7]).reshape((-1,1)) # Predict the price model.predict(year_seven)
Вы увидите цену после прогнозирования, используя модель точно такой же, как ранее рассчитанное значение, которое мы используем формулу.
# array([133.40425532])
Вы можете проверить значения m
и B
выполняя переменную в ноутбуке.
m # -20.691489361702125
b # 278.2446808510638
Счастливое кодирование🎉.
Оригинал: “https://dev.to/thirashapraween/math-behind-simple-linear-regression-scikit-learn-5gc2”