在主成分分析(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參數介紹
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉無線電——不安全的藍牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現JSON轉Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應用分析 2017-07-26
- 集合結合數據結構來看看(二) 2017-07-26