1.8. Перекрестная декомпозиция

Модуль перекрестной декомпозиции содержит контролируемые оценки для снижения размерности и регрессии, принадлежащие к семейству “частичных наименьших квадратов” (Partial Least Squares - PLS).

../_images/sphx_glr_plot_compare_cross_decomposition_001.png

Алгоритмы перекрестной декомпозиции находят фундаментальные отношения между двумя матрицами (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.

Преобразование данных Click for more details

Чтобы преобразовать \(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 Click for more details

Чтобы спрогнозировать цели некоторых данных \(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\) только один раз и хранит сингулярные векторы 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