Spec-Zone.ru › scikit-learn

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\) в \(X\) и \(Y_1\) в \(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\) на сингулярные векторы, чтобы получить оценки: \(\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\) можно получить из атрибута 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\) только один раз и сохраняет n_components сингулярные векторы, соответствующие наибольшим сингулярным значениям, в матрицах U и V, соответствующих атрибутам x_weights_ и y_weights_. Здесь преобразованные данные просто transformed(X) = XU и transformed(Y) = YV.

Если n_components == 1, PLSSVD и PLSCanonical строго эквивалентны.

1.8.3. PLSРегрессия

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

Список литературы

[1] (1,2,3,4)

Обзор методов частичного наименьших квадратов (PLS) с акцентом на двухблочном случае, JA Wegelin

Примеры

  • Сравнить методы кросс-декомпозиции
  • Регрессия главных компонент против регрессии частичных наименьших квадратов

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/cross_decomposition.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API