在主成分分析(PCA)原理總結中,我們對主成分分析(以下簡稱PCA)的原理做了總結,下面我們就總結下如何使用scikit-learn工具來進行PCA降維。

1. scikit-learn PCA類介紹

    在scikit-learn中,與PCA相關的類都在sklearn.decomposition包中。最常用的PCA類就是sklearn.decomposition.PCA,我們下面主要也會講解基于這個類的使用的方法。

    除了PCA類以外,最常用的PCA相關類還有KernelPCA類,在原理篇我們也講到了,它主要用于非線性數據的降維,需要用到核技巧。因此在使用的時候需要選擇合適的核函數并對核函數的參數進行調參。

    另外一個常用的PCA相關類是IncrementalPCA類,它主要是為了解決單機內存限制的。有時候我們的樣本量可能是上百萬+,維度可能也是上千,直接去擬合數據可能會讓內存爆掉, 此時我們可以用IncrementalPCA類來解決這個問題。IncrementalPCA先將數據分成多個batch,然后對每個batch依次遞增調用partial_fit函數,這樣一步步的得到最終的樣本最優(yōu)降維。

    此外還有SparsePCA和MiniBatchSparsePCA。他們和上面講到的PCA類的區(qū)別主要是使用了L1的正則化,這樣可以將很多非主要成分的影響度降為0,這樣在PCA降維的時候我們僅僅需要對那些相對比較主要的成分進行PCA降維,避免了一些噪聲之類的因素對我們PCA降維的影響。SparsePCA和MiniBatchSparsePCA之間的區(qū)別則是MiniBatchSparsePCA通過使用一部分樣本特征和給定的迭代次數來進行PCA降維,以解決在大樣本時特征分解過慢的問題,當然,代價就是PCA降維的精確度可能會降低。使用SparsePCA和MiniBatchSparsePCA需要對L1正則化參數進行調參。

2. sklearn.decomposition.PCA參數介紹

延伸閱讀

學習是年輕人改變自己的最好方式-Java培訓,做最負責任的教育,學習改變命運,軟件學習,再就業(yè),大學生如何就業(yè),幫大學生找到好工作,lphotoshop培訓,電腦培訓,電腦維修培訓,移動軟件開發(fā)培訓,網站設計培訓,網站建設培訓學習是年輕人改變自己的最好方式