sklearn中PCA的使用方法

PCA,中文名:主成分分析,在做特征篩選的時候會經(jīng)常用到,但是要注意一點,PCA并不是簡單的剔除掉一些特征,而是將現(xiàn)有的特征進行一些變換,選擇最能表達該數(shù)據(jù)集的最好的幾個特征來達到降維目的。sklearn中已經(jīng)有成熟的包,因此我們以后就可以直接調(diào)用了(開心~)。下面說一下關(guān)于此函數(shù)的一些參數(shù)說明,或者參考官網(wǎng)API。

1. 函數(shù)原型及參數(shù)說明

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

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

2. PCA對象的屬性

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

3.PCA常用方法

  • fit(X): 用數(shù)據(jù)X來訓(xùn)練PCA模型。
  • fit_transform(X):用X來訓(xùn)練PCA模型,同時返回降維后的數(shù)據(jù)。
  • inverse_transform(newData) :將降維后的數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù),但可能不會完全一樣,會有些許差別。
  • transform(X):將數(shù)據(jù)X轉(zhuǎn)換成降維后的數(shù)據(jù),當模型訓(xùn)練好后,對于新輸入的數(shù)據(jù),也可以用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]

可以發(fā)現(xiàn)第一個特征可以99.24%表達整個數(shù)據(jù)集,因此我們可以降到1維:

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

怎么樣,今天的技能get到了嗎,如果喜歡的話就點個贊吧~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在現(xiàn)實生活中很多機器學(xué)習(xí)問題有上千維,甚至上萬維特征,這不僅影響了訓(xùn)練速度,通常還很難找到比較好的解。這樣的問題成...
    wong11閱讀 62,145評論 0 36
  • 原文:http://blog.codinglabs.org/articles/pca-tutorial.html ...
    mogu醬閱讀 2,482評論 0 21
  • 文章主要參考于大神城東(部分認為有問題的地方進行了修改) 1. 特征工程是什么? 數(shù)據(jù)和特征決定了機器學(xué)習(xí)的上限,...
    jockerMe閱讀 1,792評論 0 11
  • 一前言 特征值 奇異值 二奇異值計算 三PCA 1)數(shù)據(jù)的向量表示及降維問題 2)向量的表示及基變換 3)基向量 ...
    Arya鑫閱讀 11,166評論 2 43
  • 氣溫驟降,怕行車路上不安全,林瑯決定提前出門??纯创巴獾奶焐?,麻麻亮,象中旬老婦黑白摻雜的頭發(fā)。推開門,冷風(fēng)呼呼地...
    三千墨M閱讀 1,071評論 39 69

友情鏈接更多精彩內(nèi)容