Преди няколко дни, когато провеждах курс по DS от uaceit.com, се научих да правя първия си проект за наука за данни на Jupyter Notebook, използвайки ефективен алгоритъм за машинно обучение, т.е. Линейна регресия. Научих да разбирам данните и как можем да ги свържем, за да постигнем по-добри и желани резултати. Линейната регресия може да се дефинира като „Подход, който моделира промяна в 1 или повече предикторни променливи (да кажем x), което води до линейна промяна в променливата на отговора (y)

Да започнем стъпка по стъпка от нулата

СТЪПКА 1: ЧЕТЕНЕ И ПОДРЕЖДАНЕ НА НАБОРА ДАННИ В ПРАВИЛЕН ФОРМАТ

В първата стъпка импортирах библиотеката на pandas за четене на набор от данни с нейната функция read.csv(). Наборът от данни се приема като връзка в адресната променлива. Тъй като данните бяха необработени, съдържащи ненаименувани и неразделени колони, те бяха преобразувани в четима форма. След това се съхранява като Dataset.csv на моята локална машина.

СТЪПКА 2: ИЗВЪРШВАНЕ НА ПРОУЧВАТЕЛЕН АНАЛИЗ НА ДАННИ

EDA, обикновено наричан Проучвателен анализ на данни, е вид статистическо изследване, което се извършва върху набори от данни, за да се разберат основните характеристики и да се изготви хипотеза според изискванията. За това се нуждаем от библиотека за визуализация на данни, т.е. seaborn, за да разберем връзката между различните точки от данни/предсказатели. Функциите Info() и describe()се използват, за да се види къде се намират точките на разпространение и обхватът на набора от данни. Тъй като графиката показва симетричен знак, се наблюдава, че предикторите са линейно свързани с целевата променлива.

СТЪПКА 3: АНАЛИЗ НА ВРЪЗКАТА МЕЖДУ СТОЙНОСТИТЕ В НАБОР ДАННИ

За да визуализираме стойностите на съотношението(от -1 до 1) между предиктора и целевата променлива, използваме функцията heat map() и функцията corr() от нашата рамка от данни, за да видите резултатите.
1 означава =›перфектна положителна линейна връзка
-1 означава =›перфектна отрицателна линейна връзка
0 означава =›никаква връзка

Помислете за последния ред за по-добро разбиране, MLDGP споделя най-високата положителна линейна връзка с целевата променлива (0,54), а GATS1p споделя най-високата отрицателна линейна връзка (-0,31)

СТЪПКА 4: МОДЕЛИРАНЕ НА НАБОР ДАННИ С ИЗПОЛЗВАНЕ НА ЛИНЕЙНА РЕГРЕСИЯ

За набор от данни за обучение и моделиране ще използваме библиотеката sklearnpython. Ще импортираме функцията StandardScaler ()и train_test_split() от подмодулите за предварителна обработка и model_selection на sklearn.

Наборът от данни е разделен на 2 части за обучение:

X =› за показване на променливите на характеристиките (независими)

Y =› за показване на променливата на отговора (зависима)

Тук друга важна концепция, която трябва да бъде разбрана, е за мащабиране. Използваме техниката за мащабиране на функции, за да стандартизираме независимите променливи, присъстващи в набор от данни, до фиксиран диапазон от минимални и максимални стойности от 0 до 1. Това се прави с помощта на функцията StandardScaler().

Освен това train_test_split() ще раздели набора от данни на две подмножества 70%за обучение и 30% за модел за тестване.

След това ще приложим метода LinearRegression() от подмодула за избор на модел. Методът на прилягане приема 2 аргумента за обучение (вход и изход), тъй като контролираното обучение дава прогнози за картографиране на вход към изход въз основа на произволно организирани набори за обучение. След това ще приложим метода predict() за нашия модел, за да направим прогнози.

Чрез проверка на остатъците, т.е. разликата между наблюдаваната y-стойност (от диаграмата на разсейване) и предвидената y-стойност (от линията на регресионното уравнение), ще видим колко подходящ е нашият модел и предположенията са.

Тъй като остатъците са разположени на случаен принцип, над и под оста x (регресионна линия), се потвърждава, че нашият модел е Линеен подходящ. Това означава, че остатъкът може да има положителни, отрицателни или нулеви стойности.

Линейна регресия изисква остатъците да бъдат нормално разпределени със средна стойност 0. Остатъците имат еднакви разпределениеза всички стойности на обяснителните променливи. Но тук виждаме, че нашите разпределени стойности се различават, което означава, че моделът е предубеден и трябва да преразгледаме модела. Проблеми като пренастройване или мултиколинеарност ограничават ефективността на този алгоритъм.

Всеки път, когато моделът се монтира, той обучава произволно подмножество и дава различен резултат за точност. Моделът е в състояние да предвиди само 40 до 60 %от целевата променлива, което е доста ниско. Накратко, фактът, че остатъците не са равни на 0, повлия на степента на точност на модела. Можете да намерите връзката към кода в края на блога.

Един от начините за справяне с проблема е просто да премахнем онези точки от данни, които са твърде отдалечени от средната стойност на данните, или можем да увеличим сложността, като добавим броя на предикторите в набора от данни.

Други алгоритми като KNN-регресия, LASSO или Ridge Regression също могат да бъдат монтирани на модела като алтернативи за прилагане на регуляризация към набора от данни и подобряване на неговата точност. За да научите повече за линейната регресия и нейните ограничения, можете да следвате връзките по-долу.

Дотогава останете свързани за нови истории с информация!

Приятен ден :)

Източник:

Проект: — ›https://uaceit.com/courses/your-first-data-science-project/ &

— ›https://datatofish.com/multiple-linear-regression-python/

Линейна регресия: https://en.wikipedia.org/wiki/Linear_regression

GITHUB репо:https://github.com/ToobaAhmedAlvi/1stDSproject