Линейные модели

Применимость линейных моделей

Линейные модели работают хорошо в двух случаях:

  • Признаки влияют на ответ независимо друг от друга.
  • Признаки влияют на ответ линейно.

Теорема Гаусса-Маркова

Пусть \(Y = Xw + \varepsilon\), где \(\varepsilon = [\varepsilon_1 \dots \varepsilon_n]\). Если выполнены условия:

  • \(\mathbb{E}(\varepsilon_i) = 0 \quad \forall i\)
  • \(\text{Var}(\varepsilon_i) = \sigma^2 < \infty \quad \forall i\)
  • \(\text{Cov}(\varepsilon_i, \varepsilon_j) = 0 \quad \forall i \neq j\)

Тогда \(\vec{w} = (X^T X)^{-1} X^T Y\) — лучшая несмещённая оценка при квадратичной ошибке без регуляризации.

При использовании регуляризации или градиентного обучения результат теоремы не гарантируется. Лучше смотреть на характер шума при обучении модели. Методы без градиентного спуска называют методами нулевого порядка.

Признаки в линейных моделях

Категориальные признаки

Пусть \(x_j \in \{C_1, \dots, C_m\}\) — категориальный признак (например, районы Москвы). Для работы с ним используют one-hot encoding:

  • Строим \(m\) бинарных признаков \(b_1(x), \dots, b_m(x)\)
  • \(b_i(x) = [x_j = C_i]\)

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

Бинаризация признаков

В качестве признаков рассматривается попадание в интервал:

\[[0; t_0],\ [t_0; t_1],\ [t_1; t_2],\ \dots,\ [t_m; +\infty)\]

Полиномиальные признаки

Можно добавлять функции от переменных: \(x \to f(x)\). Проблема — не всегда очевидно, какие функции выбирать.

Обучение линейной регрессии

Минимизируем квадратичную ошибку:

\[Q(w) = \frac{1}{\ell} \sum_{i=1}^\ell (\langle w, x_i \rangle - y_i)^2 = \frac{1}{\ell} \|Xw - y\|^2 \to \min_w\]

Аналитическое решение:

\[w_* = (X^T X)^{-1} X^T y\]

Обращение матрицы имеет сложность \(O(d^3)\). Для сложных функций потерь аналитического решения нет. Поэтому на практике используют градиентный спуск.

Многоклассовая классификация

1. Сведение к серии бинарных задач

Один против всех (one-vs-all). Строим отдельный классификатор \(b_k(x)\) для каждого класса, обучая его на \(X_k = (x_i, [y_i = y_k])\). Итоговый прогноз:

\[a(x) = \mathop{\text{argmax}}_{k=1\dots K}\ b_k(x)\]

Плюсы: просто построить. Минусы: классификаторы не знают друг о друге, риск переобучения одного из них портит результат.

Все против всех (all-vs-all). Строим \(C^2_K\) классификаторов \(a_{ij}\), каждый обучается на парах классов \(i\) и \(j\). Итоговый прогноз — голосование:

\[a(x) = \mathop{\text{argmax}}_{n=1\dots K} \sum_{j \neq k} [a_{kj}(x) = n]\]

Плюсы: нет проблем с некалиброванными уверенностями. Минусы: \(K^2\) классификаторов.

2. Прямые подходы

Многоклассовая логистическая регрессия. Строим по одному линейному предсказателю на класс, затем применяем softmax:

\[\text{Softmax}(z_1, \dots, z_K) = \left( \frac{e^{z_1}}{\sum_{i=1}^K e^{z_i}},\ \dots,\ \frac{e^{z_K}}{\sum_{i=1}^K e^{z_i}} \right)\]

Оптимизируем логарифм правдоподобия:

\[\sum_{i=1}^\ell \log P(y = y_i \mid x) \to \max_{w, w_0}\]

Метрики многоклассовой классификации

  • Accuracy: \(\frac{1}{\ell} \sum_{i=1}^\ell [a(x_i) = y_i]\) — легко переносится на многоклассовый случай.
  • Макро- и микроусреднение precision/recall/F1 по каждому классу \(k\) через \(TP_k, TN_k, FP_k, FN_k\).
← Назад к списку тем