1.8. Перекрестное разложение#
Модуль перекрестного разложения содержит обучение с учителем оценщики для снижения размерности и регрессии, относящиеся к семейству «Частичных Наименьших Квадратов».
Алгоритмы перекрестного разложения находят фундаментальные отношения между двумя матрицами (X и Y). Это подходы с латентными переменными для моделирования ковариационных структур в этих двух пространствах. Они пытаются найти многомерное направление в пространстве X, которое объясняет максимальное многомерное направление дисперсии в пространстве Y. Другими словами, PLS проецирует оба X и Y производительность селекторов. Варианты: transformed(X) и transformed(Y) максимален.
PLS имеет сходства с Регрессия на главных компонентах (PCR), где выборки сначала проецируются в подпространство меньшей размерности, и целевые переменные y предсказываются с использованием transformed(X). Одна проблема с PCR заключается в том, что уменьшение размерности является неконтролируемым и может потерять некоторые важные переменные: PCR сохранит признаки с наибольшей дисперсией, но возможно, что признаки с малой дисперсией важны для предсказания целевой переменной. В некотором смысле, PLS позволяет выполнить аналогичное уменьшение размерности, но с учетом целевых переменных y. Иллюстрация
этого факта приведена в следующем примере:
* Регрессия на главных компонентах против регрессии методом частичных наименьших квадратов.
Помимо CCA, оценщики PLS особенно подходят, когда матрица предикторов содержит больше переменных, чем наблюдений, и когда существует мультиколлинеарность между признаками. В отличие от этого, стандартная линейная регрессия не справится в этих случаях, если она не регуляризована.
Классы, включенные в этот модуль PLSRegression,
PLSCanonical, CCA и PLSSVD
1.8.1. PLSCanonical#
Здесь мы описываем алгоритм, используемый в PLSCanonical. Другие оценщики используют варианты этого алгоритма и подробно описаны ниже. Мы рекомендуем раздел [1] для получения дополнительных деталей и сравнений между этими алгоритмами. В [1], PLSCanonical соответствует "PLSW2A".
Даны две центрированные матрицы \(X \in \mathbb{R}^{n \times d}\) и
\(Y \in \mathbb{R}^{n \times t}\), и количество компонент \(K\),
PLSCanonical происходит следующим образом:
Установить \(X_1\) to \(X\) и \(Y_1\) to \(Y\). Затем для каждого \(k \in [1, K]\):
a) вычислить \(u_k \in \mathbb{R}^d\) и \(v_k \in \mathbb{R}^t\), первые левый и правый сингулярные векторы ковариационной матрицы \(C = X_k^T Y_k\). \(u_k\) и \(v_k\) называются веса. По определению, \(u_k\) и \(v_k\) выбираются так, чтобы максимизировать ковариацию между спроецированными \(X_k\) и спроецированная цель, то есть \(\text{Cov}(X_k u_k, Y_k v_k)\).
b) Проект \(X_k\) и \(Y_k\) на сингулярные векторы для получения scores: \(\xi_k = X_k u_k\) и \(\omega_k = Y_k v_k\)
c) Регрессия \(X_k\) на \(\xi_k\), т.е. найти вектор \(\gamma_k \in \mathbb{R}^d\) такая, что матрица ранга 1 \(\xi_k \gamma_k^T\) максимально близко к \(X_k\). Сделайте то же самое на \(Y_k\) с \(\omega_k\) для получения \(\delta_k\). Векторы \(\gamma_k\) и \(\delta_k\) называются нагрузки.
d) deflate \(X_k\) и \(Y_k\), т.е. вычесть аппроксимации ранга 1: \(X_{k+1} = X_k - \xi_k \gamma_k^T\), и \(Y_{k + 1} = Y_k - \omega_k \delta_k^T\).
В конце мы аппроксимировали \(X\) как сумма матриц ранга 1: \(X = \Xi \Gamma^T\) где \(\Xi \in \mathbb{R}^{n \times K}\) содержит оценки в своих столбцах, и \(\Gamma^T \in \mathbb{R}^{K \times d}\) содержит нагрузки в своих строках. Аналогично для \(Y\), мы имеем \(Y = \Omega \Delta^T\).
Обратите внимание, что матрицы оценок \(\Xi\) и \(\Omega\) соответствуют проекциям обучающих данных \(X\) и \(Y\), соответственно.
Шаг a) может выполняться двумя способами: либо путем вычисления полного SVD
\(C\) и сохранение только сингулярных векторов с наибольшими сингулярными
значениями, или прямое вычисление сингулярных векторов с использованием степенного метода (см. раздел 11.3 в [1]), что соответствует 'nipals' опцию algorithm параметр.
Преобразование данных#
Для преобразования \(X\) в \(\bar{X}\), нам нужно найти матрицу проекции \(P\) такой, что \(\bar{X} = XP\). Мы знаем, что для
обучающих данных, \(\Xi = XP\), и \(X = \Xi \Gamma^T\). Установка
\(P = U(\Gamma^T U)^{-1}\) где \(U\) является матрицей с
\(u_k\) в столбцах у нас есть \(XP = X U(\Gamma^T U)^{-1} = \Xi
(\Gamma^T U) (\Gamma^T U)^{-1} = \Xi\) как требуется. Матрица вращения
\(P\) можно получить из x_rotations_ атрибут.
Аналогично, \(Y\) может быть преобразовано с использованием матрицы вращения
\(V(\Delta^T V)^{-1}\), доступ через y_rotations_ атрибут.
Прогнозирование целей Y#
Чтобы предсказать цели некоторых данных \(X\), мы ищем матрицу коэффициентов \(\beta \in R^{d \times t}\) такой, что \(Y = X\beta\).
Идея состоит в том, чтобы попытаться предсказать преобразованные цели \(\Omega\) как функция преобразованных выборок \(\Xi\), путём вычисления \(\alpha \in \mathbb{R}\) такой, что \(\Omega = \alpha \Xi\).
Затем у нас есть \(Y = \Omega \Delta^T = \alpha \Xi \Delta^T\), и поскольку \(\Xi\) является преобразованными обучающими данными, которые у нас есть \(Y = X \alpha P \Delta^T\), и в результате матрица коэффициентов \(\beta = \alpha P \Delta^T\).
\(\beta\) можно получить через coef_ атрибут.
1.8.2. PLSSVD#
PLSSVD является упрощенной версией PLSCanonical
описанный ранее: вместо итеративного сжатия матриц \(X_k\)
и \(Y_k\), PLSSVD вычисляет SVD для \(C = X^TY\)
only однажды, и сохраняет n_components сингулярные векторы, соответствующие наибольшим сингулярным значениям в матрицах U и V, соответствующий
x_weights_ и y_weights_ атрибуты. Здесь преобразованные данные — это
просто transformed(X) = XU и transformed(Y) = YV.
Если n_components == 1, PLSSVD и PLSCanonical являются
строго эквивалентными.
1.8.3. PLSRegression#
The PLSRegression оценщик похож на
PLSCanonical с algorithm='nipals', с 2 значительными различиями:
на шаге a) в степенном методе для вычисления \(u_k\) и \(v_k\), \(v_k\) никогда не нормализуется.
на шаге c) целевые значения \(Y_k\) аппроксимируются с использованием проекции \(X_k\) (т.е. \(\xi_k\)) вместо проекции \(Y_k\) (т.е. \(\omega_k\)). Другими словами, вычисление нагрузок отличается. В результате дефляция на шаге d) также будет затронута.
Эти два изменения влияют на вывод predict и transform, которые отличаются от PLSCanonical. Также, хотя количество компонентов ограничено min(n_samples, n_features, n_targets) в
PLSCanonical, здесь ограничением является ранг \(X^TX\), т.е.
min(n_samples, n_features).
PLSRegression также известен как PLS1 (одиночные цели) и PLS2 (множественные цели). Подобно Lasso,
PLSRegression является формой регуляризованной линейной регрессии, где количество компонент контролирует силу регуляризации.
1.8.4. Канонический корреляционный анализ#
Канонический корреляционный анализ был разработан раньше и независимо от PLS.
Но оказывается, что CCA является частным случаем PLS и соответствует
PLS в «Режиме B» в литературе.
CCA отличается от PLSCanonical в способе, которым веса
\(u_k\) и \(v_k\) вычисляются в степенном методе шага a).
Подробности можно найти в разделе 10 [1].
Поскольку CCA включает инверсию \(X_k^TX_k\) и
\(Y_k^TY_k\), этот оценщик может быть нестабильным, если количество признаков или
целевых переменных больше, чем количество образцов.
Ссылки
Примеры