機器學習:降維技術完整指南

第1章:降維簡介:

什麼是降維?

在統計學、機器學習和信息論中,降維是將n維降為k維的過程,其中k

機器學習:降維技術完整指南

數據降維


數據可視化:

一維數據:

在這裡,我們經常把維度稱為特徵。例如,我們用一個一維數組開始繪製數軸上的值。

機器學習:降維技術完整指南

二維數據:

現在,我們有一個二維數組,並開始在彼此正交的X和Y軸上繪製數據。

機器學習:降維技術完整指南

三維數據:

現在,我們將使用3D數組,並在X,Y和Z軸上進行繪製。

機器學習:降維技術完整指南

我們可以看到,隨著維度的增加,對我們而言,數據的可視化變得越來越困難。

n維數據:

對於N- d數據,我們需要N個維度,無法再對其進行可視化。因此,為了可視化3D以上的任何數據,我們將使用降維技術將其降為2維或3維。

降維的本質:

在高維數據的微觀層次上分析每一個維度是不可能的。我們可能需要幾天或幾個月的時間來進行有意義的分析,這些分析需要大量的時間、金錢和人力。訓練一個高維的數據會給我們帶來如下問題:

  • 存儲數據所需的空間隨著維度的增加而增加。
  • 維度越小,訓練機器學習模型所需的時間就越少。
  • 隨著維度的增加,過度擬合機器學習模型的可能性也會增加。
  • 我們無法可視化高維數據。通過降維,我們會將數據縮減為2D或3D,以實現更好的可視化。
  • 它將刪除我們數據中的所有相關特徵。

降維的組成部分:

降維有兩個主要的組成部分,我們將在這裡詳細討論

1)特徵選擇:

大多數情況下,這些特徵與我們的問題無關。例如,我們正在訓練一個預測人身高的機器學習模型,我們擁有特徵(體重,膚色,痣,婚姻狀況,性別)的數據。我們可以看到膚色、痣和婚姻狀況等特徵與人的身高沒有關係。因此,我們需要找到一種解決方案,以找到對我們的任務最有用的特徵。我們可以通過以下方式實現:

  • 業務理解、領域知識和專家解決方案可以幫助我們選擇影響響應變量(目標)的預測變量(特徵)。但是,如果我們找不到有用的預測變量,或者我們錯過了有用的特徵,它們就有可能丟失信息。
  • 我們建立了一個經典的機器學習模型,並根據與目標變量的相關性來選擇特徵。與擬合度低的特徵相比,擬合度高的特徵更容易被選擇。
  • 減少特徵也可以幫助我們解決此問題。
  • 另一種方法是刪除所有相關的特徵。例如,如果我們有與其他特徵(f1=2f2+3f3)的線性組合的特徵,那麼它們將不會向我們的數據添加任何額外的信息。因此,這些特徵對我們的機器學習模型訓練不再有用。

特徵選擇涉及到尋找原始數據的子集,使它們的信息損失最小。它有以下三種策略:

  1. Filter策略:獲取更多數據信息的策略。
  2. Wrapper策略:根據模型的準確度選擇特徵
  3. Embedded策略:根據模型預測誤差,我們將決定是否保留或刪除所選擇的特徵。

2)特徵投影:

特徵投影又稱特徵提取,是將高維空間中的數據轉換為低維空間中的數據。數據轉換可以是線性的,也可以是非線性的。

對於線性變換,我們應用主成分分析(PCA)和線性判別分析(LDA);對於非線性變換,我們應用T-SNE。

第2章:主成分分析

1、PCA介紹

PCA主要用作探索性數據分析(EDA)中的工具和用於建立預測模型的工具。它通常用於可視化群體之間的遺傳距離和相關性。PCA可以通過數據協方差(或相關)矩陣的特徵值分解或數據矩陣的奇異值分解來完成。

2、PCA的工作方法:

