日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

机器学习算法-PCA降维技术

發(fā)布時(shí)間:2024/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习算法-PCA降维技术 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

機(jī)器學(xué)習(xí)算法-PCA降維

一、引言

???在實(shí)際的數(shù)據(jù)分析問(wèn)題中我們遇到的問(wèn)題通常有較高維數(shù)的特征,在進(jìn)行實(shí)際的數(shù)據(jù)分析的時(shí)候,我們并不會(huì)將所有的特征都用于算法的訓(xùn)練,而是挑選出我們認(rèn)為可能對(duì)目標(biāo)有影響的特征。比如在泰坦尼克號(hào)乘員生存預(yù)測(cè)的問(wèn)題中我們會(huì)將姓名作為無(wú)用信息進(jìn)行處理,這是我們可以從直觀上比較好理解的。但是有些特征之間可能存在強(qiáng)相關(guān)關(guān)系,比如研究一個(gè)地區(qū)的發(fā)展?fàn)顩r,我們可能會(huì)選擇該地區(qū)的GDP和人均消費(fèi)水平這兩個(gè)特征作為一個(gè)衡量指標(biāo)。顯然這兩者之間是存在較強(qiáng)的相關(guān)關(guān)系,他們描述的都是該地區(qū)的經(jīng)濟(jì)狀況,我們是否能夠?qū)⑺麄冝D(zhuǎn)成一個(gè)特征呢?這樣就能達(dá)到降低特征維度的特征,同時(shí)也能夠避免因特征過(guò)多而產(chǎn)生的過(guò)擬合問(wèn)題。

二、PCA降維技術(shù)

???用于給數(shù)據(jù)降低維度的方法大致有三種,主成分分析法、因子分析法、獨(dú)立成分分析法。由于主成分分析法在三者之中使用的比較多,這里我們只對(duì)主成分分析進(jìn)行深入探討。

2.1 ?PCA算法思想

在主成分分析中,通過(guò)坐標(biāo)變化將原來(lái)的坐標(biāo)系轉(zhuǎn)化到新的坐標(biāo)系。新坐標(biāo)的坐標(biāo)軸的選擇是與原始數(shù)據(jù)有關(guān)的,第一個(gè)坐標(biāo)軸選擇的是原始數(shù)據(jù)中方差最大的方向,第二個(gè)坐標(biāo)軸的選擇和第一個(gè)坐標(biāo)正交且具有最大方差,這樣一直重復(fù),直到坐標(biāo)維數(shù)與數(shù)據(jù)的特征維數(shù)相同??梢园l(fā)現(xiàn),大部分的方差都包含在前面的幾個(gè)新的坐標(biāo)軸中。因此可以忽略余下的坐標(biāo)軸,這樣就對(duì)數(shù)據(jù)進(jìn)行了一個(gè)降維。

2.2?PCA算法的計(jì)算方法

首先我們來(lái)介紹一些PCA的計(jì)算方法,在這之后我們將從數(shù)學(xué)上來(lái)對(duì)PCA算法進(jìn)行分析。

PCA的計(jì)算過(guò)程如下:

Ste1:去除每維特征的均值,目的是將數(shù)據(jù)的中心移動(dòng)到原點(diǎn)上。

Ste2:計(jì)算協(xié)方差矩陣。

Ste3:計(jì)算協(xié)方差矩陣的特征值和特征向量。

Ste4:將特征值從大到小序,找出其中最上面的N個(gè)特征向量。

Step5:將原始數(shù)據(jù)轉(zhuǎn)換到上述N個(gè)特征向量構(gòu)建的新的空間中去。

通過(guò)以上5個(gè)步驟,我們就能將原始數(shù)據(jù)降低到我們想要達(dá)到的維度。主成分分析的主要思想是基于方差最大、維度最小理論,因此我們可以通過(guò)計(jì)算累計(jì)貢獻(xiàn)率來(lái)來(lái)確定N的值的大小。定義貢獻(xiàn)率如下:

?

其中λ(i)表示的為第i個(gè)維度對(duì)應(yīng)的特征值。我們可以設(shè)置適當(dāng)?shù)拈撝?#xff0c;一般為0.8,如果前N個(gè)特征值的貢獻(xiàn)率之和達(dá)到該閾值,我們就可以認(rèn)為N維代表了原始數(shù)據(jù)的主要信息。

2.3 PCA技術(shù)的數(shù)學(xué)原理

在上一節(jié)中我們已經(jīng)討論了PCA的計(jì)算方法,下面我們將討論為什么要這計(jì)算。在信號(hào)處理中認(rèn)為信號(hào)具有較大的方差,而噪聲具有較小的方差。信噪比表示的是信號(hào)方差與噪聲方差之比。信噪比越高則表數(shù)據(jù)越好。通過(guò)坐標(biāo)變換,我們可以計(jì)算在新坐標(biāo)下每一個(gè)維度的方差,如果變換后某一個(gè)坐標(biāo)軸上的方差很小我們就可以認(rèn)為該維特征是噪聲及干擾特征。因此坐標(biāo)變換最好的方式就是

將變換之后N維特征的每一維方差都很大。

?

圖1

如圖1所示藍(lán)色加粗線條表示坐標(biāo)變化之后的某個(gè)維度,表示經(jīng)過(guò)去除平均值之后的數(shù)據(jù)的第i個(gè)樣本,u是該維度的方向向量,表示的是在該維度上到原點(diǎn)的距離。現(xiàn)在我們要做的就是找出u使得數(shù)據(jù)在該維度上投影的方差之和最大。由于經(jīng)過(guò)去除平均值處理之后的平均值為0,容易證明它們?cè)谌魏畏较蛏系耐队暗钠骄狄矠?/span>0.因此在u方向的方差之后為:

