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

Введение в простую линейную регрессию !!!

Skyek Peek в какой линейной регрессии есть и как это работает. Линейная регрессия – простая машина … Теги с обучением машины, наукой данных, Python, Jupyter.

Skyek Peek в какой линейной регрессии есть и как это работает.

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

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

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

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

Готов к мини-проекту?

У нас есть все библиотеки, которые нам нужны в нашей ноутбуке Jupyter. Теперь давайте создадим наши периметры заговора. Мы хотим, чтобы MatPlotlib построить встроенный в нашей ноутбуке Jupyter, поэтому мы скажем в процентном знаке MatPlotlib Inline, а затем давайте просто установим наши измерения для наших визуализации данных на 10 дюймов в ширину и восемь дюймов.

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import sklearn
from pylab import rcParams
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import scale
%matplotlib inline
rcParams['figure.figsize']=10,8

-СО, мы просто собираемся создать некоторые синтетические данные, чтобы сделать линейную регрессию. Давайте сначала создадим переменную под названием «Rooms». Мы собираемся установить комнаты, равные два раза набор случайных чисел (поэтому нам нужно будет позвонить в генератор случайных номеров, который будет NP.RANDOM.RANDN), и мы передадимся, сколько когда-либо Значения, которые мы хотим – в этом случае это будет 100. Мы проходим в одном и говорим плюс три. Это уравнение, которое мы используем для генерации случайных значений для заполнения поля номеров или для создания синтетической переменной, которая представляет количество номеров в доме.

rooms=2*np.random.rand(100,1)+3
rooms[1:10]
array([[4.04467357],
       [3.77241135],
       [3.14321164],
       [4.48142986],
       [3.18493126],
       [3.8132922 ],
       [4.72655406],
       [3.08916389],
       [3.89772928]])

Теперь давайте создадим синтетическую переменную под названием «цена». Мы скажем, что цена равна 265 плюс шесть раз количество номеров плюс абсолютные значения (мы называем функцию ABS). Абсолютное значение, и снова мы собираемся позвонить в генератор случайных номеров, так что это NP.RANDOM.RANDN и 100 значений, пропуск одного, а затем давайте просто посмотрим на первые 10 записей, поэтому мы скажу цену один по 10, запустите это.

price=265+6*rooms +abs(np.random.randn(100,1))
price[1:10]
array([[290.20050075],
       [287.83631918],
       [284.26968068],
       [292.46209605],
       [285.20161696],
       [288.07388113],
       [293.77699261],
       [284.59783984],
       [289.71316513]])

Теперь давайте создадим график разброса наших синтетических переменных, чтобы мы поняли, как они выглядят, и отношения между ними. Чтобы сделать это, мы собираемся позвонить на функцию сюжета PLT.PLOT. И мы пройдем в комнаты по цене. Цена будет на нашей оси Y и номера будет на нашей оси X. Давайте также пропустим строку, которая читает HATH, это указывает, что задач точек должен быть сгенерирован вместо строки по умолчанию.

plt.plot(rooms,price,'r.')
plt.xlabel("no. of rooms,2020 Average")
plt.ylabel("2020 Avg home price")
plt.show()

Чтобы увидеть сюжет, см. Изображение крышки:):)

То, что говорит этот сюжет, поскольку количество роста комнат, цена дома увеличивается. Имеет смысл, верно? Так что теперь, давайте просто сделаем действительно простую линейную регрессию. Так что для нашей модели здесь мы собираемся использовать комнаты в качестве предиктора, поэтому мы собираемся сказать, х равен комнаты, и мы хотим предсказать по цене, поэтому Y будет равна цене. Давайте создать объект линейной регрессии, мы назовем его Lineg, а затем мы скажем, Lineg равен линеарированию И тогда мы подойдем к модели к данным. Итак, чтобы сделать это, мы скажем LineReg.fit и мы пройдем в наши переменные х и y.

X=rooms
y=price
LinReg= LinearRegression()
LinReg.fit(X,y)
print(LinReg.intercept_,LinReg.coef_)
[265.39215904] [[6.10708427]]

Удерживая все другие особенности, фиксированные, увеличение 1 единицы в помещениях связано с увеличением 6.10708427 ценой, в ценой перехвата (часто маркировка как постоянная) является точкой, где функция пересекает ось Y. В некоторых анализе модель регрессии становится значительной, когда мы удаляем перехват, и линия регрессии уменьшает значение + ошибку. Регрессия без постоянного означает, что линия регрессии проходит через происхождение, в которой зависимая переменная и независимая переменная равна нулю.

print(LinReg.score(X,y))
0.9679030603885265

– Наша линейная регрессивная модель действительно хорошо работает! Наше значение r в квадрате близко к 1, и это хорошо! Это была просто маленькая красться, в какой линейной регрессии. Я надеюсь, что у вас есть идея о том, как линейная регрессия работает через мини-проект! Не стесняйтесь отвечать на этот блог ниже для любых сомнений и разъяснений!

Оригинал: “https://dev.to/adityaberi8/intro-to-simple-linear-regression-1l96”