為了更好地理解PCA的原理,讓我們使用2D數據。

機器學習:降維技術完整指南

  1. 首先我們對數據進行歸一化處理,使平均值移動到原點,所有數據都在一個單位正方形中。
  2. 現在我們將試著用一條線來擬合數據。為此,我們將嘗試用一條隨機的線。現在我們將旋轉這條直線,直到它最適合數據為止。

最終,我們得到了下面的擬合(高度擬合),它解釋了特徵的最大方差。

機器學習:降維技術完整指南

最佳擬合線


PCA如何找到最佳擬合線的呢?

讓我們從一個點開始。

機器學習:降維技術完整指南

為了確定直線與數據的匹配程度,PCA將數據投射到它上。

機器學習:降維技術完整指南

i)可以測量從數據到直線的距離,並試圖找到一條最小化這些距離的直線。

ii)或者可以試著找到一條直線,使投影點到原點的距離最大化。

數學直覺:

為了理解這種技術背後的數學原理,讓我們回到我們的單數據點概念。

機器學習:降維技術完整指南

將數據投影到線上之後,我們將得到一個直角三角形。根據畢達哥拉斯定理,我們得到A²=B²+C²。

我們可以看到B和C彼此成反比。這意味著如果B變大,則c必須變小,反之亦然。

因此PCA既可以最小化到直線的距離,也可以最大化從投影點到原點的距離。

從投影點到原點的最大距離更容易計算。因此,PCA會找到最佳擬合線,以使從投影點到原點的距離平方的總和最大。

機器學習:降維技術完整指南

距離平方和的最大值


機器學習:降維技術完整指南

pca的成本函數

注意:這裡我們採用距離的平方,以便負值不會抵消正值。

現在我們得到了最佳擬合線y = mx + c。這稱為PC1(主成分1)。假設比例為4:1,這意味著我們在X軸上移動4個單位,在Y軸上移動1個單位,這說明數據大部分分佈在X軸上。

機器學習:降維技術完整指南

根據畢達哥拉斯定理,a²=b²+c²=>a²=4²+1²=> sqrt(17)=> 4.12,但是數據是按比例縮放的,因此我們將每一邊除以4.12,以獲得單位向量。即

F1 = 4 / 4.12 = 0.97

F2 = 1 / 4.12 = 0.242

我們剛剛計算的單位向量稱為特徵向量或PC1,特徵的比例(0.97:0.242)稱為loading scores。

SS(PC1的距離)= PC1的特徵值。

sqrt(PC1的特徵值)= PC1的奇異值。

現在我們對其他特徵做同樣的事情來得到主成分。為了投影數據,現在我們將旋轉軸,使PC1與x軸平行(水平)。

機器學習:降維技術完整指南

旋轉軸,使PC1變為水平

機器學習:降維技術完整指南

根據主成分投影數據

我們可以使用在PCA中計算的特徵值來計算方差。

機器學習:降維技術完整指南

假設我們得到方差:PC1 = 0.83和PC2 = 0.17

現在,如果要將數據從2D轉換為1D,我們選擇feature1作為最終的1D,因為它覆蓋了83%。

機器學習:降維技術完整指南

這就是主成分分析的工作原理,它根據主成分的方差估計需要消除的特徵,從而進行降維。

3、優點和缺點:

優點 :

  • 它刪除了相關特徵。
  • 提高了模型效率。
  • 減少過度擬合。
  • 改善可視化效果。

缺點:

  • PCA是一種線性算法,對於多項式或其他複雜函數來說效果不佳。我們可以找到一些如何使用核PCA來處理此類數據的方法。
  • 在PCA之後,如果我們不選擇正確的維數來消除,我們可能會丟失很多信息。
  • 由於原始特徵轉換為不像原始特徵那樣可讀的主成分,因此可解釋性較低。
  • 它保留全局形狀而不是局部形狀。

4、通過python代碼段在MNIST數據集上進行PCA:

