Библиотека Scikit-Learn — это настоящее блаженство, когда дело доходит до реализации любого алгоритма для обучения модели машинного обучения. Это очень продвинутая библиотека, наша работа может быть сокращена до нескольких строк кода.
Сказав это, я всегда считаю, что знание любых алгоритмов с нуля и понимание математики и статистики, лежащих в основе работы алгоритма, является предельным. важный.

В этом посте я покажу вам, как реализовать простой алгоритм линейной регрессии с нуля с помощью Python.

Так зачем ждать, давай и будь готов испачкать руки!

Первым шагом для любой модели машинного обучения является сбор данных.
Я буду использовать простой набор данных, набор данных о зарплате. Набор данных можно найти здесь.

Итак, давайте начнем с импорта всех необходимых библиотек

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

Итак, из приведенных выше изображений мы получаем базовое представление о нашем наборе данных. Он имеет 30 строк и 2 функции: годы опыта и зарплата.
Наша цель - найти, какой будет зарплата человека, если у него 7 лет опыта.

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

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

Из приведенного выше изображения мы получаем интуитивное представление о том, что эти переменные имеют линейную связь между собой. Поэтому я решил использовать алгоритм простой линейной регрессии для обучения модели.

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

Когда мы закончим выбор типа алгоритма, теперь мы продолжим и назначим зависимые и независимые переменные.

Я использую X и Y для обозначения моих переменных. Годы опыта — независимая переменная, и заработная плата зависит от нее, потому что заработная плата будет увеличиваться или уменьшаться с увеличением или уменьшением количества лет опыта.

Гипотеза линейной регрессии:
Давайте определим нашу функцию гипотезы для прямой линии. также известно уравнение прямой линии:

m – коэффициент переменной x.

б - перехват.

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

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

Теперь, применяя приведенную выше формулу, мы имеем значения для m и c

Теперь в математических терминах:

Давайте нанесем нашу приведенную выше информацию на график и нарисуем наиболее подходящую линию.

Ура, мы закончили с поиском наиболее подходящей линии и подгонкой ее к точке данных.

Так что теперь, если я хочу предсказать зарплату человека с 7 лет.

Линейная регрессия — один из первых и основных алгоритмов, используемых в модели машинного обучения. Хотите верьте, хотите нет, но все это для написания линейной регрессии с нуля.
Удачного кодирования :)