降維算法應(yīng)用——PCA算法

之前總結(jié)了聚類算法,然后我們這一課來(lái)簡(jiǎn)單學(xué)習(xí)一下降維算法,常用的降維算法有PCA算法。

主成分分析

Principal Component Analysis,簡(jiǎn)稱PCA,通常用于高位數(shù)據(jù)集的降維和可視化,還可以用數(shù)據(jù)壓縮和數(shù)據(jù)降維等,可用于數(shù)據(jù)壓縮和預(yù)處理。

相關(guān)術(shù)語(yǔ):

1.方差:是各個(gè)樣本和樣本均值的差的平方和的均值,用來(lái)度量一組
數(shù)據(jù)的分散程度。
2.協(xié)方差:用于度量?jī)蓚€(gè)變量之間的線性相關(guān)性程度,若兩個(gè)變量的
協(xié)方差為0,則可認(rèn)為二者線性無(wú)關(guān)。
3.協(xié)方差矩陣:由變量的協(xié)方差值構(gòu)成的矩陣
4.特征向量和特征值:矩陣的特征向量是描述數(shù)據(jù)集結(jié)構(gòu)的非零向量,并滿足如下公式:Av = λv,A是方陣, v是特征向量,λ是特征值。

原理:

矩陣的主成分就是其協(xié)方差矩陣對(duì)應(yīng)的特征向量,按照對(duì)應(yīng)的特征值大小進(jìn)行排序,最大的特征值就是第一主成分,其次是第二主成分,以此類推。
算法過(guò)程:


image.png

目標(biāo):

已知鳶尾花數(shù)據(jù)是4維的,共三類樣本。使用PCA實(shí)現(xiàn)對(duì)鳶尾花數(shù)據(jù)進(jìn)行降維,實(shí)現(xiàn)在二維平面上的可視化。

具體算法:

#-*- coding:utf-8 -*-
import matplotlib.pyplot as plt#加載matplotlib用于數(shù)據(jù)的可視化
from sklearn.decomposition import  PCA#加載PCA算法包
from sklearn.datasets import load_iris#加載鳶尾花數(shù)據(jù)集導(dǎo)入函數(shù)
data=load_iris()#以字典形式加載鳶尾花數(shù)據(jù)集
x=data.data#使用X表示數(shù)據(jù)集中的屬性數(shù)據(jù)
y=data.target#使用y表示數(shù)據(jù)集中的標(biāo)簽
pca=PCA(n_components=2)#加載PCA算法,設(shè)置降維后主成分?jǐn)?shù)目為2
reduce_x=pca.fit_transform(x)#對(duì)原始數(shù)據(jù)進(jìn)行降維,保存在reduced_X中
red_x,red_y=[],[]                      #第一類數(shù)據(jù)點(diǎn)
blue_x,blue_y=[],[]                        #第二類數(shù)據(jù)點(diǎn)
green_x,green_y=[],[]                                 #第三類數(shù)據(jù)點(diǎn)
# print(reduce_x[:][:])
for i in range(len(reduce_x)):
    if y[i]==0:
        red_x.append(reduce_x[i][0])                   #將分類后的鳶尾花數(shù)據(jù)加入到不同的列表中
        red_y.append(reduce_x[i][1])
    elif y[i]==1:
        blue_x.append(reduce_x[i][0])
        blue_y.append(reduce_x[i][1])
    else:
        green_x.append(reduce_x[i][0])
        green_y.append(reduce_x[i][1])
plt.scatter(red_x,red_y,c='r',marker='X')            #畫(huà)出散點(diǎn)圖
plt.scatter(blue_x,blue_y,c='b',marker='D')
plt.scatter(green_x,green_y,c='g',marker='.')
plt.show()

輸出結(jié)果:

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

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

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