可以從kaggle 下載data(train.csv)(https://www.kaggle.com/c/digit-recognizer/data)

機器學習:降維技術完整指南

加載mnist數據

機器學習:降維技術完整指南

mnist圖像的維度表示

作為預處理步驟,我們對數據進行標準化處理,以使平均值移至原點,並且所有數據均位於單位正方形中。

機器學習:降維技術完整指南

機器學習:降維技術完整指南

PCA有兩種應用方式,一種是尋找特徵向量,另一種是使用sklearn實現。在大多數情況下,這兩種實現都會得到類似的結果。

方法1:

我們將得到協方差矩陣,該協方差矩陣用於求特徵值和特徵向量。

機器學習:降維技術完整指南

在將數據轉換為二維之後,我們將使用這兩個特徵來實現數據的可視化。

機器學習:降維技術完整指南

利用特徵向量進行主成分分析

方法:2

我們將使用sklearn的PCA實現。

機器學習:降維技術完整指南

PCA的Sklearn實現


機器學習:降維技術完整指南

通過sklearn進行主成分分析

讓我們看看每個特徵解釋的方差百分比。

機器學習:降維技術完整指南

機器學習:降維技術完整指南

由每個特徵解釋的方差百分比

如果我想保留80%的數據信息,那麼我可以將維度減少到110。

第3章:線性判別分析(LDA):

1、簡介:

LDA是器學習和統計、模式識別中預處理步驟中最常用的降維技術。 此算法的目標是將數據集投影到具有類別可分的低維空間,以避免過度擬合併降低機器計算量。

2、LDA的工作方式:

PCA和LDA都是線性約簡技術,但與PCA不同的是,LDA側重於最大化兩個組的可分性。

LDA使用特徵來創建一個新軸,並嘗試將數據投射到一個新軸上,以最大限度地分離兩個類。這就是為什麼LDA是一種監督學習算法,因為它利用目標值來尋找新的軸。

PCA試圖找到方差最大的成分,而LDA則試圖找到新的軸

i)最大化類的可分離性

機器學習:降維技術完整指南

ii)最小化類之間的方差。

機器學習:降維技術完整指南

通過最小化方差,我們可以很好地分離各個組的聚類。 與最大化組的平均值一樣重要。

機器學習:降維技術完整指南

LDA根據最大化下列公式的準則找到新的座標軸

機器學習:降維技術完整指南

LDA的成本函數

2個類以上的LDA:

在這種情況下,如果數據有2個以上的組,LDA會找出整個數據的平均值和各個組之間的中心,它試圖最大化從中心平均值到各個組平均值的距離。為了更好地理解,請看以下3個類的數據。

機器學習:降維技術完整指南

我們可以找到一個能將這三組分開的平面。

機器學習:降維技術完整指南

算法:

  1. 計算數據集中不同類別的d維平均向量。
  2. 計算散點矩陣(類間和類內散點矩陣)。
  3. 計算散點矩陣的特徵向量(e1,e2,…,ed)和相應的特徵值(λ1,λ2,…,λd)。
  4. 通過減少特徵值對特徵向量進行排序,並選擇特徵值最大的k個特徵向量以形成ad×k維矩陣W(其中每列代表一個特徵向量)。
  5. 使用此d×k特徵向量矩陣將樣本轉換到新的子空間上。Y = X×W(其中X是代表n個樣本的x維矩陣,y是新子空間中變換後的n×k維樣本)。

3、LDA的擴展

當分佈的平均值是共享的(具有高方差的組)時,線性判別分析會失敗,因為LDA不可能找到使兩個類線性分離的新軸。當數據不是線性可分的時候,LDA也會失敗。在這種情況下,我們可以使用非線性判別分析。

  1. QDA:每個類都使用自己的方差估計值(如果有多個輸入變量,則為協方差)。
  2. FDA:使用輸入的非線性組合(例如樣條曲線)。
  3. RDA:將正則化引入方差(實際上是協方差)的估計中,以緩和不同變量對LDA的影響。

