Библиотека 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 лет.
Линейная регрессия — один из первых и основных алгоритмов, используемых в модели машинного обучения. Хотите верьте, хотите нет, но все это для написания линейной регрессии с нуля.
Удачного кодирования :)