版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
數(shù)據(jù)分析:主成分分析(PCA):概率論與數(shù)理統(tǒng)計(jì)1引言1.1PCA的概念與應(yīng)用主成分分析(PCA,PrincipalComponentAnalysis)是一種廣泛應(yīng)用于數(shù)據(jù)降維、特征提取和數(shù)據(jù)可視化等領(lǐng)域的統(tǒng)計(jì)方法。PCA通過(guò)線性變換將一組可能相關(guān)的變量轉(zhuǎn)換成一組線性不相關(guān)的變量,稱為主成分。這些主成分按照方差大小排序,方差最大的主成分排在最前面,意味著它能解釋數(shù)據(jù)中最大的變異。PCA的核心目標(biāo)是通過(guò)減少數(shù)據(jù)的維度,同時(shí)盡可能多地保留數(shù)據(jù)的原始信息。1.1.1應(yīng)用場(chǎng)景數(shù)據(jù)降維:在高維數(shù)據(jù)中,PCA可以減少數(shù)據(jù)的維度,降低計(jì)算復(fù)雜度,同時(shí)去除數(shù)據(jù)中的冗余信息。特征提取:PCA可以用于提取數(shù)據(jù)中的關(guān)鍵特征,這些特征往往能代表數(shù)據(jù)的主要信息。數(shù)據(jù)可視化:將高維數(shù)據(jù)降維到2D或3D空間,便于數(shù)據(jù)的可視化分析。1.2PCA在數(shù)據(jù)降維中的作用PCA在數(shù)據(jù)降維中的作用主要體現(xiàn)在以下幾個(gè)方面:去除冗余:通過(guò)PCA,可以識(shí)別并去除數(shù)據(jù)中的冗余特征,減少數(shù)據(jù)的維度,同時(shí)保持?jǐn)?shù)據(jù)的完整性。簡(jiǎn)化模型:降維后的數(shù)據(jù)可以用于構(gòu)建更簡(jiǎn)單、更易于理解和解釋的模型。提高效率:降維可以顯著減少計(jì)算資源的消耗,提高數(shù)據(jù)處理和模型訓(xùn)練的效率。減少過(guò)擬合:通過(guò)減少特征數(shù)量,PCA有助于減少模型的過(guò)擬合風(fēng)險(xiǎn),提高模型的泛化能力。1.2.1實(shí)例:使用PCA進(jìn)行數(shù)據(jù)降維假設(shè)我們有一組高維數(shù)據(jù),我們想要將其降維到較低的維度,同時(shí)保留盡可能多的信息。我們將使用Python的scikit-learn庫(kù)中的PCA模塊來(lái)實(shí)現(xiàn)這一目標(biāo)。importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearn.decompositionimportPCA
fromsklearn.datasetsimportload_iris
#加載數(shù)據(jù)集
data=load_iris()
X=data.data
y=data.target
#創(chuàng)建PCA實(shí)例,指定降維后的維度為2
pca=PCA(n_components=2)
#擬合數(shù)據(jù)并進(jìn)行降維
X_pca=pca.fit_transform(X)
#可視化降維后的數(shù)據(jù)
plt.figure()
colors=['navy','turquoise','darkorange']
lw=2
forcolor,i,target_nameinzip(colors,[0,1,2],data.target_names):
plt.scatter(X_pca[y==i,0],X_pca[y==i,1],color=color,alpha=.8,lw=lw,
label=target_name)
plt.legend(loc='best',shadow=False,scatterpoints=1)
plt.title('PCAofIRISdataset')
plt.show()1.2.2解釋在這個(gè)例子中,我們使用了Iris數(shù)據(jù)集,它包含了150個(gè)樣本,每個(gè)樣本有4個(gè)特征。通過(guò)PCA,我們將數(shù)據(jù)降維到2個(gè)主成分上,然后使用matplotlib庫(kù)將降維后的數(shù)據(jù)可視化。從圖中可以看出,即使在2D空間中,不同種類的鳶尾花仍然可以被很好地分離,這說(shuō)明PCA有效地保留了數(shù)據(jù)中的關(guān)鍵信息。1.2.3PCA的數(shù)學(xué)原理PCA基于協(xié)方差矩陣或相關(guān)矩陣的特征值分解。對(duì)于一個(gè)數(shù)據(jù)矩陣X,PCA的目標(biāo)是找到一組正交向量(即主成分),這些向量能最大化數(shù)據(jù)在新坐標(biāo)系下的方差。具體步驟如下:數(shù)據(jù)預(yù)處理:對(duì)數(shù)據(jù)進(jìn)行中心化,即從每個(gè)特征中減去其均值。計(jì)算協(xié)方差矩陣:對(duì)于中心化后的數(shù)據(jù),計(jì)算其協(xié)方差矩陣。特征值分解:對(duì)協(xié)方差矩陣進(jìn)行特征值分解,得到特征值和對(duì)應(yīng)的特征向量。選擇主成分:根據(jù)特征值的大小,選擇前k個(gè)特征向量作為主成分。數(shù)據(jù)投影:將原始數(shù)據(jù)投影到由選定的主成分構(gòu)成的新坐標(biāo)系上,完成數(shù)據(jù)降維。PCA是一種無(wú)監(jiān)督學(xué)習(xí)方法,它不依賴于數(shù)據(jù)的標(biāo)簽信息,而是完全基于數(shù)據(jù)的統(tǒng)計(jì)特性。通過(guò)PCA,我們可以有效地減少數(shù)據(jù)的維度,同時(shí)保留數(shù)據(jù)的關(guān)鍵信息,這對(duì)于后續(xù)的數(shù)據(jù)分析和模型構(gòu)建具有重要意義。2主成分分析的數(shù)學(xué)基礎(chǔ)2.1協(xié)方差矩陣與相關(guān)矩陣2.1.1協(xié)方差矩陣協(xié)方差矩陣是主成分分析(PCA)中一個(gè)核心概念,它描述了數(shù)據(jù)集中各變量之間的線性關(guān)系強(qiáng)度和方向。對(duì)于一個(gè)具有n個(gè)樣本和p個(gè)變量的數(shù)據(jù)集,協(xié)方差矩陣是一個(gè)p×p的矩陣,其中元素Cij表示第協(xié)方差的計(jì)算公式為:C其中,xki是第k個(gè)樣本的第i個(gè)變量的值,xi2.1.2相關(guān)矩陣相關(guān)矩陣是協(xié)方差矩陣的一種標(biāo)準(zhǔn)化形式,它消除了變量量綱的影響,使得每個(gè)元素Rij表示第i個(gè)變量和第j個(gè)變量之間的相關(guān)系數(shù),范圍在相關(guān)系數(shù)的計(jì)算公式為:R2.1.3示例代碼假設(shè)我們有一個(gè)數(shù)據(jù)集,包含兩個(gè)變量X和Y,我們將計(jì)算它們的協(xié)方差矩陣和相關(guān)矩陣。importnumpyasnp
#數(shù)據(jù)集
data=np.array([[1,2],[3,4],[5,6],[7,8],[9,10]])
#計(jì)算協(xié)方差矩陣
cov_matrix=np.cov(data,rowvar=False)
print("協(xié)方差矩陣:\n",cov_matrix)
#計(jì)算相關(guān)矩陣
corr_matrix=np.corrcoef(data,rowvar=False)
print("相關(guān)矩陣:\n",corr_matrix)2.2特征值與特征向量2.2.1特征值特征值是矩陣的一個(gè)重要屬性,它與特征向量一起描述了矩陣的內(nèi)在結(jié)構(gòu)。在PCA中,協(xié)方差矩陣或相關(guān)矩陣的特征值表示了數(shù)據(jù)在不同方向上的方差大小。2.2.2特征向量特征向量是與特征值相對(duì)應(yīng)的向量,它指出了數(shù)據(jù)的主方向。在PCA中,特征向量決定了新的坐標(biāo)軸的方向,而特征值的大小則決定了這些坐標(biāo)軸的重要性。2.2.3示例代碼我們將使用上面的協(xié)方差矩陣來(lái)計(jì)算特征值和特征向量。#計(jì)算協(xié)方差矩陣的特征值和特征向量
eigenvalues,eigenvectors=np.linalg.eig(cov_matrix)
print("特征值:\n",eigenvalues)
print("特征向量:\n",eigenvectors)2.3概率論與數(shù)理統(tǒng)計(jì)在PCA中的應(yīng)用PCA本質(zhì)上是一種降維技術(shù),它通過(guò)概率論和數(shù)理統(tǒng)計(jì)的方法來(lái)尋找數(shù)據(jù)的主成分。主成分是數(shù)據(jù)在新坐標(biāo)系中的投影,這些坐標(biāo)軸由數(shù)據(jù)的協(xié)方差矩陣或相關(guān)矩陣的特征向量定義。2.3.1數(shù)據(jù)的中心化在PCA中,數(shù)據(jù)通常需要進(jìn)行中心化處理,即從每個(gè)變量中減去其平均值,使得數(shù)據(jù)的平均值為零。這一步驟在概率論中是基于隨機(jī)變量的期望值概念。2.3.2數(shù)據(jù)的標(biāo)準(zhǔn)化數(shù)據(jù)標(biāo)準(zhǔn)化是將數(shù)據(jù)轉(zhuǎn)換為標(biāo)準(zhǔn)正態(tài)分布的過(guò)程,即均值為0,標(biāo)準(zhǔn)差為1。在數(shù)理統(tǒng)計(jì)中,這通常是為了消除量綱的影響,使得不同變量在PCA中具有可比性。2.3.3示例代碼我們將對(duì)數(shù)據(jù)集進(jìn)行中心化和標(biāo)準(zhǔn)化處理。#數(shù)據(jù)中心化
data_centered=data-np.mean(data,axis=0)
#數(shù)據(jù)標(biāo)準(zhǔn)化
data_standardized=(data_centered-np.mean(data_centered,axis=0))/np.std(data_centered,axis=0)
print("標(biāo)準(zhǔn)化后的數(shù)據(jù):\n",data_standardized)2.3.4主成分的選擇在PCA中,主成分的選擇通常基于特征值的大小。較大的特征值對(duì)應(yīng)著數(shù)據(jù)方差較大的方向,因此這些方向的特征向量被選為主成分。通常,我們會(huì)選擇前k個(gè)最大的特征值對(duì)應(yīng)的特征向量,以達(dá)到降維的目的。2.3.5示例代碼假設(shè)我們決定保留前兩個(gè)主成分,我們將使用特征向量來(lái)投影數(shù)據(jù)。#選擇前兩個(gè)主成分
principal_components=eigenvectors[:,:2]
#投影數(shù)據(jù)到主成分
data_projected=np.dot(data_standardized,principal_components)
print("投影后的數(shù)據(jù):\n",data_projected)通過(guò)以上步驟,我們不僅理解了PCA的數(shù)學(xué)基礎(chǔ),還通過(guò)代碼示例實(shí)際操作了數(shù)據(jù)的中心化、標(biāo)準(zhǔn)化、協(xié)方差矩陣和相關(guān)矩陣的計(jì)算,以及特征值和特征向量的提取和應(yīng)用。這為深入學(xué)習(xí)PCA提供了堅(jiān)實(shí)的基礎(chǔ)。3數(shù)據(jù)分析:主成分分析(PCA):概率論與數(shù)理統(tǒng)計(jì)3.1PCA的步驟3.1.1數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理是PCA分析的第一步,主要目的是確保數(shù)據(jù)的均值為零,且具有相同的尺度。這一步驟對(duì)于PCA的后續(xù)計(jì)算至關(guān)重要,因?yàn)镻CA是基于數(shù)據(jù)的協(xié)方差矩陣進(jìn)行的,而協(xié)方差矩陣的計(jì)算會(huì)受到數(shù)據(jù)尺度和均值的影響。示例代碼importnumpyasnp
fromsklearn.preprocessingimportStandardScaler
#假設(shè)我們有以下數(shù)據(jù)
data=np.array([[1,2],[2,3],[3,4],[4,5],[5,6]])
#使用StandardScaler進(jìn)行數(shù)據(jù)標(biāo)準(zhǔn)化
scaler=StandardScaler()
data_scaled=scaler.fit_transform(data)
#打印標(biāo)準(zhǔn)化后的數(shù)據(jù)
print("標(biāo)準(zhǔn)化后的數(shù)據(jù):\n",data_scaled)3.1.2計(jì)算協(xié)方差矩陣協(xié)方差矩陣反映了數(shù)據(jù)中各變量之間的線性關(guān)系。在PCA中,協(xié)方差矩陣是求解特征值和特征向量的基礎(chǔ)。示例代碼#計(jì)算協(xié)方差矩陣
cov_matrix=np.cov(data_scaled,rowvar=False)
#打印協(xié)方差矩陣
print("協(xié)方差矩陣:\n",cov_matrix)3.1.3求解特征值與特征向量特征值和特征向量是PCA的核心。特征值表示了主成分的方向,而特征向量表示了主成分的大小。通過(guò)求解協(xié)方差矩陣的特征值和特征向量,我們可以找到數(shù)據(jù)的主要方向。示例代碼#求解協(xié)方差矩陣的特征值和特征向量
eigenvalues,eigenvectors=np.linalg.eig(cov_matrix)
#打印特征值和特征向量
print("特征值:\n",eigenvalues)
print("特征向量:\n",eigenvectors)3.1.4選擇主成分選擇主成分是基于特征值的大小。特征值越大,表示該方向上的數(shù)據(jù)變化越大,因此該方向上的特征向量就是主成分。通常,我們會(huì)選擇前k個(gè)最大的特征值對(duì)應(yīng)的特征向量作為主成分。示例代碼#假設(shè)我們選擇前2個(gè)主成分
k=2
#選擇前k個(gè)最大的特征值對(duì)應(yīng)的特征向量
principal_components=eigenvectors[:,:k]
#打印主成分
print("主成分:\n",principal_components)3.1.5數(shù)據(jù)投影最后一步是將原始數(shù)據(jù)投影到主成分上,得到降維后的數(shù)據(jù)。這一步驟可以通過(guò)矩陣乘法實(shí)現(xiàn)。示例代碼#將原始數(shù)據(jù)投影到主成分上
data_projected=np.dot(data_scaled,principal_components)
#打印降維后的數(shù)據(jù)
print("降維后的數(shù)據(jù):\n",data_projected)通過(guò)以上步驟,我們完成了PCA分析,得到了降維后的數(shù)據(jù)。PCA不僅可以用于數(shù)據(jù)降維,還可以用于數(shù)據(jù)可視化、數(shù)據(jù)壓縮和特征提取等場(chǎng)景。在實(shí)際應(yīng)用中,我們通常會(huì)使用如sklearn.decomposition.PCA這樣的庫(kù)函數(shù)來(lái)簡(jiǎn)化PCA的計(jì)算過(guò)程。4PCA的實(shí)例分析4.1數(shù)據(jù)集的選取與預(yù)處理在進(jìn)行主成分分析(PCA)之前,選擇合適的數(shù)據(jù)集并對(duì)其進(jìn)行預(yù)處理是至關(guān)重要的步驟。本節(jié)將使用一個(gè)經(jīng)典的鳶尾花數(shù)據(jù)集(Irisdataset)作為示例,該數(shù)據(jù)集包含了150個(gè)樣本,每個(gè)樣本有4個(gè)特征:花萼長(zhǎng)度、花萼寬度、花瓣長(zhǎng)度和花瓣寬度。我們將使用Python的pandas庫(kù)來(lái)加載數(shù)據(jù),并使用scikit-learn庫(kù)進(jìn)行預(yù)處理。importpandasaspd
fromsklearn.preprocessingimportStandardScaler
fromsklearn.decompositionimportPCA
importmatplotlib.pyplotasplt
importnumpyasnp
#加載數(shù)據(jù)
url="/ml/machine-learning-databases/iris/iris.data"
names=['sepal-length','sepal-width','petal-length','petal-width','class']
dataset=pd.read_csv(url,names=names)
#數(shù)據(jù)預(yù)處理
X=dataset.iloc[:,:-1].values
y=dataset.iloc[:,4].values
#標(biāo)準(zhǔn)化數(shù)據(jù)
scaler=StandardScaler()
X=scaler.fit_transform(X)在上述代碼中,我們首先導(dǎo)入了必要的庫(kù),然后使用pandas的read_csv函數(shù)加載了鳶尾花數(shù)據(jù)集。數(shù)據(jù)集的特征被存儲(chǔ)在X中,而類別標(biāo)簽則存儲(chǔ)在y中。接下來(lái),我們使用StandardScaler對(duì)數(shù)據(jù)進(jìn)行了標(biāo)準(zhǔn)化處理,這是因?yàn)镻CA對(duì)數(shù)據(jù)的尺度敏感,標(biāo)準(zhǔn)化可以確保每個(gè)特征在PCA中具有相同的重要性。4.2應(yīng)用PCA進(jìn)行數(shù)據(jù)降維PCA是一種線性變換技術(shù),用于將高維數(shù)據(jù)轉(zhuǎn)換為低維數(shù)據(jù),同時(shí)保留盡可能多的原始數(shù)據(jù)的方差。在本節(jié)中,我們將使用scikit-learn的PCA類來(lái)對(duì)預(yù)處理后的數(shù)據(jù)進(jìn)行降維。#應(yīng)用PCA
pca=PCA(n_components=2)
principalComponents=pca.fit_transform(X)
principalDf=pd.DataFrame(data=principalComponents
,columns=['principalcomponent1','principalcomponent2'])
#合并PCA結(jié)果和類別標(biāo)簽
finalDf=pd.concat([principalDf,dataset[['class']]],axis=1)在上面的代碼中,我們創(chuàng)建了一個(gè)PCA對(duì)象,指定n_components=2,意味著我們希望將數(shù)據(jù)降維到兩個(gè)主成分。然后,我們使用fit_transform方法對(duì)數(shù)據(jù)X進(jìn)行PCA變換,得到降維后的數(shù)據(jù)principalComponents。最后,我們將降維后的數(shù)據(jù)與原始的類別標(biāo)簽合并,以便于后續(xù)的可視化。4.3結(jié)果解釋與可視化PCA降維后的結(jié)果可以通過(guò)可視化來(lái)幫助我們理解數(shù)據(jù)的結(jié)構(gòu)。我們將使用matplotlib庫(kù)來(lái)繪制降維后的數(shù)據(jù)點(diǎn),不同類別的數(shù)據(jù)點(diǎn)將用不同的顏色表示。#可視化PCA結(jié)果
fig=plt.figure(figsize=(8,8))
ax=fig.add_subplot(1,1,1)
ax.set_xlabel('PrincipalComponent1',fontsize=15)
ax.set_ylabel('PrincipalComponent2',fontsize=15)
ax.set_title('2componentPCA',fontsize=20)
#不同類別的數(shù)據(jù)點(diǎn)用不同顏色表示
targets=['Iris-setosa','Iris-versicolor','Iris-virginica']
colors=['r','g','b']
fortarget,colorinzip(targets,colors):
indicesToKeep=finalDf['class']==target
ax.scatter(finalDf.loc[indicesToKeep,'principalcomponent1']
,finalDf.loc[indicesToKeep,'principalcomponent2']
,c=color
,s=50)
ax.legend(targets)
ax.grid()在上述代碼中,我們首先設(shè)置了繪圖的大小、坐標(biāo)軸的標(biāo)簽和標(biāo)題。然后,我們定義了不同的顏色來(lái)表示不同的類別,并使用scatter函數(shù)繪制了降維后的數(shù)據(jù)點(diǎn)。通過(guò)觀察可視化結(jié)果,我們可以看到PCA有效地將不同類別的鳶尾花數(shù)據(jù)點(diǎn)在二維空間中進(jìn)行了分離,這表明PCA成功地從原始的四維數(shù)據(jù)中提取了有意義的低維表示。通過(guò)這個(gè)實(shí)例分析,我們不僅學(xué)習(xí)了如何使用Python和scikit-learn庫(kù)進(jìn)行PCA降維,還了解了如何解釋和可視化PCA的結(jié)果。PCA是一種強(qiáng)大的工具,可以幫助我們理解高維數(shù)據(jù)的結(jié)構(gòu),并在許多機(jī)器學(xué)習(xí)任務(wù)中提高模型的性能。5PCA的局限性與變體5.1PCA的假設(shè)與限制主成分分析(PCA)是一種廣泛應(yīng)用于數(shù)據(jù)降維的技術(shù),它通過(guò)線性變換將原始數(shù)據(jù)投影到一個(gè)新的坐標(biāo)系中,使得數(shù)據(jù)在新坐標(biāo)系下的方差最大化。然而,PCA并非在所有情況下都是最佳選擇,其有效性受到一些假設(shè)和限制的影響。5.1.1假設(shè)線性關(guān)系:PCA假設(shè)數(shù)據(jù)之間的關(guān)系是線性的。如果數(shù)據(jù)存在非線性關(guān)系,PCA可能無(wú)法有效捕捉數(shù)據(jù)的結(jié)構(gòu)。方差最大化:PCA關(guān)注的是數(shù)據(jù)的方差,這意味著它可能忽略數(shù)據(jù)中的其他重要信息,如數(shù)據(jù)的均值或數(shù)據(jù)點(diǎn)之間的距離。正態(tài)分布:PCA通常假設(shè)數(shù)據(jù)服從正態(tài)分布,這在實(shí)際應(yīng)用中并不總是成立。5.1.2限制敏感性:PCA對(duì)數(shù)據(jù)的尺度敏感,需要對(duì)數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化處理。解釋性:雖然PCA可以降低數(shù)據(jù)維度,但主成分的物理意義可能難以解釋,尤其是當(dāng)原始特征之間存在復(fù)雜關(guān)系時(shí)。信息損失:降維過(guò)程中,PCA會(huì)丟失一些信息,盡管這些信息可能在方差上較小,但對(duì)某些應(yīng)用來(lái)說(shuō)可能是關(guān)鍵的。5.2核PCA與稀疏PCA5.2.1核PCA核PCA(KernelPCA)是PCA的一種擴(kuò)展,通過(guò)使用核函數(shù)來(lái)處理非線性數(shù)據(jù)。核函數(shù)將數(shù)據(jù)從原始空間映射到一個(gè)更高維的空間,在這個(gè)空間中,數(shù)據(jù)可能呈現(xiàn)出線性可分的特性,從而使得PCA可以更有效地進(jìn)行降維。示例代碼fromsklearn.decompositionimportKernelPCA
fromsklearn.datasetsimportmake_circles
importnumpyasnp
importmatplotlib.pyplotasplt
#生成非線性可分?jǐn)?shù)據(jù)
X,y=make_circles(n_samples=400,factor=.3,noise=.05)
#使用徑向基函數(shù)(RBF)核進(jìn)行核PCA
kpca=KernelPCA(kernel="rbf",fit_inverse_transform=True,gamma=10)
X_kpca=kpca.fit_transform(X)
X_back=kpca.inverse_transform(X_kpca)
#繪制結(jié)果
plt.figure(figsize=(12,4))
plt.subplot(1,3,1)
plt.scatter(X[:,0],X[:,1],c=y,cmap='viridis')
plt.title('原始數(shù)據(jù)')
plt.subplot(1,3,2)
plt.scatter(X_kpca[:,0],X_kpca[:,1],c=y,cmap='viridis')
plt.title('核PCA降維后的數(shù)據(jù)')
plt.subplot(1,3,3)
plt.scatter(X_back[:,0],X_back[:,1],c=y,cmap='viridis')
plt.title('核PCA降維后反變換的數(shù)據(jù)')
plt.show()5.2.2稀疏PCA稀疏PCA(SparsePCA)旨在找到數(shù)據(jù)的稀疏表示,即在主成分中只包含少量原始特征的線性組合。這有助于提高模型的解釋性,因?yàn)橹鞒煞挚梢员恢苯优c原始特征聯(lián)系起來(lái)。示例代碼fromsklearn.decompositionimportSparsePCA
fromsklearn.datasetsimportload_iris
importnumpyasnp
importmatplotlib.pyplotasplt
#加載Iris數(shù)據(jù)集
data=load_iris()
X=data.data
#使用稀疏PCA進(jìn)行降維
spca=SparsePCA(n_components=2)
X_spca=spca.fit_transform(X)
#繪制結(jié)果
plt.figure(figsize=(8,4))
plt.scatter(X_spca[:,0],X_spca[:,1],c=data.target,cmap='viridis')
plt.title('稀疏PCA降維后的Iris數(shù)據(jù)')
plt.xlabel('第一個(gè)主成分')
plt.ylabel('第二個(gè)主成分')
plt.colorbar()
plt.show()5.3PCA與其他降維技術(shù)的比較PCA雖然是一種強(qiáng)大的降維工具,但在某些情況下,其他降維技術(shù)可能更為適用。例如,t-SNE(t-DistributedStochasticNeighborEmbedding)在保持?jǐn)?shù)據(jù)點(diǎn)之間的局部結(jié)構(gòu)方面表現(xiàn)更佳,而LDA(LinearDiscriminantAnalysis)則更適用于分類問(wèn)題,因?yàn)樗噲D最大化類間方差同時(shí)最小化類內(nèi)方差。5.3.1t-SNE示例fromsklearn.manifoldimportTSNE
fromsklearn.datasetsimportload_digits
importmatplotlib.pyplotasplt
#加載Digits數(shù)據(jù)集
digits=load_digits()
X=digits.data
#使用t-SNE進(jìn)行降維
tsne=TSNE(n_components=2,random_state=0)
X_tsne=tsne.fit_transform(X)
#繪制結(jié)果
plt.figure(figsize=(8,4))
plt.scatter(X_tsne[:,0],X_tsne[:,1],c=digits.target,cmap='viridis')
plt.title('t-SNE降維后的Digits數(shù)據(jù)')
plt.colorbar()
plt.show()5.3.2LDA示例fromsklearn.discriminant_analysisimportLinearDiscriminantAnalysis
fromsklearn.datasetsimportload_wine
importmatplotlib.pyplotasplt
#加載Wine數(shù)據(jù)集
wine=load_wine()
X=wine.data
y=wine.target
#使用LDA進(jìn)行降維
lda=LinearDiscriminantAnalysis(n_components=2)
X_lda=lda.fit_transform(X,y)
#繪制結(jié)果
plt.figure(figsize=(8,4))
plt.scatter(X_lda[:,0],X_lda[:,1],c=y,cmap='viridis')
plt.title('LDA降維后的Wine數(shù)據(jù)')
plt.xlabel('第一個(gè)線性判別')
plt.ylabel('第二個(gè)線性判別')
plt.colorbar()
plt.show()通過(guò)這些示例,我們可以看到不同的降維技術(shù)在處理不同類型的數(shù)據(jù)時(shí)的優(yōu)劣。選擇合適的降維方法對(duì)于后續(xù)的數(shù)據(jù)分析和機(jī)器學(xué)習(xí)任務(wù)至關(guān)重要。6數(shù)據(jù)分析:主成分分析(PCA):概率論與數(shù)理統(tǒng)計(jì)6.1PCA的關(guān)鍵點(diǎn)回顧主成分分析(PCA)是一種廣泛應(yīng)用于數(shù)據(jù)降維和特征提取的統(tǒng)計(jì)方法。其核心思想是通過(guò)線性變換將原始數(shù)據(jù)轉(zhuǎn)換到一個(gè)新的坐標(biāo)系統(tǒng)中,使得數(shù)據(jù)在新坐標(biāo)軸上的投影方差最大。PCA的關(guān)鍵步驟包括:數(shù)據(jù)預(yù)處理:對(duì)數(shù)據(jù)進(jìn)行中心化,即減去每一列(特征)的平均值,確保數(shù)據(jù)均值為零。計(jì)算協(xié)方差矩陣:協(xié)方差矩陣描述了數(shù)據(jù)中各特征之間的關(guān)系。求解協(xié)方差矩陣的特征值和特征向量:特征值表示了主成分的方差大小,特征向量則指示了主成分的方向。選擇主成分:根據(jù)特征值的大小,選擇前k個(gè)最大的特征值對(duì)應(yīng)的特征向量,構(gòu)成新的坐標(biāo)系統(tǒng)。數(shù)據(jù)投影:將原始數(shù)據(jù)投影到新的坐標(biāo)系統(tǒng)中,實(shí)現(xiàn)數(shù)據(jù)降維。6.1.1示例代碼假設(shè)我們有一組二維數(shù)據(jù),我們將使用PCA將其降維到一維。importnumpyasnp
fromsklearn.decompositionimportPCA
importmatplotlib.pyplotasplt
#生成數(shù)據(jù)
np.random.seed(0)
X=np.random.rand(100,2)
#數(shù)據(jù)中心化
X_centered=X-X.mean(axis=0)
#計(jì)算協(xié)方差矩陣
cov_matrix=np.cov(X_centered,rowvar=False)
#求解特征值和特征向量
eigenvalues,eigenvectors=np.linalg.eig(cov_matrix)
#選擇主成分
#由于我們想要降維到一維,選擇最大的特征值對(duì)應(yīng)的特征向量
principal_
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024-2030年有機(jī)初榨橄欖油行業(yè)市場(chǎng)現(xiàn)狀供需分析及重點(diǎn)企業(yè)投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年智能硬件產(chǎn)業(yè)市場(chǎng)發(fā)展分析及前景趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 2024-2030年智能快遞柜行業(yè)并購(gòu)重組機(jī)會(huì)及投融資戰(zhàn)略研究咨詢報(bào)告
- 2024-2030年智慧能源行業(yè)并購(gòu)重組操作與風(fēng)險(xiǎn)策略研究報(bào)告
- 2024-2030年無(wú)創(chuàng)血壓計(jì)行業(yè)市場(chǎng)現(xiàn)狀供需分析及投資評(píng)估規(guī)劃分析研究報(bào)告
- 2024-2030年方便面行業(yè)發(fā)展分析及投資價(jià)值研究咨詢報(bào)告
- 2024-2030年新型材料行業(yè)并購(gòu)重組機(jī)會(huì)及投融資戰(zhàn)略研究咨詢報(bào)告
- 2024-2030年數(shù)控加工中心行業(yè)風(fēng)險(xiǎn)投資分析及運(yùn)作模式與投融資策略研究報(bào)告
- 2024-2030年改性聚丙烯產(chǎn)業(yè)發(fā)展分析及發(fā)展趨勢(shì)與投資前景預(yù)測(cè)報(bào)告
- 2024-2030年指甲油行業(yè)風(fēng)險(xiǎn)投資態(tài)勢(shì)及投融資策略指引報(bào)告
- (正式版)JB∕T 14730-2024 輥底式連續(xù)退火爐熱處理技術(shù)要求
- 青島版六年級(jí)數(shù)學(xué)上冊(cè)第四單元《人體的奧秘-比》(大單元教學(xué)設(shè)計(jì))
- 供應(yīng)鏈整合與資源優(yōu)化策略三篇
- 2024年廣東省廣州市南沙區(qū)中考一模歷史試題
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)說(shuō)課課件
- Web前端開發(fā)案例教程(HTML5+CSS3)(微課版)教學(xué)教案
- 2023年4月自考00654新聞采訪寫作試題及答案含解析
- 《硬措施》解析培訓(xùn)課件-2024年
- Unit5IntothewildUnderstandingideas教案高中英語(yǔ)
- (高清版)TDT 1037-2013 土地整治重大項(xiàng)目可行性研究報(bào)告編制規(guī)程
- 2023年中國(guó)移動(dòng)江蘇公司校園招聘考試真題及答案
評(píng)論
0/150
提交評(píng)論