4、在IRIS數據集上LDA的Python Sklearn實現

讓我們使用IRIS數據集

機器學習:降維技術完整指南

像PCA一樣,LDA也可以使用sklearn實現。使用LDA,我們已將數據從4維減少到2維。

機器學習:降維技術完整指南

為了瞭解PCA和LDA工作的區別,讓我們看看下面的圖。PCA試圖使方差最大化,而LDA則試圖使三個類別的可分離性最大化。

機器學習:降維技術完整指南

在PCA中,他們的數據有一些重疊,很難找到一條線把兩組分開。LDA可以幫助我們將這三個組分開,因為他們的數據重疊較少。


第4章:T-SNE

1、T-SNE簡介:

T-SNE是Laurens van der Maaten和Geoffrey Hinton(深度學習之父)開發的一種經常用於可視化的機器學習算法。它是一種非線性降維技術,非常適合在二維或三維的低維空間中嵌入高維數據進行可視化。它以二維或三維點對每個高維對象進行建模,使得相似的對象由附近的點建模,而不相似的對象則由遠處的點建模。

T-SNE被廣泛應用於可視化領域,包括計算機安全研究、音樂分析、癌症研究、生物信息學和生物醫學信號處理。它經常被用於可視化高級表示的人工神經網絡學習。

2、工作方式

在進行數學直覺之前,讓我們學習T-SNE涉及的一些術語。

鄰域:點的鄰域定義為幾何上相互接近的點的聚類。

機器學習:降維技術完整指南

嵌入:嵌入是通過創建xi¹將高維空間中的點投影到低維空間中的過程。

機器學習:降維技術完整指南

隨機:

首先,T-SNE以這樣的方式在幾對高維對象上構建概率分佈,即相似的對象被拾取的可能性很高,而相異的點被拾取的可能性非常小。這就是為什麼將T-SNE稱為隨機(概率)的原因。

T-SNE構造了多對高維對象的概率分佈,使得相似的對象被選中的概率很高,而不相似的點被選中的概率極小。這就是為什麼T-SNE被稱為隨機(概率)。

機器學習:降維技術完整指南

T-SNE定義了在低維圖中的點上的相似概率分佈,相對於圖中點的位置,它使兩個分佈之間的Kullback-Leibler散度(KL散度)最小化。請注意,雖然原始算法使用對象之間的歐氏距離作為其相似度度量的基礎,但這應該根據需要進行更改。

T-SNE的成本函數是

機器學習:降維技術完整指南

3、處理擁擠問題:

擁擠是指我們在較小的空間中嘗試項目點的情況,由於空間不足,所有內容都變得混亂。

T分佈:

機器學習:降維技術完整指南

高斯分佈

通過使用高斯分佈,所有低相似度值都落在曲線的尾部區域,我們可以看到尾部的空間很小,不像曲線兩端的T分佈那麼高。最終,低相似度值與不同聚類的其他低相似度值混合在一起。為了克服這個問題,傳統的SNE算法被T-SNE代替,其中T表示T分佈。

機器學習:降維技術完整指南

高斯分佈與T分佈

4、優點和缺點:

優點:

  • 與PCA不同,T-SNE是一種非線性約簡技術,這意味著它可以很好地處理任何多項式或非線性數據。
  • T-SNE能夠保留局部和全局結構,而PCA則嘗試將高維投影到低維,以解釋數據中的大部分方差。因此,它只關心全局結構。
  • T-SNE被廣泛用於可視化任務。

缺點:

  • T-SNE具有二次時間和空間複雜度。
  • 在處理大型機器學習數據集時,不建議使用T-SNE。
  • T-SNE是一種非參數映射方法,這意味著它沒有將給定點映射到低維空間的顯式函數。T-SNE根據該點的鄰域將該點嵌入到低維中。因此,當一個測試數據點出現時,由於之前沒有出現,我們需要再次訓練整個T-SNE算法進行嵌入,由於它的二次時間複雜度,這種方法很少被使用。

Barnes-Hut SNE (BHTSNE)

這項技術是在2014年引入的,與T-SNE非常相似,但是有一些細微的變化。該算法利用了天文學家常用的Barnes-Hut算法進行N body模擬來近似對應點間的力。

與標準T-SNE(O(N log N))相比,這些算法帶來了實質性的計算優勢,遠優於二次時間複雜度。可以使用sklearn manifold.TSNE庫輕鬆地實現,方法是使用method ='barnes-hut'屬性。

5、通過python代碼段在MNIST數據集上進行T-SNE:

我們已經看到了PCA在MNIST上的工作方式。現在,讓我們嘗試使用相同的數據集進行T-SNE。與PCA不同,T-SNE具有兩個參數:Perplexity和n_iter。我們將嘗試使用這些參數的不同值來擬合數據。

機器學習:降維技術完整指南

使用perplexity = 30,n_iter = 1000

機器學習:降維技術完整指南

機器學習:降維技術完整指南

使用perplexity =50,n_iter = 1000

機器學習:降維技術完整指南

機器學習:降維技術完整指南

使用perplexity = 2,n_iter = 1000


我們可以看到perplexity降低後,數據會與所有聚類混合。因此,選擇正確的參數值始終很重要。

使用perplexity = 100,n_iter = 1000

機器學習:降維技術完整指南

機器學習:降維技術完整指南

perplexity= 100在我們的數據上運行良好。但是請注意,我們只在5000個數據點上嘗試了T-SNE,因為它的時間複雜性,這會花費大量時間。

第5章:數據歸一化:

通過數據歸一化,我們可以將數據從無限範圍轉換為範圍的有限集。

降維之前需要數據歸一化:

假設有兩個特徵,其中一個特徵的值範圍是1到10(市場每小時的購買者數量),而另一個特徵的值範圍是50到1000(市場的訪問者數量)。可能每小時的訪客數是>>每小時的買家數。

因為像PCA這樣的技術是基於方差最大化的,如果我們在使用PCA尋找特徵向量之前不進行歸一化,他們會更關注大值維度,特徵向量不會捕捉其他維度中的信息。

因此,特徵歸一化用於擺脫公斤,釐米,毫米,升等刻度。在歸一化後,我們將所有數據繪製在一個單位正方形內。

機器學習:降維技術完整指南

數據歸一化技術:

數據可以通過多種方式進行轉換。一些最常用的技術是:

  1. Linear Scaling或者min-max Scaler:
機器學習:降維技術完整指南

X =數據點

Xmin =最小數據點

Xmax =最大數據點

當我們知道數據的近似上界和下界很少或沒有離群值值時,我們將使用這種技術。當我們知道我們的數據在整個範圍內大致均勻分佈時也使用此技術。縮放後,所有值將位於[0,1]範圍內。

2.Feature Clipping

當數據包含極端異常值時,這些技術將某個值之上或之下的特徵值限制為一個固定值。例如,將高度超過120cm的所有值裁剪為正好120cm。這意味著我們將這些值壓縮到一個固定的範圍。

3.Log Scaling:

機器學習:降維技術完整指南

當數據的分佈遵循冪律或是帕雷託分佈時,即一個值有很多點而其他值很少時,使用它。

4. Z分數或標準化:

機器學習:降維技術完整指南

標準化後,均值將轉換為0,標準差將轉換為1。當離群值很少時(不是極端到需要剪裁),它是很有用的。

最後

處理成千上萬的特徵是任何數據科學家必備的技能。我們每天生成的數據量是空前的,我們需要找到不同的方法來弄清楚如何使用它們。

"


分享到:


相關文章: