1.8. Перекрестное разложение#

Модуль перекрестного разложения содержит обучение с учителем оценщики для снижения размерности и регрессии, относящиеся к семейству «Частичных Наименьших Квадратов».

../_images/sphx_glr_plot_compare_cross_decomposition_001.png

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

Ссылки

Примеры