|
| 1 | +# Логистическая регрессия и Деревья решений |
| 2 | + |
| 3 | +В этой главе мы рассмотрим одни из фундаментальных методов машинного обучения для задач классификации: логистическую регрессию и деревья решений. |
| 4 | +Также мы подробно разберем метрики качества, необходимые для оценки работы классификаторов, так как стандартная точность (accuracy) не всегда отражает реальную эффективность модели. |
| 5 | + |
| 6 | +## 3.1. Линейные классификаторы и Логистическая регрессия |
| 7 | + |
| 8 | +### От линейной функции к вероятности |
| 9 | + |
| 10 | +Линейный классификатор строит решающую границу в виде гиперплоскости. Для объекта с признаками $x$ модель вычисляет линейную комбинацию: |
| 11 | + |
| 12 | +$$ |
| 13 | +f(x) = w_1 x_1 + w_2 x_2 + ... + w_0 = w^T x |
| 14 | +$$ |
| 15 | + |
| 16 | +В простейшем случае класс предсказывается через знак функции: |
| 17 | +$$ |
| 18 | +\hat{y}_i = \text{sign}(f(x_i)) = |
| 19 | +\begin{cases} |
| 20 | +1, & f(x_i) \geq 0 \\ |
| 21 | +-1, & f(x_i) < 0 |
| 22 | +\end{cases} |
| 23 | +$$ |
| 24 | + |
| 25 | +Однако для многих задач важно получить не просто класс, а **вероятность** принадлежности к классу. |
| 26 | +Возникает проблема: значение $f(x)$ лежит в диапазоне $(-\infty, +\infty)$, |
| 27 | +а вероятность $p$ должна быть в диапазоне $[0, 1]$. |
| 28 | + |
| 29 | +Чтобы преобразовать линейный отклик в вероятность, используется следующая цепочка рассуждений: |
| 30 | +1. Рассмотрим вероятность положительного класса $p_+ = P(y=1|x)$. |
| 31 | +2. Преобразуем вероятность в **шанс** (Odds Ratio): |
| 32 | + $$ |
| 33 | + OR = \frac{p_+}{1 - p_+} \in [0, +\infty) |
| 34 | + $$ |
| 35 | +3. Прологарифмируем шанс, чтобы получить диапазон $(-\infty, +\infty)$: |
| 36 | + $$ |
| 37 | + \log(OR) = \log\left(\frac{p_+}{1 - p_+}\right) = f(x) |
| 38 | + $$ |
| 39 | + |
| 40 | +Выразим вероятность $p_+$ из этого уравнения: |
| 41 | +$$ |
| 42 | +\frac{p_+}{1 - p_+} = e^{f(x)} \implies p_+ = e^{f(x)} - p_+ e^{f(x)} \implies p_+(1 + e^{f(x)}) = e^{f(x)} |
| 43 | +$$ |
| 44 | + |
| 45 | +Итоговая формула для вероятности (сигмоида): |
| 46 | +$$ |
| 47 | +p_+ = \frac{e^{f(x)}}{1 + e^{f(x)}} = \frac{1}{1 + e^{-f(x)}} = \sigma(f(x)) |
| 48 | +$$ |
| 49 | + |
| 50 | +Таким образом, логистическая регрессия моделирует вероятность принадлежности к классу через сигмоидальную функцию от линейной комбинации признаков. |
| 51 | + |
| 52 | +### Понятие отступа (Margin) |
| 53 | + |
| 54 | +Для анализа качества классификации вводится понятие **отступа** (margin) на $i$-м объекте: |
| 55 | + |
| 56 | +$$ |
| 57 | +M_i = y_i f(x_i) = y_i w^T x_i |
| 58 | +$$ |
| 59 | + |
| 60 | +где $y_i \in \{-1, +1\}$ — истинная метка класса. |
| 61 | + |
| 62 | +**Интерпретация отступа:** |
| 63 | +- $M_i > 0$ — объект классифицирован верно ($y_i = \hat{y}_i$) |
| 64 | +- $M_i \leq 0$ — объект классифицирован неверно ($y_i \neq \hat{y}_i$) |
| 65 | + |
| 66 | +**Примеры:** |
| 67 | +| $y_i$ | $f(x_i)$ | $M_i = y_i f(x_i)$ | Результат | |
| 68 | +|-------|----------|-------------------|-----------| |
| 69 | +| +1 | +6 | +6 | Верно, уверенно | |
| 70 | +| +1 | -6 | -6 | Ошибка | |
| 71 | +| -1 | -6 | +6 | Верно, уверенно | |
| 72 | +| -1 | +6 | -6 | Ошибка | |
| 73 | + |
| 74 | +Чем больше положительный отступ, тем более «уверенно» модель относит объект к правильному классу. |
| 75 | +Это понятие лежит в основе многих функций потерь, включая log loss. |
| 76 | + |
| 77 | +### Задача оптимизации: Log Loss |
| 78 | + |
| 79 | +Для обучения модели необходимо подобрать веса $w$, максимизирующие правдоподобие данных. |
| 80 | +Предположим, что объекты независимы и одинаково распределены (i.i.d.). |
| 81 | + |
| 82 | +Вероятность правильного предсказания для объекта $i$ с меткой $y_i \in \{-1, 1\}$: |
| 83 | +$$ |
| 84 | +P(y_i | x_i, w) = \sigma(y_i w^T x_i) = \sigma(M_i) |
| 85 | +$$ |
| 86 | + |
| 87 | +Функция правдоподобия для всей выборки: |
| 88 | +$$ |
| 89 | +P(Y | X, w) = \prod_{i=1}^{N} \sigma(y_i w^T x_i) \to \max |
| 90 | +$$ |
| 91 | + |
| 92 | +Для удобства оптимизации перейдем к логарифму правдоподобия: |
| 93 | +$$ |
| 94 | +\sum_{i=1}^{N} \log \sigma(y_i w^T x_i) \to \max |
| 95 | +$$ |
| 96 | + |
| 97 | +Подставив определение сигмоиды $\sigma(z) = \frac{1}{1 + e^{-z}}$, получим: |
| 98 | +$$ |
| 99 | +\sum_{i=1}^{N} \log \frac{1}{1 + e^{-y_i w^T x_i}} = - \sum_{i=1}^{N} \log (1 + e^{-y_i w^T x_i}) \to \max |
| 100 | +$$ |
| 101 | + |
| 102 | +Задача максимизации логарифма правдоподобия эквивалентна задаче минимизации функции потерь (Log Loss): |
| 103 | +$$ |
| 104 | +\mathcal{L}(w) = \sum_{i=1}^{N} \log (1 + e^{-y_i w^T x_i}) = \sum_{i=1}^{N} \log (1 + e^{-M_i}) \to \min |
| 105 | +$$ |
| 106 | + |
| 107 | +**Связь с отступом:** Функция log loss штрафует малые и отрицательные отступы. |
| 108 | +При $M_i \to +\infty$ потери стремятся к нулю, при $M_i \to -\infty$ — растут линейно. |
| 109 | + |
| 110 | +**Методы оптимизации:** |
| 111 | +- Градиентный спуск |
| 112 | +- Регуляризация (L1, L2) для борьбы с переобучением, аналогично линейной регрессии |
| 113 | + |
| 114 | +--- |
| 115 | + |
| 116 | +## 3.2. Метрики качества классификации |
| 117 | + |
| 118 | +Выбор правильной метрики критически важен, особенно при несбалансированных классах. |
| 119 | + |
| 120 | +### Accuracy и её ограничения |
| 121 | + |
| 122 | +**Accuracy (Доля правильных ответов):** |
| 123 | +$$ |
| 124 | +\text{Accuracy} = \frac{\text{Число верных предсказаний}}{\text{Общее число объектов}} |
| 125 | +$$ |
| 126 | + |
| 127 | +**Проблема:** Accuracy может вводить в заблуждение на несбалансированных данных. |
| 128 | +- Пример: Диагностика редкой болезни. |
| 129 | + - 100 000 здоровых, 10 больных. |
| 130 | + - Если классификатор всегда предсказывает «здоров», Accuracy = $100000 / 100010 \approx 99.99\%$. |
| 131 | + - При этом модель бесполезна, так как не находит ни одного больного. |
| 132 | + |
| 133 | +### Матрица ошибок (Confusion Matrix) |
| 134 | + |
| 135 | +Для детального анализа используется матрица ошибок: |
| 136 | + |
| 137 | +| | Предсказано: 1 (Больной) | Предсказано: 0 (Здоровый) | |
| 138 | +| :--- | :---: | :---: | |
| 139 | +| **Реально: 1 (Больной)** | **TP** (True Positive) | **FN** (False Negative) | |
| 140 | +| **Реально: 0 (Здоровый)** | **FP** (False Positive) | **TN** (True Negative) | |
| 141 | + |
| 142 | +- **TP:** Сколько больных назвали больными. |
| 143 | +- **TN:** Сколько здоровых назвали здоровыми. |
| 144 | +- **FP:** Сколько здоровых назвали больными (Ошибка I рода). |
| 145 | +- **FN:** Сколько больных назвали здоровыми (Ошибка II рода). |
| 146 | + |
| 147 | +$$ |
| 148 | +\text{Accuracy} = \frac{TP + TN}{TP + TN + FP + FN} |
| 149 | +$$ |
| 150 | + |
| 151 | +### Precision и Recall |
| 152 | + |
| 153 | +Для задач с дисбалансом классов чаще используют Precision и Recall. |
| 154 | + |
| 155 | +1. **Precision (Точность):** Какая доля объектов, названных положительными, действительно является положительными. |
| 156 | + $$ |
| 157 | + \text{Precision} = \frac{TP}{TP + FP} |
| 158 | + $$ |
| 159 | +2. **Recall (Полнота):** Какая доля реальных положительных объектов была найдена моделью. |
| 160 | + $$ |
| 161 | + \text{Recall} = \frac{TP}{TP + FN} |
| 162 | + $$ |
| 163 | + |
| 164 | +**Пример 1:** Если модель нашла только 1 больного из 10, но не ошиблась на здоровых: |
| 165 | +- Precision = $1 / (0 + 1) = 1$ (все найденные — действительно больные). |
| 166 | +- Recall = $1 / (1 + 9) = 0.1$ (найден только 10% больных). |
| 167 | + |
| 168 | +**Пример 2:** Поменяем целевой класс — будем искать здоровых (100 000 здоровых, 10 больных): |
| 169 | +- Precision = $100000 / (100000 + 9) \approx 0.99991$ |
| 170 | +- Recall = $100000 / (100000 + 0) = 1$ |
| 171 | + |
| 172 | +Это демонстрирует, что выбор положительного класса влияет на интерпретацию метрик. |
| 173 | + |
| 174 | +### F-мера (F-score) |
| 175 | + |
| 176 | +Для баланса между Precision и Recall используется гармоническое среднее — $F_\beta$-мера: |
| 177 | + |
| 178 | +$$ |
| 179 | +F_\beta = (\beta^2 + 1) \frac{\text{Precision} \times \text{Recall}}{\beta^2 \text{Precision} + \text{Recall}} |
| 180 | +$$ |
| 181 | + |
| 182 | +Наиболее популярна **F1-мера** ($\beta = 1$): |
| 183 | +$$ |
| 184 | +F_1 = 2 \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} |
| 185 | +$$ |
| 186 | + |
| 187 | +### ROC-кривая и AUC |
| 188 | + |
| 189 | +Многие классификаторы (включая логистическую регрессию) выдают вероятность $p_+ \in [0, 1]$. Порог классификации можно варьировать. |
| 190 | + |
| 191 | +- **TPR (True Positive Rate):** То же самое, что Recall. |
| 192 | + $$ |
| 193 | + \text{TPR} = \frac{TP}{TP + FN} |
| 194 | + $$ |
| 195 | +- **FPR (False Positive Rate):** Доля здоровых, ошибочно названных больными. |
| 196 | + $$ |
| 197 | + \text{FPR} = \frac{FP}{FP + TN} |
| 198 | + $$ |
| 199 | + |
| 200 | +**ROC-кривая (Receiver Operating Characteristic):** Зависимость TPR от FPR при изменении порога классификации. |
| 201 | + |
| 202 | +**AUC (Area Under Curve):** Площадь под ROC-кривой. |
| 203 | +- AUC = 1: Идеальный классификатор. |
| 204 | +- AUC = 0.5: Случайное угадывание. |
| 205 | +- Чем больше AUC, тем лучше классификатор ранжирует объекты (отделяет положительный класс от отрицательного). |
| 206 | + |
| 207 | +--- |
| 208 | + |
| 209 | +## 3.3. Деревья решений (Decision Trees) |
| 210 | + |
| 211 | +Дерево решений — это непараметрический метод, который строит последовательность правил для классификации объектов. |
| 212 | + |
| 213 | +### Принцип построения |
| 214 | + |
| 215 | +Представим, что у нас есть один признак. Мы сортируем объекты по нему и выбираем порог $t$, разделяющий выборку на две части: $L$ (left) и $R$ (right). |
| 216 | + |
| 217 | +Формально, для признака $x_i$ и порога $t_j$: |
| 218 | +$$ |
| 219 | +Q \xrightarrow{x_i < t_j} \begin{cases} L \\ R \end{cases} |
| 220 | +$$ |
| 221 | + |
| 222 | +Цель разделения — уменьшить разнородность (гетерогенность) в дочерних узлах. Качество разделения оценивается функцией: |
| 223 | +$$ |
| 224 | +G(x_i, t_j) = \frac{|L|}{|Q|} H(L) + \frac{|R|}{|Q|} H(R) |
| 225 | +$$ |
| 226 | +где $H(R)$ — функция неопределенности (impurity) в узле. |
| 227 | + |
| 228 | +### Критерии неопределенности |
| 229 | + |
| 230 | +Пусть $p_0$ и $p_1$ — доли объектов классов 0 и 1 в узле. |
| 231 | + |
| 232 | +1. **Misclassification (Доля ошибок):** |
| 233 | + $$ |
| 234 | + H(R) = 1 - \max(p_0, p_1) |
| 235 | + $$ |
| 236 | +2. **Entropy (Энтропия):** |
| 237 | + $$ |
| 238 | + H(R) = -p_0 \log_2 p_0 - p_1 \log_2 p_1 = - \sum_k p_k \log_2 p_k |
| 239 | + $$ |
| 240 | +3. **Gini (Индекс Джини):** |
| 241 | + $$ |
| 242 | + H(R) = 1 - p_0^2 - p_1^2 = 1 - \sum_k p_k^2 |
| 243 | + $$ |
| 244 | + |
| 245 | +### Когда останавливаться? (Регуляризация) |
| 246 | + |
| 247 | +Если не ограничивать рост дерева, оно переобучится (запомнит каждый объект). Критерии остановки: |
| 248 | +- Ограничить максимальную глубину дерева. |
| 249 | +- Ограничить минимальное количество объектов в узле для дальнейшего деления. |
| 250 | +- Ограничить минимальное количество объектов в листе. |
| 251 | +- **Pruning (Обрезка):** Построить большое дерево, а затем «постричь» ветви, которые не дают прироста качества на валидации. |
| 252 | + |
| 253 | +### Плюсы и минусы деревьев решений |
| 254 | + |
| 255 | +**Плюсы:** |
| 256 | +- **Интерпретируемость:** Правила легко понять и визуализировать. |
| 257 | +- **Масштаб:** Устойчивы к разным масштабам признаков (не требуют нормировки). |
| 258 | +- **Пропуски:** Некоторые реализации могут работать с пропусками в данных. |
| 259 | +- **Параметры:** Мало гиперпараметров для настройки. |
| 260 | + |
| 261 | +**Минусы:** |
| 262 | +- **Шум:** Чувствительны к шуму в данных (склонность к переобучению). |
| 263 | +- **Границы:** Разделяющая граница кусочно-линейная (перпендикулярна осям признаков). |
| 264 | +- **Нестабильность:** Малое изменение данных может сильно изменить структуру дерева. |
| 265 | +- **Экстраполяция:** Не умеют экстраполировать (предсказывать за пределами диапазона обучающей выборки), только интерполируют. |
| 266 | + |
| 267 | +--- |
| 268 | + |
| 269 | +## 3.4. Заключение |
| 270 | + |
| 271 | +В этой лекции мы рассмотрели логистическую регрессию как способ получения вероятностных оценок в линейных моделях и разобрали ключевые метрики для оценки качества классификации, такие как Precision, Recall и ROC-AUC. |
| 272 | +Важным понятием оказался **отступ (margin)**, который связывает линейный отклик модели с качеством классификации и лежит в основе функции потерь log loss. |
| 273 | + |
| 274 | +Также мы познакомились с деревьями решений — мощным инструментом, который лежит в основе более сложных алгоритмов. |
| 275 | + |
| 276 | +**Что дальше?** |
| 277 | +В следующих главах мы рассмотрим: |
| 278 | +- Ансамбли деревьев (Random Forest, Gradient Boosting). |
| 279 | +- Методы улучшения стабильности и качества деревьев. |
0 commit comments