Библиотеката Scikit-Learn е истинско блаженство, когато става въпрос за прилагане на алгоритъм за обучение на модел за машинно обучение. Това е много усъвършенствана библиотека, нашата работа може да бъде съкратена в няколко реда код.
Като казах това, винаги вярвам, че познаването на всички алгоритми от нулата и разбирането на математиката и статистиката зад работата на алгоритъма е изключително важно важно.

В тази публикация ще ви покажа как да внедрите прост алгоритъм за линейна регресия от нулата с помощта на python.

Така че защо да чакате, хайде и бъдете готови да си изцапате ръцете!

Първата стъпка за всеки модел на машинно обучение е събирането на данните.
Ще използвам прост набор от данни, наборът от данни за заплатите. Наборът от данни може да бъде намерен тук.

Така че нека започнем с импортирането на всички необходими библиотеки

Следващото нещо е да прочетете и заредите нашия набор от данни и да имате основна информация за набора от данни.

Така че от горните изображения получаваме основна представа за нашия набор от данни. Има 30 реда и 2 функции, които са години опит и заплата.
Нашата цел е да намерим каква ще бъде заплатата на човек, ако има 7 години опит.

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

Използвам точечна диаграма, за да проверя връзката между двете функции.

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

Това, което основно правим в модела на линейна регресия, е да се опитаме да намеримнай-подходящата линия, за да пасне на характеристиките в данните с минимална грешка.

Когато приключим с вземането на решение за типа алгоритъм, сега ще продължим и ще присвоим зависими и независими променливи.

Използвам X и Y, за да обознача моите променливи. Годините опит са независима променлива и заплатата зависи от нея, тъй като заплатата ще се увеличава или намалява с увеличаване или намаляване на годините опит.

Хипотезата на линейната регресия:
Нека дефинираме нашата хипотезна функция за права линия. както добре знаете, че уравнението за права линия е:

m е коефициентът на променливата x.

b е пресечната точка.

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

Формулата за изчисляване на коефициента и отсечката е както следва:
m = x-(средно на x)*y-(средно на y) / (x-(средно на x)²
c = ( средно на y) — m * (средно на x) / n

Сега, прилагайки горната формула, имаме стойностите за m и c

Сега в математически термини:

Нека начертаем нашата горна информация в графика и да начертаем най-подходящата линия.

Иппи, така че приключихме с намирането на най-подходящата линия и поставянето й в точката с данни.

Така че сега, ако искам да предскажа заплатата на човек със 7 години.

Линейната регресия е един от първите и основни алгоритми, използвани в модела за машинно обучение. Вярвате или не, всичко това е там, за да кодирате линейна регресия от нулата.
Приятно кодиране :)