機器學習_學習筆記系列(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.