Skip to content

Commit b5d2dfc

Browse files
committed
Add linear regression chapter
1 parent 220158d commit b5d2dfc

2 files changed

Lines changed: 192 additions & 0 deletions

File tree

src/SUMMARY.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
- [Введение](./overview.md)
88
- [Метрические алгоритмы](./metric-algo.md)
9+
- [Линейная регрессия](./linear-regression.md)
910

1011
# Работаем самостоятельно
1112

src/linear-regression.md

Lines changed: 191 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
# Линейная регрессия
2+
3+
## Постановка задачи
4+
5+
Линейная регрессия решает задачу предсказания непрерывной целевой переменной $y$ на основе одной или нескольких входных переменных (признаков) $x$.
6+
7+
В простейшем одномерном случае модель имеет вид:
8+
9+
$$\hat{y} = w_1 x + w_0$$
10+
11+
где:
12+
- $w_1$ — вес признака (наклон прямой),
13+
- $w_0$ — смещение (bias, свободный член).
14+
15+
Модель предполагает, что истинная зависимость имеет вид:
16+
17+
$$y = w_1 x + w_0 + \varepsilon$$
18+
19+
где $\varepsilon$ — случайная ошибка (шум).
20+
21+
**Цель обучения:** найти такие параметры $w_0, w_1, \dots, w_k$, чтобы предсказания модели $\hat{y}$ были максимально близки к реальным значениям $y$ из обучающей выборки.
22+
23+
## Функции ошибки
24+
25+
Для оценки качества модели используются следующие функции потерь:
26+
27+
- **SSE (Sum of Squared Errors)** — сумма квадратов ошибок:
28+
$$\text{SSE} = \sum_{i=1}^{N} (y_i - \hat{y}_i)^2 = \|\text{error}\|_2^2$$
29+
30+
- **MSE (Mean Squared Error)** — среднеквадратичная ошибка:
31+
$$\text{MSE} = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2$$
32+
33+
- **MAE (Mean Absolute Error)** — средняя абсолютная ошибка:
34+
$$\text{MAE} = \frac{1}{N} \sum_{i=1}^{N} |y_i - \hat{y}_i|$$
35+
36+
MSE чаще используется в линейной регрессии, так как является дифференцируемой функцией и приводит к аналитическому решению.
37+
38+
## Матричная форма
39+
40+
Для многомерного случая ($k$ признаков) модель записывается как:
41+
42+
$$y_i = w_1 x_{1,i} + w_2 x_{2,i} + \dots + w_k x_{k,i} + w_0$$
43+
44+
Для удобства вычислений смещение $w_0$ включают в вектор весов, добавляя фиктивный признак $x_0 = 1$ ко всем объектам.
45+
46+
В матричной форме:
47+
48+
$$\mathbf{y} = \mathbf{X} \mathbf{w}$$
49+
50+
где:
51+
- $\mathbf{y} = \begin{bmatrix} y_1 \\ \vdots \\ y_N \end{bmatrix}$ — вектор целевых значений,
52+
- $\mathbf{X} = \begin{bmatrix} x_{1,1} & \cdots & x_{1,k} & 1 \\ \vdots & \ddots & \vdots & \vdots \\ x_{N,1} & \cdots & x_{N,k} & 1 \end{bmatrix}$ — матрица объектов-признаков (с добавленным столбцом единиц),
53+
- $\mathbf{w} = \begin{bmatrix} w_1 \\ \vdots \\ w_k \\ w_0 \end{bmatrix}$ — вектор весов.
54+
55+
**Оптимизационная задача:**
56+
57+
$$\hat{\mathbf{w}} = \arg\min_{\mathbf{w}} \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2$$
58+
59+
## Аналитическое решение: метод наименьших квадратов (МНК)
60+
61+
Квадратичная функция потерь:
62+
63+
$$Q(\mathbf{w}) = \|\mathbf{y} - \mathbf{X}\mathbf{w}\|_2^2 = (\mathbf{y} - \mathbf{X}\mathbf{w})^T (\mathbf{y} - \mathbf{X}\mathbf{w})$$
64+
65+
Для нахождения минимума приравниваем градиент к нулю:
66+
67+
$$\nabla_{\mathbf{w}} Q(\mathbf{w}) = -2\mathbf{X}^T\mathbf{y} + 2\mathbf{X}^T\mathbf{X}\mathbf{w} = 0$$
68+
69+
Отсюда получаем **аналитическое решение**:
70+
71+
$$\hat{\mathbf{w}} = (\mathbf{X}^T \mathbf{X})^{-1} \mathbf{X}^T \mathbf{y}$$
72+
73+
### Проблемы аналитического решения
74+
75+
1. **Матрица $\mathbf{X}^T \mathbf{X}$ может быть необратима:**
76+
- При линейной зависимости признаков (коллинеарность),
77+
- Когда число признаков $k$ превышает число объектов $N$ (бесконечное множество решений).
78+
79+
2. **Вычислительная сложность:** обращение матрицы имеет сложность $O(k^3)$, что непрактично при большом числе признаков.
80+
81+
## Градиентный спуск
82+
83+
Когда аналитическое решение неприменимо или неэффективно, используют итеративный метод оптимизации — градиентный спуск.
84+
85+
**Алгоритм:**
86+
87+
1. Инициализировать веса случайными значениями: $\mathbf{w} \gets \text{random}()$
88+
2. Повторять до сходимости:
89+
$$\mathbf{w} \gets \mathbf{w} - \alpha \nabla_{\mathbf{w}} Q(\mathbf{w})$$
90+
91+
где:
92+
- $\alpha$ — скорость обучения (learning rate),
93+
- $\nabla_{\mathbf{w}} Q(\mathbf{w})$ — градиент функции потерь.
94+
95+
Для функции потерь MSE градиент вычисляется как:
96+
97+
$$\nabla_{\mathbf{w}} Q(\mathbf{w}) = \frac{2}{N} \mathbf{X}^T (\mathbf{X}\mathbf{w} - \mathbf{y})$$
98+
99+
### Варианты градиентного спуска
100+
101+
В зависимости от количества объектов, используемых для вычисления градиента на каждой итерации:
102+
103+
- **Полный градиентный спуск (Batch GD):** градиент считается по всей выборке.
104+
- **Стохастический градиентный спуск (SGD):** градиент считается по одному случайному объекту.
105+
- **Мини-батч градиентный спуск:** градиент считается по небольшой случайной подвыборке (батчу).
106+
107+
### Проблемы и улучшения
108+
109+
- **Локальные минимумы:** для выпуклых функций (как MSE) проблема отсутствует — любой локальный минимум является глобальным.
110+
- **Выбор скорости обучения $\alpha$:**
111+
- Слишком большая $\alpha$ — алгоритм расходится,
112+
- Слишком маленькая $\alpha$ — обучение слишком медленное.
113+
- Решение: адаптивное уменьшение $\alpha$ по мере обучения.
114+
- **Momentum (инерция):**
115+
$$\mathbf{v} \gets \beta \mathbf{v} + \alpha \nabla_{\mathbf{w}} Q(\mathbf{w}), \quad \mathbf{w} \gets \mathbf{w} - \mathbf{v}$$
116+
где $\beta \in (0, 1)$ — коэффициент инерции. Ускоряет сходимость и помогает «проскакивать» пологие участки.
117+
118+
## Проблемы линейной регрессии и их решения
119+
120+
### 1. Отсутствие линейной зависимости
121+
122+
Если истинная зависимость нелинейна, линейная модель будет давать плохие предсказания.
123+
124+
**Пример:** предсказание стоимости склада по длине и ширине. Линейная модель:
125+
$$\text{цена} = w_1 \cdot \text{длина} + w_2 \cdot \text{ширина} + w_0$$
126+
не учитывает, что важна площадь ($\text{длина} \times \text{ширина}$). Решение — создать новый признак «площадь».
127+
128+
### 2. Коллинеарность признаков
129+
130+
Если признаки линейно зависимы ($x_2 = 2x_1$), решение становится неустойчивым и неинтерпретируемым:
131+
132+
$$y = 6x_1 + 8x_2 + 5 = 0x_1 + 11x_2 + 5 = 22x_1 + 0x_2 + 5 = \dots$$
133+
134+
**Решение:** удалять линейно зависимые признаки (анализ корреляции, методы отбора признаков).
135+
136+
### 3. Выбросы
137+
138+
Выбросы сильно влияют на MSE из-за квадратичного штрафа.
139+
140+
**Решения:**
141+
- Фильтрация выбросов на этапе предобработки,
142+
- Использование более устойчивых функций потерь (например, MAE или Huber loss).
143+
144+
### 4. Шумные признаки и переобучение
145+
146+
Если в модели присутствуют нерелевантные признаки, модель может выучить большие веса для них, что приведёт к переобучению.
147+
148+
**Решение:** регуляризация.
149+
150+
## Регуляризация
151+
152+
Регуляризация добавляет штраф за большие веса в функцию потерь:
153+
154+
### L2-регуляризация (Ridge)
155+
156+
$$Q_{\text{reg}}(\mathbf{w}) = \frac{1}{N} \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 + \lambda \|\mathbf{w}\|_2^2$$
157+
158+
- «Выравнивает» веса, делая их меньше по модулю,
159+
- Даёт более стабильное решение при коллинеарности,
160+
- Аналитическое решение: $\hat{\mathbf{w}} = (\mathbf{X}^T \mathbf{X} + \lambda \mathbf{I})^{-1} \mathbf{X}^T \mathbf{y}$.
161+
162+
### L1-регуляризация (Lasso)
163+
164+
$$Q_{\text{reg}}(\mathbf{w}) = \frac{1}{N} \|\mathbf{X}\mathbf{w} - \mathbf{y}\|_2^2 + \lambda \|\mathbf{w}\|_1$$
165+
166+
- Также уменьшает веса,
167+
- **Обнуляет веса нерелевантных признаков**, выполняя автоматический отбор признаков.
168+
169+
### Параметр регуляризации $\lambda$
170+
171+
- $\lambda = 0$: обычная линейная регрессия,
172+
- $\lambda \to \infty$: все веса стремятся к нулю,
173+
- Оптимальное значение $\lambda$ подбирается на валидационной выборке.
174+
175+
## Параметры и гиперпараметры
176+
177+
| Тип | Примеры |
178+
|-----|---------|
179+
| **Параметры модели** | Веса $\mathbf{w}$ (настраиваются в процессе обучения) |
180+
| **Гиперпараметры** | Скорость обучения $\alpha$, тип и коэффициент регуляризации $\lambda$, начальное приближение, использование momentum, размер батча |
181+
182+
## Оценка качества модели
183+
184+
1. **Метрики ошибки:** MSE, MAE на тестовой выборке.
185+
2. **Базовое сравнение:** сравнение с «наивной» моделью $\hat{y} = \text{mean}(\mathbf{y})$.
186+
3. **Разделение выборки:** разбиение на обучающую и тестовую части (train/test split).
187+
4. **Кросс-валидация:** более надёжная оценка при ограниченном объёме данных.
188+
189+
---
190+
191+
> В следующих главах: логистическая регрессия (классификация), метрики качества для задач классификации, деревья решений.

0 commit comments

Comments
 (0)