1. 程式人生 > >淺析機器學習中的降維方法

淺析機器學習中的降維方法

在我們用機器學習去訓練資料集的時候,可能會遇到上千甚至上萬個特徵,隨著資料量的增大,所分析出結果的準確度雖然會提高很多,但同時處理起來也會變得十分棘手,此時我們不得不想出一種方法去減少特徵將高維的資料轉化為低維的資料(降維)。

什麼是降維?

簡單的說降維就是把一個n維的資料轉化為一個k維的資料(k<<n)

為什麼要降維?

隨著資料維度不斷降低,資料儲存所需的空間也會隨之減少。

低維資料有助於減少計算/訓練用時。

一些演算法在高維度資料上喜歡錶現不佳,降維可提高演算法可用性。

降維可以用刪除冗餘特徵解決多重共線性問題。

降維有助於資料視覺化。如果資料維度很高,視覺化會變得相當困難,而繪製二維三維資料的圖表就哼簡單。

常見的降維學習方法

缺失值比率

低方差濾波

高相關濾波

隨機森林

前項特徵選擇

反向特徵消除

因子分析

PCA(主成分分析)

ICA(獨立分量分析)

IOSMAP

t-SNE

UMAP

降維技術詳解

1.缺失值比率(Missing Value Ratio)

在瀏覽資料的時候,如果我們發現其中包含不少缺失值,如果缺失值少,我們可以填補缺失值或者直接刪除這個變數;當缺失值在資料集中的佔比過高時,一般我會選擇直接刪除這個變數,因為它包含的資訊太少了。具體刪不刪,怎麼刪需要視情況而定,我們可以設定一個閾值,如果缺失值佔比高於閾值,刪除它所在的列。閾值越高。降維方法越積極。

2.低方差濾波(Low Variance Filter)

如果一個數據集中,某一列的數值基本一致,也就是它的方差非常低,我們通常認為,低方差變數攜帶的資訊也很少,所以可以把它直接刪除,放到實踐中,就是計算所有變數方差大小,然後刪去其中最小的幾個。

注意:方差與資料範圍相關的,因此在採用該方法前需要對資料做歸一化處理。

3.高相關濾波(High Correlation filter)

如果兩個變數之間是高度相關的,這意味著他們具有相似的趨勢並且可能攜帶類似的資訊,同理,這類變數的存在會降低某些模型的效能(例如線性和邏輯迴歸模型)。為了解決此類問題,我們可以計算獨立變數之間的相關性。如果相關係數超過某個閾值,就刪除其中的一個變數。

4.隨機森林(Random Forest)

RF是一種基於Bagging的整合學習方法,可以用來分來,在降維中我們可以用它進行特徵選擇

隨機森林是一種廣泛使用的特徵選擇演算法,它會自動計算各個特徵的重要性,所以無需單獨程式設計。這有助於我們選擇較小的特徵子集。

隨機森林的優點:

1、具有極高的準確率

2、隨機性的引入,使得隨機森林不容易過擬合

3、隨機性的引入,使得隨機森林有很好的抗噪聲能力(能夠更好的處理離群點)

4、能處理很高維度的資料,並且不用做特徵選擇

5、既能處理離散型資料,也能處理連續性資料,資料集無需規範化

6、訓練速度快,可以得到變數重要性排序

7、容易實現並行化

隨機森林的缺點:

1、當隨機森林中的決策樹個數很多時,訓練需要的空間和時間會很大

2、隨機森林的解釋性很差

5.反向特徵消除(Backward Feature Elimination)

主要步驟:

先獲取資料集中的全部N個變數,然後用他們訓練一個模型

計算模型的效能

在刪除每個變數(n次)後計算模型的效能,即我們每次都去掉一個變數,用剩餘的N-1個變數訓練模型

確定對模型影響性最小的變數,把它刪除

重複此過程直到不可以刪除任何的變數

6.前向特徵選擇(Forward Feature Selection)

即為上述過程的一個逆過程

主要步驟:

選擇一個特徵,用每個特徵訓練模型N次,得到N個模型

選擇模型效能最佳的變數作為初始變數

每次新增一個變數繼續訓練,重複上一過程,最後保留效能提升最大的變數

一直新增一直篩選,知道模型能不再有明顯提高

注:前向特徵選擇和反向特徵消除耗時較久,計算成本也都很高,所以只適用於輸入變數較少的資料集。

7.因子分析(Factor Analysis)

因子分析是一個常見的統計方法,它能從多個變數中提取共性因子,並得到最優解。假設我們有兩個變數:收入和教育。他們可能是高度相關的,因為從總體看來,學歷很高的人一般收入也很高,所以他們之間可能存在一個潛在的共性因子,比如‘能力’。

在因子分析中,我們將變數按其相關性分組,即特定組內所有變數的相關性較高,組間變數的相關性較低。我們把每個組稱為一個因子,它是多個變數的組合。和原始資料集的變數相比,這些因子在數量上更少,但攜帶的資訊基本一致。

8.主成分分析(PCA)

PCA是一種很常用的降維方法,他可以通過對高維資料進行降維減少預測變數的個數,同時經過降維除去噪聲,其中最直接的應用就是壓縮資料,主要應用於:訊號處理中的降噪,資料降維後視覺化等。

資料特點:

1.維度災難,簡單來說就是變數的個數多,如果變數的個數增加,隨之需要估計的引數的個數也在增加,在訓練集保持不變得情況下待估引數的方差也會隨機增加,導致引數估計的質量下降。

2.變數關係不一般,是指變數彼此之間常常存在一定程度的,有時甚至是相當高的相關性,這說明資料是有冗餘的,或者說觀測資料中的資訊是有重疊的,這是我們利用PCA的前提條件。

在變數個數多,相互的相關性比較大的時候,我們會去尋找變數中的‘精華’,尋找個數相對較少的綜合變數。

引用一個別人的例子:比如拿到一個汽車的樣本,裡面既有以“千米/每小時”度量的最大速度特徵,也有“英里/小時”的最大速度特徵,顯然這兩個特徵有一個多餘。

關於PCA的一些要點:

主成分是原始變數的線性組合

第一個主成分具有最大的方差值

第二主成分試圖解釋資料集中的剩餘方差,並且與第一主成分不相關(正交)

第三主成分試圖解釋前兩個主成分沒有解釋的方差

9.獨立分量分析(ICA)

獨立分量分析基於資訊理論,是最廣泛的降維技術之一。PCA和ICA的主要卻別在於,PCA尋找不相關因素,而ICA尋找獨立因素。

如果兩個變數不相關,他們之間就沒有線性關係。如果他們是獨立的,他們就不依賴於其他變數。

其餘的降維方法還有:IOSMAP,t-SNE,UMAP等,由於可查的資料較少這裡不一一介紹。

比較:

缺失值比率:如果資料集的缺失值太多,我們可以用這種方法減少變數數。

低方差濾波:該方法可以從資料集中識別和刪除常量變數,方差小的變數對目標變數影響不大,所以可以放心刪去。

高相關濾波:具有高相關性的一對變數會增加資料集中的多重共線性,所以用這種方法刪去其中一個是有必要的。

隨機森林:最常用的降維方法之一,他會明確算出資料集中每個特徵的重要性。

前向特徵選擇和反向特徵消除:這兩種方法耗時很久,計算成本很高,所以只適用於變數較少的資料集。

因子分析:適用於資料集中存在高度相關的變數集的情況。

PCA:處理線性資料集最廣泛使用的技術之一。

ICA:可以用ICA將資料轉換為獨立的分量,使用更少的分量來描述資料。

參考文章:www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/