1.8. Перекрестная декомпозиция¶
Модуль перекрестной декомпозиции содержит контролируемые оценки для снижения размерности и регрессии, принадлежащие к семейству “частичных наименьших квадратов” (Partial Least Squares - PLS).
Алгоритмы перекрестной декомпозиции находят фундаментальные отношения между двумя матрицами (X и Y). Это подходы со скрытыми переменными к моделированию ковариационных структур в этих двух пространствах. Они попытаются найти многомерное направление в пространстве X, которое объясняет максимальное направление многомерной дисперсии в пространстве Y. Другими словами, PLS проецирует как “X”, так и “Y” в подпространство меньшей размерности так, чтобы ковариация между “transformed(X)” и “transformed(Y)” была максимальной.
PLS обнаруживает сходство с Регрессией главных компонентов (Principal Component Regression - PCR), где образцы сначала проецируются в подпространство меньшей размерности, а целевые значения y
прогнозируются с использованием “transformed(X)”.
Одна из проблем с PCR заключается в том, что снижение размерности не контролируется и может привести к потере некоторых важных переменных: PCR сохранит признаки с наибольшей дисперсией, но возможно, что признаки с небольшими отклонениями будут иметь значение для прогнозирования цели.
В некотором смысле, PLS допускает такое же снижение размерности, но с учетом целевых значений y
.
Иллюстрацией этого факта является следующий пример:
* Principal Component Regression vs Partial Least Squares Regression.
Помимо CCA (Canonical Correlation Analysis описание ниже), оценки 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}\), и a
- количество компонентов \(K\), PLSCanonical
происходит следующим образом:
Устанавливает \(X_1\) в \(X\) и \(Y_1\) в \(Y\). Затем, для каждого \(k \in [1, K]\):
-а) вычислить \(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\) на сингулярных векторах, чтобы получить оценки: \(\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) Снижать \(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\) можно получить из атрибута Аналогично, \(Y\) можно преобразовать с помощью матрицы вращения \(V(\Delta^T V)^{-1}\), доступ к которой осуществляется через атрибут
Преобразование данных
Click for more details
¶
x_rotations_
.y_rotations_
.
Чтобы спрогнозировать цели некоторых данных \(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\) можно получить доступ через атрибут
Прогнозирование целей Y
Click for more details
¶
coef_
.
1.8.2. PLSSVD¶
PLSSVD
- это упрощенная версия PLSCanonical
, описанная ранее: вместо итеративного выкачивания матриц \(X_k\) и \(Y_k\), PLSSVD
вычисляет SVD \(C = X^TY\) только один раз и хранит сингулярные векторы n_components
, соответствующие наибольшим сингулярным значениям в матрицах U
и V
, соответствующих атрибутов x_weights_
и y_weights_
. Здесь преобразованные данные - это просто “transformed(X) = XU” и “transformed(Y) = YV”.
Если n_components == 1
, PLSSVD
и PLSCanonical
строго эквивалентны.
1.8.3. PLSRegression¶
Модель PLSRegression
аналогичен PLSCanonical
с algorithm='nipals'
, но с двумя существенными отличиями:
-на этапе а) в степенном методе вычисления \(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. Канонический корреляционный анализ (Canonical Correlation Analysis - CCA)¶
Канонический корреляционный анализ (Canonical Correlation Analysis - CCA) был разработан до и независимо от PLS.
Но оказывается, что CCA
является частным случаем PLS и соответствует PLS в “режиме B” в литературе.
CCA
отличается от PLSCanonical
тем, как веса \(u_k\) и \(v_k\) вычисляются степенным методом на шаге a). Подробности можно найти в разделе 10 документа [1].
Поскольку CCA
включает инверсию \(X_k^TX_k\) и \(Y_k^TY_k\), эта модель может быть нестабильным, если количество объектов или целевых объектов превышает количество выборок.
Ссылки
Click for more details
¶
Примеры: