機器學習_學習筆記系列(56):偏最小平方奇異值分解(Partial Least Square Singular Vectors Decomposition)

--

上一篇我們介紹了PLS-W2A演算法,其利用迭代的方式,每次先計算X和Y數據集的cross-covariance matrix,然後經過SVD取U和V的第一筆向量。而迴圈的次數取決於我們想將數據降維到幾維。

而今天我們今天要來介紹另一個演算法,其叫做Partial Least Square Singular Vectors Decomposition。

PLS-SVD

對於PLS-SVD,其概念和PLS-W2A很接近,一開始我們一樣假使今天我們拿到兩組維度很高的資料集X和Y,並將兩者相乘做奇異值分解

但是在這裡與PLS-W2A不同的是,如果我們想要將數據降到K維,我們就直接取U和V前面的K組向量。

所以說若我們可以直接用

算出X和Y降維過後的資料。

若我們想要重組回原來的數據,我們先計算score

然後用Ξ和Ω計算Loading

最後我們就可以用

重建原本的數據

Example

現在我們用上次的例子實際來看看其降維後的效果

K=1

K=2

K=3

K=4

K=5

K=6

我們可以看到其效果和PLS-W2A非常類似,一開始的時候幾乎沒辦法擬合到原來的圖案,但是隨著投影的維度越接近原來的維度,其還原的效果會越來越好。

Python Sample Code:

Github:

Reference:

[1] Wegelin, J. A. (2000). A survey of Partial Least Squares (PLS) methods, with emphasis on the two-block case.

[2] Scikit-learn: Machine Learning in Python, Pedregosa et al., JMLR 12, pp. 2825–2830, 2011.

--

--

劉智皓 (Chih-Hao Liu)
劉智皓 (Chih-Hao Liu)

Written by 劉智皓 (Chih-Hao Liu)

豬屎屋AI RD,熱愛AI研究、LLM/SD模型、RAG應用、CUDA/HIP加速運算、訓練推論加速,同時也是5G技術愛好者,研讀過3GPP/ETSI/O-RAN Spec和O-RAN/ONAP/OAI開源軟體。

No responses yet