sklearn中PCA的使用方法


1. 函數原型及參數說明

這里只挑幾個比較重要的參數進行說明。

sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False) 
  • n_components: int, float, None 或 string,PCA算法中所要保留的主成分個數,也即保留下來的特征個數,如果 n_components = 1,將把原始數據降到一維;如果賦值為string,如n_components='mle',將自動選取特征個數,使得滿足所要求的方差百分比;如果沒有賦值,默認為None,特征個數不會改變(特征數據本身會改變)。
  • copy:True 或False,默認為True,即是否需要將原始訓練數據復制。
  • whiten:True 或False,默認為False,即是否白化,使得每個特征具有相同的方差。

2. PCA對象的屬性

  • explained_variance_ratio_:返回所保留各個特征的方差百分比,如果n_components沒有賦值,則所有特征都會返回一個數值且解釋方差之和等於1。
  • n_components_:返回所保留的特征個數。

3.PCA常用方法

  • fit(X): 用數據X來訓練PCA模型。
  • fit_transform(X):用X來訓練PCA模型,同時返回降維后的數據。
  • inverse_transform(newData) :將降維后的數據轉換成原始數據,但可能不會完全一樣,會有些許差別。
  • transform(X):將數據X轉換成降維后的數據,當模型訓練好后,對於新輸入的數據,也可以用transform方法來降維。

4.簡單栗子

import numpy as np from sklearn.decomposition import PCA X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]]) pca = PCA(n_components=2) newX = pca.fit_transform(X) print(X) Out[365]: [[-1 -1] [-2 -1] [-3 -2] [ 1 1] [ 2 1] [ 3 2]] print(newX) Out[366]: array([[ 1.38340578, 0.2935787 ], [ 2.22189802, -0.25133484], [ 3.6053038 , 0.04224385], [-1.38340578, -0.2935787 ], [-2.22189802, 0.25133484], [-3.6053038 , -0.04224385]]) print(pca.explained_variance_ratio_) [ 0.99244289 0.00755711] 

可以發現第一個特征可以99.24%表達整個數據集,因此我們可以降到1維:

pca = PCA(n_components=1) newX = pca.fit_transform(X) print(pca.explained_variance_ratio_) [ 0.99244289]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM