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

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

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

Почему линейная регрессия MVP?

  1. Простота: это так просто, но так мощно. Это первый алгоритм, который изучит начинающий специалист по данным, но даже эксперты не умаляют его эффективности.
  2. Интерпретируемость. Результат представляет собой линейную функцию, которую легко понять, в отличие от черного ящика более продвинутых алгоритмов.
  3. Скорость. Не требует больших вычислительных затрат, что делает его широко применимым для больших наборов данных.

Давайте начнем.

Настройка

Во-первых, нам нужно импортировать необходимые библиотеки. В первую очередь мы будем использовать scikit-learn, мощный инструмент Python для машинного обучения и почти все, что связано со статистикой.

Подготовка наших данных

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

Ниже мы импортируем данные и назначим наши независимые и зависимые переменные.

Разделение данных

Нам нужно разделить наш набор данных на два набора: обучающий набор и тестовый набор, и мы сделаем test_size равным 1/3.

Суть линейной регрессии: обучение модели

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

В вышесказанном происходит несколько вещей.

regressor = LinearRegression()создает экземпляр класса LinearRegression из библиотеки scikit-learn и присваивает его переменной с именем regressor. На этом этапе создается объект модели линейной регрессии, но он еще не обучен каким-либо данным. Думайте об этом как о пустом сосуде, готовом учиться на данных.

regressor.fit(X_train, y_train) обучает модель линейной регрессии, используя обучающие данные. Здесь X_train представляет особенности обучающих данных, а y_train представляет соответствующую целевую переменную (или метки). Метод fit() анализирует обучающие данные и вычисляет наиболее подходящую линию, которая минимизирует сумму квадратов разностей между фактическими точками данных и точками на линии (обычный метод наименьших квадратов). Во время этого процесса модель изучает взаимосвязь между функциями (X_train) и целевой переменной (y_train).

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

Делать прогнозы

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

Визуализация результатов

Наконец, (и моя любимая часть) визуализация результатов. Это дает вам интуитивное представление о том, насколько хорошо работает модель.

Окончательный вердикт: оценка модели

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

Коэффициент детерминации (R²):

R², часто называемый «степенью соответствия», измеряет долю вариации зависимой переменной, которую можно предсказать на основе независимых переменных. Он варьируется от 0 до 1, где 1 указывает на идеальное соответствие, а 0 указывает на то, что модель не объясняет изменчивость ответа.

Средняя абсолютная ошибка (MAE):

MAE — это среднее абсолютных различий между наблюдаемыми фактическими результатами и прогнозами, сделанными моделью. Это дает представление о том, насколько ошибочными были прогнозы. Значение 0 указывает на отсутствие ошибки.

Среднеквадратическая ошибка (MSE):

MSE похож на MAE, но возводит различия в квадрат перед их усреднением. Это означает, что большие ошибки оказывают непропорционально большое влияние на MSE. Он часто используется в оптимизации для поиска наилучшего соответствия.

Среднеквадратическая ошибка (RMSE):

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

Остаточные участки:

Остаток — это разница между наблюдаемым значением и прогнозируемым значением. График остатков — это график, который показывает остатки по вертикальной оси и независимую переменную по горизонтальной оси. Если точки на остаточном графике случайным образом разбросаны по горизонтальной оси, для данных подходит модель линейной регрессии; в противном случае более подходящей является нелинейная модель.

Коэффициенты и перехват:

Коэффициенты сообщают вам силу и тип (положительный или отрицательный) связи между независимыми переменными и зависимой переменной. Точка пересечения — это место, где линия регрессии пересекает ось Y. Они важны, поскольку они определяют линейное уравнение, которое выучила модель.

P-значения и доверительные интервалы:

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

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