主成分分析PCA
本文關(guān)鍵詞:主成分分析,由筆耕文化傳播整理發(fā)布。
降維的必要性
1.多重共線性--預(yù)測(cè)變量之間相互關(guān)聯(lián)。多重共線性會(huì)導(dǎo)致解空間的不穩(wěn)定,從而可能導(dǎo)致結(jié)果的不連貫。
2.高維空間本身具有稀疏性。一維正態(tài)分布有68%的值落于正負(fù)標(biāo)準(zhǔn)差之間,而在十維空間上只有0.02%。
3.過多的變量會(huì)妨礙查找規(guī)律的建立。
4.僅在變量層面上分析可能會(huì)忽略變量之間的潛在聯(lián)系。例如幾個(gè)預(yù)測(cè)變量可能落入僅反映數(shù)據(jù)某一方面特征的一個(gè)組內(nèi)。
降維的目的:
1.減少預(yù)測(cè)變量的個(gè)數(shù)
2.確保這些變量是相互獨(dú)立的
3.提供一個(gè)框架來解釋結(jié)果
降維的方法有:主成分分析、因子分析、用戶自定義復(fù)合等。
PCA把原先的n個(gè)特征用數(shù)目更少的m個(gè)特征取代,,新特征是舊特征的線性組合,這些線性組合最大化樣本方差,盡量使新的m個(gè)特征互不相關(guān)。從舊特征到新特征的映射捕獲數(shù)據(jù)中的固有變異性。
預(yù)備知識(shí)
樣本X和樣本Y的協(xié)方差(Covariance):
協(xié)方差為正時(shí)說明X和Y是正相關(guān)關(guān)系,協(xié)方差為負(fù)時(shí)X和Y是負(fù)相關(guān)關(guān)系,協(xié)方差為0時(shí)X和Y相互獨(dú)立。
Cov(X,X)就是X的方差(Variance).
當(dāng)樣本是n維數(shù)據(jù)時(shí),它們的協(xié)方差實(shí)際上是協(xié)方差矩陣(對(duì)稱方陣),方陣的邊長(zhǎng)是
若
當(dāng)A是n階可逆矩陣時(shí),A與P-1Ap相似,相似矩陣具有相同的特征值。
特別地,當(dāng)A是對(duì)稱矩陣時(shí),A的奇異值等于A的特征值,存在正交矩陣Q(Q-1=QT),使得:
對(duì)A進(jìn)行奇異值分解就能求出所有特征值和Q矩陣。
由特征值和特征向量的定義知,Q的列向量就是A的特征向量。
Jama包
Jama包是用于基本線性代數(shù)運(yùn)算的java包,提供矩陣的cholesky分解、LUD分解、QR分解、奇異值分解,以及PCA中要用到的特征值分解,此外可以計(jì)算矩陣的乘除法、矩陣的范數(shù)和條件數(shù)、解線性方程組等。
PCA過程
1.特征中心化。即每一維的數(shù)據(jù)都減去該維的均值。這里的“維”指的就是一個(gè)特征(或?qū)傩裕儞Q之后每一維的均值都變成了0。
很多數(shù)據(jù)挖掘的教材上都會(huì)講到鷲尾花的例子,本文就拿它來做計(jì)算。原始數(shù)據(jù)是150×4的矩陣A:
5.1 3.5 1.4 0.2 4.9 3.0 1.4 0.2 4.7 3.2 1.3 0.2 4.6 3.1 1.5 0.2 5.0 3.6 1.4 0.2 5.4 3.9 1.7 0.4 4.6 3.4 1.4 0.3 5.0 3.4 1.5 0.2 4.4 2.9 1.4 0.2 4.9 3.1 1.5 0.1 5.4 3.7 1.5 0.2 4.8 3.4 1.6 0.2 4.8 3.0 1.4 0.1 4.3 3.0 1.1 0.1 5.8 4.0 1.2 0.2 5.7 4.4 1.5 0.4 5.4 3.9 1.3 0.4 5.1 3.5 1.4 0.3 5.7 3.8 1.7 0.3 5.1 3.8 1.5 0.3 5.4 3.4 1.7 0.2 5.1 3.7 1.5 0.4 4.6 3.6 1.0 0.2 5.1 3.3 1.7 0.5 4.8 3.4 1.9 0.2 5.0 3.0 1.6 0.2 5.0 3.4 1.6 0.4 5.2 3.5 1.5 0.2 5.2 3.4 1.4 0.2 4.7 3.2 1.6 0.2 4.8 3.1 1.6 0.2 5.4 3.4 1.5 0.4 5.2 4.1 1.5 0.1 5.5 4.2 1.4 0.2 4.9 3.1 1.5 0.1 5.0 3.2 1.2 0.2 5.5 3.5 1.3 0.2 4.9 3.1 1.5 0.1 4.4 3.0 1.3 0.2 5.1 3.4 1.5 0.2 5.0 3.5 1.3 0.3 4.5 2.3 1.3 0.3 4.4 3.2 1.3 0.2 5.0 3.5 1.6 0.6 5.1 3.8 1.9 0.4 4.8 3.0 1.4 0.3 5.1 3.8 1.6 0.2 4.6 3.2 1.4 0.2 5.3 3.7 1.5 0.2 5.0 3.3 1.4 0.2 7.0 3.2 4.7 1.4 6.4 3.2 4.5 1.5 6.9 3.1 4.9 1.5 5.5 2.3 4.0 1.3 6.5 2.8 4.6 1.5 5.7 2.8 4.5 1.3 6.3 3.3 4.7 1.6 4.9 2.4 3.3 1.0 6.6 2.9 4.6 1.3 5.2 2.7 3.9 1.4 5.0 2.0 3.5 1.0 5.9 3.0 4.2 1.5 6.0 2.2 4.0 1.0 6.1 2.9 4.7 1.4 5.6 2.9 3.6 1.3 6.7 3.1 4.4 1.4 5.6 3.0 4.5 1.5 5.8 2.7 4.1 1.0 6.2 2.2 4.5 1.5 5.6 2.5 3.9 1.1 5.9 3.2 4.8 1.8 6.1 2.8 4.0 1.3 6.3 2.5 4.9 1.5 6.1 2.8 4.7 1.2 6.4 2.9 4.3 1.3 6.6 3.0 4.4 1.4 6.8 2.8 4.8 1.4 6.7 3.0 5.0 1.7 6.0 2.9 4.5 1.5 5.7 2.6 3.5 1.0 5.5 2.4 3.8 1.1 5.5 2.4 3.7 1.0 5.8 2.7 3.9 1.2 6.0 2.7 5.1 1.6 5.4 3.0 4.5 1.5 6.0 3.4 4.5 1.6 6.7 3.1 4.7 1.5 6.3 2.3 4.4 1.3 5.6 3.0 4.1 1.3 5.5 2.5 4.0 1.3 5.5 2.6 4.4 1.2 6.1 3.0 4.6 1.4 5.8 2.6 4.0 1.2 5.0 2.3 3.3 1.0 5.6 2.7 4.2 1.3 5.7 3.0 4.2 1.2 5.7 2.9 4.2 1.3 6.2 2.9 4.3 1.3 5.1 2.5 3.0 1.1 5.7 2.8 4.1 1.3 6.3 3.3 6.0 2.5 5.8 2.7 5.1 1.9 7.1 3.0 5.9 2.1 6.3 2.9 5.6 1.8 6.5 3.0 5.8 2.2 7.6 3.0 6.6 2.1 4.9 2.5 4.5 1.7 7.3 2.9 6.3 1.8 6.7 2.5 5.8 1.8 7.2 3.6 6.1 2.5 6.5 3.2 5.1 2.0 6.4 2.7 5.3 1.9 6.8 3.0 5.5 2.1 5.7 2.5 5.0 2.0 5.8 2.8 5.1 2.4 6.4 3.2 5.3 2.3 6.5 3.0 5.5 1.8 7.7 3.8 6.7 2.2 7.7 2.6 6.9 2.3 6.0 2.2 5.0 1.5 6.9 3.2 5.7 2.3 5.6 2.8 4.9 2.0 7.7 2.8 6.7 2.0 6.3 2.7 4.9 1.8 6.7 3.3 5.7 2.1 7.2 3.2 6.0 1.8 6.2 2.8 4.8 1.8 6.1 3.0 4.9 1.8 6.4 2.8 5.6 2.1 7.2 3.0 5.8 1.6 7.4 2.8 6.1 1.9 7.9 3.8 6.4 2.0 6.4 2.8 5.6 2.2 6.3 2.8 5.1 1.5 6.1 2.6 5.6 1.4 7.7 3.0 6.1 2.3 6.3 3.4 5.6 2.4 6.4 3.1 5.5 1.8 6.0 3.0 4.8 1.8 6.9 3.1 5.4 2.1 6.7 3.1 5.6 2.4 6.9 3.1 5.1 2.3 5.8 2.7 5.1 1.9 6.8 3.2 5.9 2.3 6.7 3.3 5.7 2.5 6.7 3.0 5.2 2.3 6.3 2.5 5.0 1.9 6.5 3.0 5.2 2.0 6.2 3.4 5.4 2.3 5.9 3.0 5.1 1.8
每一列減去該列均值后,得到矩陣B:
-0.743333 0.446 -2.35867 -0.998667 -0.943333 -0.054 -2.35867 -0.998667 -1.14333 0.146 -2.45867 -0.998667 -1.24333 0.046 -2.25867 -0.998667 -0.843333 0.546 -2.35867 -0.998667 -0.443333 0.846 -2.05867 -0.798667 -1.24333 0.346 -2.35867 -0.898667 -0.843333 0.346 -2.25867 -0.998667 -1.44333 -0.154 -2.35867 -0.998667 -0.943333 0.046 -2.25867 -1.09867 -0.443333 0.646 -2.25867 -0.998667 -1.04333 0.346 -2.15867 -0.998667 -1.04333 -0.054 -2.35867 -1.09867 -1.54333 -0.054 -2.65867 -1.09867 -0.0433333 0.946 -2.55867 -0.998667 -0.143333 1.346 -2.25867 -0.798667 -0.443333 0.846 -2.45867 -0.798667 -0.743333 0.446 -2.35867 -0.898667 -0.143333 0.746 -2.05867 -0.898667 -0.743333 0.746 -2.25867 -0.898667 -0.443333 0.346 -2.05867 -0.998667 -0.743333 0.646 -2.25867 -0.798667 -1.24333 0.546 -2.75867 -0.998667 -0.743333 0.246 -2.05867 -0.698667 -1.04333 0.346 -1.85867 -0.998667 -0.843333 -0.054 -2.15867 -0.998667 -0.843333 0.346 -2.15867 -0.798667 -0.643333 0.446 -2.25867 -0.998667 -0.643333 0.346 -2.35867 -0.998667 -1.14333 0.146 -2.15867 -0.998667 -1.04333 0.046 -2.15867 -0.998667 -0.443333 0.346 -2.25867 -0.798667 -0.643333 1.046 -2.25867 -1.09867 -0.343333 1.146 -2.35867 -0.998667 -0.943333 0.046 -2.25867 -1.09867 -0.843333 0.146 -2.55867 -0.998667 -0.343333 0.446 -2.45867 -0.998667 -0.943333 0.046 -2.25867 -1.09867 -1.44333 -0.054 -2.45867 -0.998667 -0.743333 0.346 -2.25867 -0.998667 -0.843333 0.446 -2.45867 -0.898667 -1.34333 -0.754 -2.45867 -0.898667 -1.44333 0.146 -2.45867 -0.998667 -0.843333 0.446 -2.15867 -0.598667 -0.743333 0.746 -1.85867 -0.798667 -1.04333 -0.054 -2.35867 -0.898667 -0.743333 0.746 -2.15867 -0.998667 -1.24333 0.146 -2.35867 -0.998667 -0.543333 0.646 -2.25867 -0.998667 -0.843333 0.246 -2.35867 -0.998667 1.15667 0.146 0.941333 0.201333 0.556667 0.146 0.741333 0.301333 1.05667 0.046 1.14133 0.301333 -0.343333 -0.754 0.241333 0.101333 0.656667 -0.254 0.841333 0.301333 -0.143333 -0.254 0.741333 0.101333 0.456667 0.246 0.941333 0.401333 -0.943333 -0.654 -0.458667 -0.198667 0.756667 -0.154 0.841333 0.101333 -0.643333 -0.354 0.141333 0.201333 -0.843333 -1.054 -0.258667 -0.198667 0.0566667 -0.054 0.441333 0.301333 0.156667 -0.854 0.241333 -0.198667 0.256667 -0.154 0.941333 0.201333 -0.243333 -0.154 -0.158667 0.101333 0.856667 0.046 0.641333 0.201333 -0.243333 -0.054 0.741333 0.301333 -0.0433333 -0.354 0.341333 -0.198667 0.356667 -0.854 0.741333 0.301333 -0.243333 -0.554 0.141333 -0.0986667 0.0566667 0.146 1.04133 0.601333 0.256667 -0.254 0.241333 0.101333 0.456667 -0.554 1.14133 0.301333 0.256667 -0.254 0.941333 0.00133333 0.556667 -0.154 0.541333 0.101333 0.756667 -0.054 0.641333 0.201333 0.956667 -0.254 1.04133 0.201333 0.856667 -0.054 1.24133 0.501333 0.156667 -0.154 0.741333 0.301333 -0.143333 -0.454 -0.258667 -0.198667 -0.343333 -0.654 0.0413333 -0.0986667 -0.343333 -0.654 -0.0586667 -0.198667 -0.0433333 -0.354 0.141333 0.00133333 0.156667 -0.354 1.34133 0.401333 -0.443333 -0.054 0.741333 0.301333 0.156667 0.346 0.741333 0.401333 0.856667 0.046 0.941333 0.301333 0.456667 -0.754 0.641333 0.101333 -0.243333 -0.054 0.341333 0.101333 -0.343333 -0.554 0.241333 0.101333 -0.343333 -0.454 0.641333 0.00133333 0.256667 -0.054 0.841333 0.201333 -0.0433333 -0.454 0.241333 0.00133333 -0.843333 -0.754 -0.458667 -0.198667 -0.243333 -0.354 0.441333 0.101333 -0.143333 -0.054 0.441333 0.00133333 -0.143333 -0.154 0.441333 0.101333 0.356667 -0.154 0.541333 0.101333 -0.743333 -0.554 -0.758667 -0.0986667 -0.143333 -0.254 0.341333 0.101333 0.456667 0.246 2.24133 1.30133 -0.0433333 -0.354 1.34133 0.701333 1.25667 -0.054 2.14133 0.901333 0.456667 -0.154 1.84133 0.601333 0.656667 -0.054 2.04133 1.00133 1.75667 -0.054 2.84133 0.901333 -0.943333 -0.554 0.741333 0.501333 1.45667 -0.154 2.54133 0.601333 0.856667 -0.554 2.04133 0.601333 1.35667 0.546 2.34133 1.30133 0.656667 0.146 1.34133 0.801333 0.556667 -0.354 1.54133 0.701333 0.956667 -0.054 1.74133 0.901333 -0.143333 -0.554 1.24133 0.801333 -0.0433333 -0.254 1.34133 1.20133 0.556667 0.146 1.54133 1.10133 0.656667 -0.054 1.74133 0.601333 1.85667 0.746 2.94133 1.00133 1.85667 -0.454 3.14133 1.10133 0.156667 -0.854 1.24133 0.301333 1.05667 0.146 1.94133 1.10133 -0.243333 -0.254 1.14133 0.801333 1.85667 -0.254 2.94133 0.801333 0.456667 -0.354 1.14133 0.601333 0.856667 0.246 1.94133 0.901333 1.35667 0.146 2.24133 0.601333 0.356667 -0.254 1.04133 0.601333 0.256667 -0.054 1.14133 0.601333 0.556667 -0.254 1.84133 0.901333 1.35667 -0.054 2.04133 0.401333 1.55667 -0.254 2.34133 0.701333 2.05667 0.746 2.64133 0.801333 0.556667 -0.254 1.84133 1.00133 0.456667 -0.254 1.34133 0.301333 0.256667 -0.454 1.84133 0.201333 1.85667 -0.054 2.34133 1.10133 0.456667 0.346 1.84133 1.20133 0.556667 0.046 1.74133 0.601333 0.156667 -0.054 1.04133 0.601333 1.05667 0.046 1.64133 0.901333 0.856667 0.046 1.84133 1.20133 1.05667 0.046 1.34133 1.10133 -0.0433333 -0.354 1.34133 0.701333 0.956667 0.146 2.14133 1.10133 0.856667 0.246 1.94133 1.30133 0.856667 -0.054 1.44133 1.10133 0.456667 -0.554 1.24133 0.701333 0.656667 -0.054 1.44133 0.801333 0.356667 0.346 1.64133 1.10133 0.0566667 -0.054 1.34133 0.601333
2.計(jì)算B的協(xié)方差矩陣C:
0.685694 -0.0392685 1.27368 0.516904 -0.0392685 0.188004 -0.321713 -0.117981 1.27368 -0.321713 3.11318 1.29639 0.516904 -0.117981 1.29639 0.582414
3.計(jì)算協(xié)方差矩陣C的特征值和特征向量。
C=V*S*V-1
S=
4.2248414 0 0 0
0
0.24224437 0 0
0
0 0.078524387 0
0
0 0
0.023681839
V=
0.36158919 0.65654382 -0.58100304 0.3172364
-0.082268924 0.72970845 0.596429220 -0.3240827
0.85657212 -0.17576972 0. 072535217 -0.47971643
0.35884438 -0.074704743 0.54904125 0.75113489
4.選取大的特征值對(duì)應(yīng)的特征向量,得到新的數(shù)據(jù)集。
特征值是由大到小排列的,前兩個(gè)特征值的和已經(jīng)超過了所有特征值之和的97%。我們?nèi)∏皟蓚(gè)特征值對(duì)應(yīng)的特征向量,得到一個(gè)4×2的矩陣M。令A(yù)'150×2=A150×4M4×2,這樣我們就把150×4的數(shù)據(jù)A集映射成了150×2的數(shù)據(jù)集A',特征由4個(gè)減到了2個(gè)。
A'=
2.8271335 5.6413345 2.7959501 5.1451715 2.6215213 5.1773814 2.7649037 5.0036022 2.7827477 5.648651 3.2314432 6.0625092 2.6904502 5.2326213 2.8848587 5.4851323 2.6233824 4.7439288 2.837496 5.2080359 3.0048137 5.9666624 2.898198 5.3362466 2.7239067 5.0869876 2.2861405 4.8114466 2.867797 6.5009233 3.127471 6.6594805 2.8888143 6.132817 2.8630179 5.633864 3.3122624 6.1939719 2.9239945 5.8351996 3.2008088 5.7125959 2.9681058 5.7547583 2.2954831 5.4563413 3.2082122 5.4202505 3.1551697 5.2835156 3.0034234 5.1756719 3.0422848 5.4526144 2.9489496 5.6894119 2.8715193 5.634018 2.8784929 5.1246505 2.9228787 5.117334 3.1012632 5.7328089 2.8637038 6.1347075 2.9141809 6.4147479 2.837496 5.2080359 2.6443408 5.3919215 2.8861119 5.921529 2.837496 5.2080359 2.5294983 4.8344766 2.9210176 5.5507867 2.7412018 5.5857866 2.6591299 4.3818646 2.5130445 4.9804183 3.1058267 5.5106443 3.3025077 5.7574212 2.7956756 5.0720467 2.9737672 5.8250931 2.6710196 5.0941501 2.9686547 5.901008 2.8074283 5.4297384 6.7961349 6.0001695 6.4437514 5.6339266 6.9754017 5.8189198 5.6923082 4.4891254 6.5984751 5.3901207 6.1517776 4.8974035 6.6065644 5.5986187 4.759874 4.3136202 6.5546382 5.5436868 5.5011511 4.5941521 5.0002549 4.0522372 6.0224389 5.2124439 5.7736764 4.7668379 6.4953853 5.1903675 5.3364769 5.0629127 6.4389134 5.7829664 6.1709338 4.9627499 5.7458813 4.9828064 6.4537025 4.7729094 5.5545872 4.7332394 6.6275817 5.2305124 5.8681272 5.2479059 6.8078095 4.9871684 6.4318433 5.1323376 6.2253487 5.465109 6.4109813 5.6443412 6.8423818 5.5594003 7.0687368 5.5821223 6.3237964 5.1523966 5.204006 4.949643 5.440998 4.6121911 5.3194564 4.6372386 5.6463357 5.0030194 6.8900779 4.8935226 6.098616 4.8314411 6.3185463 5.5097803 6.7317694 5.722765 6.3242084 4.9440526 5.7565361 5.0479987 5.6758544 4.6350671 5.9743719 4.6452005 6.4015012 5.2809153 5.7402198 4.9124716 4.8042598 4.3063037 5.866874 4.8115092 5.8424678 5.1035466 5.8865791 5.0231053 6.1530309 5.3338002 4.6028777 4.5631602 5.8091488 4.9677114 8.0430681 5.3028838 6.9254133 4.7398024 8.1278252 5.6566652 7.4821558 5.1336016 7.8610989 5.2728454 8.9082203 5.8618983 6.0307247 4.123374 8.4433454 5.6671066 7.8310134 5.0691818 8.4294749 6.0951088 7.1732758 5.5567668 7.3136813 5.0985747 7.6767196 5.5300099 6.8559354 4.5383128 7.0966086 4.7754209 7.4160846 5.4335471 7.4605895 5.3554582 9.0001057 6.486272 9.3060273 5.5679974 6.8096707 4.5537158 7.939508 5.6915111 6.7094386 4.7091479 9.0106057 5.7715045 6.8990091 5.1106987 7.7871944 5.6481141 8.1255342 5.8730957 6.7689661 5.1355922 6.8020106 5.1983025 7.6341949 5.1038737 7.8989047 5.7772489 8.3523013 5.6874736 8.743683 6.6852526 7.6700793 5.0964032 6.9544433 5.170927 7.2909809 4.8132622 8.587862 6.0004966 7.6563279 5.453633 7.4162037 5.3627746 6.6801944 5.1502251 7.6189944 5.6862121 7.8256443 5.497338 7.4337916 5.7240021 6.9254133 4.7398024 8.0746635 5.5907028 7.9307322 5.6182322 7.4553579 5.5021455 7.0370045 4.9397096 7.2753867 5.3932482 7.4129702 5.430603 6.9010071 5.0318398
每個(gè)樣本正好是二維的,畫在平面坐標(biāo)系中如圖:
鷲尾花數(shù)據(jù)集共分為3類花(前50個(gè)樣本為一類,中間50個(gè)樣本為一類,后50個(gè)樣本為一類),從上圖可以看到把數(shù)據(jù)集映射到2維后分類會(huì)更容易進(jìn)行,直觀上看已經(jīng)是線性可分的了,下面我們用自組織映射網(wǎng)絡(luò)對(duì)其進(jìn)行聚類。
當(dāng)然我們已知了有3類,所以在設(shè)計(jì)SOFM網(wǎng)絡(luò)時(shí),我把競(jìng)爭(zhēng)層節(jié)點(diǎn)數(shù)設(shè)為3,此時(shí)的聚類結(jié)果是前50個(gè)樣本聚為一類,后100個(gè)樣本聚為一類。當(dāng)把競(jìng)爭(zhēng)層節(jié)點(diǎn)數(shù)改為4時(shí),僅第2類中的3個(gè)樣本被誤分到了第3類中,整體精度達(dá)98%!
#include
本文關(guān)鍵詞:主成分分析,由筆耕文化傳播整理發(fā)布。
本文編號(hào):182795
本文鏈接:http://sikaile.net/zhongyixuelunwen/182795.html