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

Проще говоря, это в основном соответствует прямой линии

к набору точек

Среди миллионов множества возможных прямых,

мы стремимся выбрать тот, у которого наименьшая ошибка

Эквивалентно;

Чтобы минимизировать ошибку, берем производные по b0 и b1 ищем точки, в которых они равны 0.

Решая их, получаем,

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

Пришло время написать кусок кода для вышеприведенной математики.

Мы сравним решение с методом линейной регрессии популярного модуля машинного обучения scikit-learn.

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

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

Находим ошибку,

Чтобы минимизировать ошибку, продифференцируем по обеим переменным:

Он превращается в систему уравнений,

И может быть переписан в матрично-векторной форме следующим образом.

Вот реализация этого алгоритма на Python:

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

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА:

[1] Уорд Чейни, Дэвид Кинкейд, Численная математика и вычисления, 6-е издание, 6-е издание.