真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python中pca的用法

python中pca的用法?這個問題可能是我們?nèi)粘W(xué)習(xí)或工作經(jīng)常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家?guī)淼膮⒖純?nèi)容,讓我們一起來看看吧!

成都創(chuàng)新互聯(lián)公司于2013年成立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目成都網(wǎng)站建設(shè)、成都網(wǎng)站制作網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元芙蓉做網(wǎng)站,已為上家服務(wù),為芙蓉各地企業(yè)和個人服務(wù),聯(lián)系電話:18982081108

from sklearn.decomposition import PCA

PCA

主成分分析(Principal Components Analysis),簡稱PCA,是一種數(shù)據(jù)降維技術(shù),用于數(shù)據(jù)預(yù)處理。

PCA的一般步驟是:先對原始數(shù)據(jù)零均值化,然后求協(xié)方差矩陣,接著對協(xié)方差矩陣求特征向量和特征值,這些特征向量組成了新的特征空間。

sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)
參數(shù):
n_components:
意義:PCA算法中所要保留的主成分個數(shù)n,也即保留下來的特征個數(shù)n
類型:int 或者 string,缺省時默認(rèn)為None,所有成分被保留。
    賦值為int,比如n_components=1,將把原始數(shù)據(jù)降到一個維度。
    賦值為string,比如n_components='mle',將自動選取特征個數(shù)n,使得滿足所要求的方差百分比。
copy:
類型:bool,True或者False,缺省時默認(rèn)為True。
意義:表示是否在運(yùn)行算法時,將原始訓(xùn)練數(shù)據(jù)復(fù)制一份。若為True,則運(yùn)行PCA算法后,原始訓(xùn)練數(shù)據(jù)的值不會有任何改變,
因為是在原始數(shù)據(jù)的副本上進(jìn)行運(yùn)算;若為False,則運(yùn)行PCA算法后,原始訓(xùn)練數(shù)據(jù)的值會改,因為是在原始數(shù)據(jù)上進(jìn)行降維計算。
whiten:
類型:bool,缺省時默認(rèn)為False。
意義:白化,使得每個特征具有相同的方差。

PCA屬性:

components_ :返回具有最大方差的成分。

explained_variance_ratio_:返回 所保留的n個成分各自的方差百分比。

n_components_:返回所保留的成分個數(shù)n。

mean_:

noise_variance_:

PCA方法:

1、fit(X,y=None)

fit(X),表示用數(shù)據(jù)X來訓(xùn)練PCA模型。

函數(shù)返回值:調(diào)用fit方法的對象本身。比如pca.fit(X),表示用X對pca這個對象進(jìn)行訓(xùn)練。

拓展:fit()可以說是scikit-learn中通用的方法,每個需要訓(xùn)練的算法都會有fit()方法,它其實就是算法中的“訓(xùn)練”這一步驟。因為PCA是無監(jiān)督學(xué)習(xí)算法,此處y自然等于None。

2、fit_transform(X)

用X來訓(xùn)練PCA模型,同時返回降維后的數(shù)據(jù)。

newX=pca.fit_transform(X),newX就是降維后的數(shù)據(jù)。

3、inverse_transform(X)

將降維后的數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù),X=pca.inverse_transform(newX)

4、transform(X)

將數(shù)據(jù)X轉(zhuǎn)換成降維后的數(shù)據(jù)。當(dāng)模型訓(xùn)練好后,對于新輸入的數(shù)據(jù),都可以用transform方法來降維。

此外,還有g(shù)et_covariance()、get_precision()、get_params(deep=True)、score(X, y=None)等方法,以后用到再補(bǔ)充吧。

實例:

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)     #等價于pca.fit(X) pca.transform(X)
invX = pca.inverse_transform(X)  #將降維后的數(shù)據(jù)轉(zhuǎn)換成原始數(shù)據(jù)
print(X)
     [[-1 -1]
     [-2 -1]
     [-3 -2]
     [ 1 1]
     [ 2 1]
     [ 3 2]]
print(newX)
    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(invX)
    [[-1 -1]
     [-2 -1]
     [-3 -2]
     [ 1 1]
     [ 2 1]
     [ 3 2]]
print(pca.explained_variance_ratio_)
    [ 0.99244289  0.00755711]

我們所訓(xùn)練的pca對象的n_components值為2,即保留2個特征,第一個特征占所有特征的方差百分比為0.99244289,意味著幾乎保留了所有的信息。即第一個特征可以99.24%表達(dá)整個數(shù)據(jù)集,因此我們可以降到1維:

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

感謝各位的閱讀!看完上述內(nèi)容,你們對python中pca的用法大概了解了嗎?希望文章內(nèi)容對大家有所幫助。如果想了解更多相關(guān)文章內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文標(biāo)題:python中pca的用法
瀏覽路徑:http://weahome.cn/article/jhjhje.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部