機器學習中必知必會的 8 種降維技術,最后一款超硬核!
降維是將高維數據集轉換為可比較的低維空間的過程,真實的數據集通常有很多冗余特征,降維技術可用于去除這些冗余特征或將n維數據集轉換為2維或3維進行可視化。
在本文中,我們將討論8種降維技術,它們可以用于各種用例來降低數據集的維度。
1. 缺失值
真實的數據集通常包含大量缺失記錄,這可能是由于記錄數據時數據損壞或保存失敗造成的。我們可以嘗試各種數據插補技術來填補缺失的記錄,但這僅在特征缺失數量有限時有效。
如果缺失特征值的數量大于指定的閾值,則最好從訓練數據中刪除該特征。我們可以刪除所有缺失特征記錄大于閾值(比如50%)的特征,從而降低數據的維度。
缺失值的可視化:白線表示存在缺失值
上述缺失值解釋圖像是使用themissingno包為titanic數據生成的。特征“Age”和“Cabin”有大量缺失記錄,最終,它們可以從訓練樣本中去除。
2.相關性濾波器
一個或多個特征的相關性較高說明其具有相似的變化趨勢且可能包含相似的信息,它會破壞自變量的統計顯著性,我們可以刪除與其他獨立特征相關的特征,還可以刪除與目標類標簽不相關的特征。
有多種技術可以計算獨立特征之間的相關性,包括 Pearson、Spearman、Kendall、卡方檢驗等。
相關矩陣的熱圖
上述相關矩陣熱圖(針對titanic數據集)是使用df.corr()函數計算的。
3.方差濾波器
只有一個特征類別的分類特征或方差很小的數值特征變量,這些特征不會對我們的模型有一定的提升,可以從訓練樣本中刪除。
函數DataFrame.var()可以計算 Pandas 數據幀的所有特征的方差。DataFrame.value_counts()函數可以計算每個特征的分布。
4.前向/后向特征選擇
前向特征選擇技術是一種選擇最佳特征集的包裝技術。這是一個循序漸進的過程,特征是根據上一步的推斷來選擇的。前向特征選擇技術的步驟是:
1.使用每個特征分別訓練機器學習模型,并測量每個模型的性能。
2.獲取性能最佳的特征并使用其余特征重新訓練單個模型。
3.重復這個過程并一次添加一個特征,產生性能最佳的特征被保留。
4.重復步驟 2 和 3,直到模型的性能沒有明顯的改善。
前向特征選擇
后向特征選擇技術類似于前向特征選擇,但工作方式正好相反,最初選擇所有特征,并在每一步中刪除最冗余的特征。
5.主成分分析
主成分分析 (PCA) 是一種非常古老的降維技術。PCA 通過保留特征的方差將特征向量投影到低維空間,它找到最大方差的方向以獲得最佳特征列表。PCA 可用于將非常高維的數據投影到所需的維度。PCA算法的步驟是:
- 標準化數據集
- 計算標準化數據集的協方差矩陣
- 計算協方差矩陣的特征值和特征向量
- 取特征向量與具有高特征值的特征向量的點積。
6.t-SNE
t-SNE(t-分布式隨機鄰域嵌入)是一種降維技術,主要用于數據可視化。t-SNE將高維的數據集轉換為可以進一步可視化的二維或三維向量。
t-SNE 的性能優于 PCA,因為它保留了數據的局部結構,并通過保留鄰域局部結構將每個數據點從較高維度嵌入到較低維度空間。
更多內容可以查看:https://distill.pub/2016/misread-tsne/
7.UMAP
UMAP(Uniform Manifold Approximation)是一種新的降維技術,它是一種非常有效的可視化和可伸縮降維算法,其工作方式與 t-SNE 類似,但是它保留了更多全局結構、具有優越的運行性能、更好的可擴展性。
更多詳情:https://umap-learn.readthedocs.io/en/latest/basic_usage.html
8.自動編碼器(Auto Encoder )
自動編碼器(Auto Encoder )是一種基于單層感知器的降維方法。它有兩個組成部分:壓縮(編碼器)和擴展(解碼器)。輸入層和輸出層的節點數量相同,而中間層的神經元數量少于輸入層和輸出層。
數據集被傳遞到自動編碼器神經網絡模型,并被編碼到較低維度的隱藏層。然后它嘗試從簡化的編碼中生成盡可能接近其原始輸入的表示。中間層是減少到可比較的較低維度的向量。
總結
在本文中,我們討論了基于特征選擇的降維方法、基于組件的降維技術、基于投影的方法,最后是基于神經網絡的自動編碼器。ISOMAP 是另一種基于投影的降維方法,其工作方式類似于 UMAP 和 t-SNE。SVD 和 ISO 是其他一些基于組件的降維技術。