|
| 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