Перейти к основному содержимому
Informatik.uz
Магистратура · 1-й курсГлава 1. Основы машинного обучения

Линейная регрессия и градиентный спуск

Рассмотрим модель линейной регрессии, среднеквадратичную ошибку и метод наименьших квадратов. Вы научитесь находить параметры градиентным спуском и оценивать результат с помощью RMSE и R2.

Тема 2 из 3Чтение: 3 минОбновлено: 27 октября 2026 г.
Список тем (2 из 3)

Линейная регрессия при одном признаке приближает данные прямой: y = w * x + b, где w — коэффициент наклона, b — свободный член. Для нескольких признаков модель имеет вид y = w1 * x1 + w2 * x2 + b. Цель — подобрать параметры так, чтобы предсказания были как можно ближе к реальным значениям, например предсказать цену дома по его площади и числу комнат.

Близость измеряют среднеквадратичной ошибкой (MSE): MSE = (1/n) * sum((y_i - yhat_i)^2), где yhat_i — предсказание модели. Поскольку ошибки возводятся в квадрат, положительные и отрицательные отклонения не компенсируют друг друга, а большие ошибки штрафуются сильнее. В методе наименьших квадратов параметры можно вычислить за один шаг с помощью нормального уравнения: w = (X^T * X)^(-1) * X^T * y; здесь к матрице X добавляют столбец из единиц, поэтому b тоже становится элементом вектора w.

Если данных и признаков много, нормальное уравнение обходится дорого; тогда применяют градиентный спуск (gradient descent). Алгоритм вычисляет градиент функции ошибки — вектор частных производных — и обновляет параметры небольшим шагом в направлении, противоположном градиенту: w = w - lr * dMSE/dw. Если шаг lr (скорость обучения) слишком велик, процесс расходится, если слишком мал — сходимость медленная. Для линейной регрессии MSE — выпуклая функция, поэтому проблемы локального минимума нет, а приведение признаков к одному масштабу ускоряет сходимость.

Качество модели оценивают на тестовой выборке: RMSE (корень из MSE, измеряется в тех же единицах, что и y) и коэффициент детерминации R2, показывающий, какую долю дисперсии объясняет модель (чем ближе к 1, тем лучше). Линейная регрессия предполагает, что зависимость примерно линейна; выбросы (outlier) сильно влияют на результат, а взаимосвязанные признаки (мультиколлинеарность) делают коэффициенты неустойчивыми. Нелинейную зависимость можно описать с помощью полиномиальных признаков, а переобучение сдержать регуляризацией (Ridge, Lasso).

Главное

  • Линейная регрессия находит по данным параметры модели y = w * x + b.
  • Среднеквадратичная ошибка (MSE) измеряет разницу между предсказанием и реальным значением.
  • Для небольших задач применяют нормальное уравнение, для больших данных — градиентный спуск.
  • Правильный выбор скорости обучения lr и приведение признаков к одному масштабу ускоряют сходимость.
  • Качество оценивают по RMSE и R2; выбросы и мультиколлинеарность могут исказить результат.

Практические задания

  1. Вычислите вручную: для точек (1, 2), (2, 4) и (3, 5) найдите w и b методом наименьших квадратов, а затем вычислите MSE.
  2. Напишите градиентный спуск на NumPy самостоятельно: создайте данные x = np.random.rand(100) и y = 3 * x + 2 с небольшим шумом, обучите w и b за 1000 шагов и сравните графики ошибки при lr, равном 0.001, 0.1 и 1.0.
  3. На открытых данных (например, load_diabetes) обучите модели LinearRegression и Ridge из scikit-learn, вычислите RMSE и R2 на тестовой выборке и сравните результаты.

Вопросы для закрепления

Проверьте себя: сначала подумайте, потом откройте ответ.

  1. 1Почему в среднеквадратичной ошибке отклонения возводят в квадрат?
    Чтобы положительные и отрицательные отклонения не компенсировали друг друга, большие ошибки штрафовались сильнее, а функция была гладкой (дифференцируемой).
  2. 2Что произойдёт, если скорость обучения `lr` выбрана слишком большой?
    Параметры «перескакивают» через минимум, ошибка не уменьшается и может даже расти (расходимость).
  3. 3О чём говорит значение `R2`, близкое к 0?
    Модель почти не объясняет дисперсию: она не лучше, чем простое предсказание среднего значения.

Пройдено тем: 0 из 3

Войти и отметить