企業(yè)信息系統(tǒng)案例seo網(wǎng)上培訓課程
1.降維的概述
維數(shù)災難(Curse of Dimensionality)
:通常是指在涉及到向量的計算的問題中,隨著維數(shù)的增加,計算量呈指數(shù)倍增長的一種現(xiàn)象。
1.1什么是降維?
1.降維(Dimensionality Reduction)是將訓練數(shù)據(jù)中的樣本(實例)從高維空間轉(zhuǎn)換到低維空間。
2.有很多種算法可以完成對原始數(shù)據(jù)的降維,在這些方法中,降維是通過對原始數(shù)據(jù)的線性變換實現(xiàn)的。
1.2為什么要降維?
1.高維數(shù)據(jù)增加了運算的難度,維度越高,算法的搜索難度。
2.高維使得學習算法的泛化能力變?nèi)?#xff0c;降維能夠增加數(shù)據(jù)的可讀性,利于發(fā)掘數(shù)據(jù)的有意義的結(jié)構(gòu)。
1.3降維的主要作用:
-
減少冗余特征,降低數(shù)據(jù)維度
-
數(shù)據(jù)可視化
降維的優(yōu)點:
- 通過減少特征的維數(shù),數(shù)據(jù)集存儲所需的空間也相應減少,減少了特征維數(shù)所需的計算訓練時間;
- 數(shù)據(jù)集特征的降維有助于快速可視化數(shù)據(jù);
- 通過處理多重共線性消除冗余特征。
降維的缺點:
- 由于降維可能會丟失一些數(shù)據(jù);
- 在主成分分析(PCA)降維技術(shù)中,有時需要考慮多少主成分是難以確定的,往往使用經(jīng)驗法則
2.奇異值分解
奇異值分解(Singular Value Decomposition,以下簡稱SVD)是在機器學習領域廣泛應用的算法,它不光可以用于降維算法中的特征分解,還可以用于推薦系統(tǒng),以及自然語言處理等領域。是很多機器學習算法的基石。
sVD可以將一個矩陣A分解為三個矩陣的乘積:
一個正交矩陣U(orthogonal matrix),
一個對角矩陣(diagonal matrix) Σ \Sigma Σ
一個正交矩陣V的轉(zhuǎn)置
分解的作用:線性變換 = 旋轉(zhuǎn) + 拉伸 +旋轉(zhuǎn)
SVD分解可以將一個矩陣進行分解,對角矩陣對角線上的特征值遞減存放,而且奇異值的減少特別的快,在很多情況下,前10%甚至1%的奇異值的和就占了全部的奇異值之和的99%以上的比例。
也就是說,對于奇異值,它跟我們特征分解中的特征值類似,我們也可以用最大的k 個的奇異值和對應的左右奇異向量來近似描述矩陣。
3.主成分分析
主成分分析( Principal Component Analysis,PCA )是一種降維方法,通過將一個大的特征集轉(zhuǎn)換成一個較小的特征集,這個特征集仍然包含了原始數(shù)據(jù)中的大部分信息,從而降低了原始數(shù)據(jù)的維數(shù)。
減少一個數(shù)據(jù)集的特征數(shù)量自然是以犧牲準確性為代價的,但降維的訣竅是用一點準確性換取簡單性。因為更小的數(shù)據(jù)集更容易探索和可視化,并且對于機器學習算法來說,分析數(shù)據(jù)會更快、更容易,而不需要處理額外的特征。
PCA識別在訓練集中占最大方差量的軸。
PCA的算法兩種實現(xiàn)方法:
(1)基于SVD分解協(xié)方差矩陣實現(xiàn)PCA算法
PCA 減少n維到lk維·
設有m條n維數(shù)據(jù)將原始數(shù)據(jù)按列組成n行m列矩陣X
第一步是均值歸一化。我們需要計算出所有特征的均值和標準差,然后做Z值化。
第二步是計算協(xié)方差矩陣( covariance matrix )) Σ \Sigma Σ,其特征向量就是我們要求解的主成分。
(2)基于特征值分解協(xié)方差矩陣實現(xiàn)PCA算法
PCA減少n維到k 維:
設有m條n維數(shù)據(jù),將原始數(shù)據(jù)按列組成n 行m列矩陣X
第一步是均值歸一化。我們需要計算出所有特征的均值和標準差,然后做z值化。
第二步是計算協(xié)方差矩陣(covariance matrix)2,其特征向量就是我們要求解的主成分。特征值分解矩陣
對于矩陣A,有一組特征向量v,將這組向量進行正交化單位化,就能得到一組交單位向量。特征值分解,就是將矩陣A 分解為如下式:
A = P Σ P ? 1 {\rm{A = P}}\Sigma {P^{^{ - 1}}} A=PΣP?1
其中,Р是矩陣A的特征向量組成的矩陣,習則是一個對角陣,對角線上的元素就是特征值。
PCA的缺點:
PCA追求的是在降維之后能夠最大化保持數(shù)據(jù)的內(nèi)在信息,并通過衡量在投影方向上的數(shù)據(jù)方差的大小來衡量該方向的重要性。但是這樣投影以后對數(shù)據(jù)的區(qū)分作用并不大,反而可能使得數(shù)據(jù)點揉雜在一起無法區(qū)分。
這也是PCA存在的最大一個問題,這導致使用PCA在很多情況下的分類效果并不好。
4.t-分布領域嵌入算法t-SNE(t-distributedstochastic neighbor embedding)
步驟:
- 數(shù)據(jù)跟PCA一樣在處理之前先做歸一化
- 在低維空間中計算數(shù)據(jù)所有點與某個點的相似度
- 將其在映射在t分布函數(shù)的橫軸上
- 計算高維度與低緯度的相似度矩陣的差異,設計loss function,然后用梯度下降來優(yōu)化它