?

上式中的中間部分正好表示的就是樣本特征的協(xié)方差矩陣如果用λ表示var,用表示,那么上式就能夠表示成為。根據(jù)特征值的的定義,λ就是的一特征值,u就是特征向量。最佳的投影直線是特征值λ最大時(shí)對(duì)應(yīng)的特征向量,依次類推。也就是說(shuō)特征值的大小等價(jià)于歸一化之后數(shù)據(jù)的的方差大小。因此我們只需要對(duì)協(xié)方差矩陣進(jìn)行特征值分解,得到前N個(gè)特征值對(duì)應(yīng)的特征向量,并且這N維新的特征是正交的。因此可以通過(guò)以下計(jì)算方式將n維原數(shù)據(jù)轉(zhuǎn)化為新的N維數(shù)據(jù):

?

通過(guò)選取最大的前N維使得他們累計(jì)貢獻(xiàn)率達(dá)到一定值,我們就能拋棄掉方差較小的特征,實(shí)現(xiàn)降維的目的。

2.4?PCA技術(shù)的python實(shí)現(xiàn)

定義函數(shù)PCA如下:

def pca(dataMat, minRation):meanVals = mean(dataMat, axis=0)meanRemoved = dataMat - meanVals #去除平均值covMat = cov(meanRemoved,rowvar=0)#計(jì)算協(xié)方差矩陣eigVals,eigVects = linalg.eig(mat(covMat))#計(jì)算特征值特征向量eigValInd=argsort(-eigVals)#從小大到排序ratio=0topNfeat=1for i in range(len(eigVals)):index=eigValInd[i]ratio=ratio+eigVals[index]#計(jì)算累計(jì)貢獻(xiàn)率topNfeat=i+1if ratio>minRation:breakeigValInd=eigValInd[1:topNfeat+1]redEigVects=eigVects[:,eigValInd]lowDDataMat = meanRemoved * redEigVects#將數(shù)據(jù)轉(zhuǎn)化到新的維度空間return topNfeat lowDDataMat

? ? 該函數(shù)輸入為一個(gè)原始矩陣,和累計(jì)貢獻(xiàn)率的閾值。首先去除平均值,然后利用numy庫(kù)提供的cov()函數(shù)計(jì)算去除平均值之后的數(shù)據(jù)的協(xié)方差矩陣。再通過(guò)linalg.eig()函數(shù)計(jì)算該協(xié)方差矩陣的特征值和特征向量。通過(guò)argsort函數(shù)對(duì)(-eigVals)進(jìn)行排序,相當(dāng)于對(duì)eigVals進(jìn)行逆序排序,返回排序后的索引值。其中的循環(huán)是用來(lái)計(jì)算新空間下的維數(shù),lowData是變換到新空間下的數(shù)據(jù)。最終該函數(shù)輸出為變換后的數(shù)據(jù),以及該空間的維數(shù)topNfeat。

三、PCA技術(shù)的應(yīng)用

3.1 問(wèn)題描述

? ? ?延續(xù)之前的回聲探測(cè)的問(wèn)題,即從60個(gè)不同的方向?qū)r石進(jìn)行測(cè)試,根據(jù)回聲的結(jié)果來(lái)探測(cè)的物體是巖壁還是礦井。該數(shù)據(jù)集共有208個(gè)數(shù)據(jù),每個(gè)數(shù)據(jù)的維度為60.

3.2?PCA降維處理

?

? 我們已經(jīng)在adabost使用過(guò)這個(gè)例子,這次我們對(duì)進(jìn)行PCA降維之后的數(shù)據(jù)再次用adabost算法,計(jì)算測(cè)試的準(zhǔn)確率。測(cè)試的準(zhǔn)確率及運(yùn)行時(shí)間如下表。

累計(jì)貢獻(xiàn)率閾值p

處理后的維數(shù)N

測(cè)試的平均準(zhǔn)確率r

程序平均時(shí)間t

0.80

7

0.27

1.44

0.85

9

0.26

1.84

0.90

12

0.28

2.40

0.95

17

0.30

3.01

0.98

24

0.21

5.1

1.00

60

0.28

5.70

  結(jié)果發(fā)現(xiàn)如果把累計(jì)貢獻(xiàn)率設(shè)置為0.9則新的空間下的維度為19維,大大降低了數(shù)據(jù)的維度。而在相同的數(shù)據(jù)集上,降維之后算法的準(zhǔn)確率幾乎沒(méi)有變化。這表明降維對(duì)于數(shù)據(jù)的處理是一種有效的手段。

四、總結(jié)

?

  本文從方差理論的角度對(duì)CA降維技術(shù)的原理進(jìn)行了分析,然后通過(guò)與之前Adaboost算法結(jié)合比較在降維前后算法準(zhǔn)確率的變化。在本例中,數(shù)據(jù)集經(jīng)降維處理之后在數(shù)據(jù)集上的準(zhǔn)確率變化不大,但是時(shí)間卻大大縮短了。當(dāng)然,在其的數(shù)據(jù)上我也做過(guò)一些實(shí)驗(yàn),發(fā)現(xiàn)有些數(shù)據(jù)算法效率能夠顯著提升,而有些則不能。因此降維技術(shù)并不是萬(wàn)能的,而是需要根據(jù)實(shí)際數(shù)據(jù)集進(jìn)行分析是否適合使用。

?

轉(zhuǎn)載于:https://www.cnblogs.com/xfydjy/p/9291119.html

總結(jié)

以上是生活随笔為你收集整理的机器学习算法-PCA降维技术的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。