來源:數據STUDIO
作者:云朵君
01、降維的意義
- 降低無效、錯誤數據對建模的影響,提高建模的準確性。
- 少量切具有代表性的數據將大幅縮減挖掘所需的時間。
- 降低存儲數據的成本。
02、需要降維的情況
大多數情況下,面臨高維數據,就要降維處理
- 維度數量。降維基本前提是高維。
- 建模輸出是否必須保留原始維度。如果需要最終建模輸出是能夠分析、解釋和應用,則只能通過特征篩選或聚類等方式降維。
- 對模型對計算效率和建模時效性有要求。
- 是否需要保留完整的數據特征。
03、基于特征選擇的降維
根據一定的規則和經驗,直接選取原有維度的一部分參與后續的計算和建模過程,用選擇的維度代替所有維度。優勢是既能滿足后續數據處理和建模要求,又能保留維度原本的業務含義,以便業務理解和應用。
四種思路
經驗法: 根據業務專家或數據專家的以往經驗、實際數據情況、業務理解程度等進行綜合考慮。
測算法: 通過不斷測試多種維度選擇參與計算,通過結果來反復驗證和調整,并最終找到最佳特征方案。
基于統計分析方法: 通過相關分析不同維度間的線性關系,在相關性高的維度中進行人工去除或篩選
- 方差過濾:classs sklearn.feature_selection.VarianceThreshold(threshold=0.0) .fit_transform(X,y)
- 卡方過濾:原假設是相互獨立 SelectKBest(chi2,k).fit_transform(X,y)
- F檢驗:原假設是不存在顯著的線性關系 SelectKBest(f_classif,k).fit_transform(X,y)
- 通過計算不同維度間的互信息,找到具有較高互信息的特征集,然后去除或留下其中一個。SelectKBest(model,k).fit_transform(X,y) 其中 model=multual_info_classif 或 multual_info_regression
機器學習算法: 通過機器學習算法得到不同特征的特征值或權重,選擇權重較大的特征。
-
嵌入法:精確度模型本身,是過濾法的進階版。
sklearn.feature_selection.SelectFromModel(sklearn.ensemble.RandomForestClassifier(),threshold=0.01).fit_transfrom(X,y) -
包裝法:
sklearn.feature_selection.RFE(sklearn.SVM.SVC(),k).fit_transfrom(X,y)
04、基于特征轉換的降維
按照一定的數學變換方法,把給定的一組相關變量(特征)通過數學模型將高維空間數據點映射到低維空間中,然后用映射后到變量的特征來表示原有變量的總體特征。這種方式是一種產生新維度的過程,轉換后的維度并非原有的維度本體,而是其綜合多個維度轉換或映射后的表達式。
PCA(主成分分析)
PCA (Principal Component Analysis) sklearn.decomposition.PCA(n_components=None,whiten=False)
from sklearn.decomposition import PCA
pca=PCA().fit()
pca.components_ # 返回模型各個特征向量 pca.explained_variance_ratio_ # 返回各自成分的方差百分比
圖片來源網絡
按照一定的數學變換方法,把給定的一組相關變量(特征)通過線性變換轉換成另一組不相關的變量,這些新變量按照方差依次遞減的順序排列。方法越大,包含的信息越多。(無監督式學習,從特征的協方差角度,去選擇樣本點投影具有最大方差方向)n維可用。
二維轉一維舉例
所謂主成分:選出比原始變量個數少、能夠解釋數據中大部分的變量的幾個新變量,來替換原始變量進行建模。
PCA是將數據投影到方差最大的幾個相互正交的方向上,以期待保留最多的樣本信息。
PCA算法
1,將原始數據按列組成 行 列矩陣
2,將 的每一行(代表一個屬性字段) 進行標準化處理。
3,求出相關系數矩陣
4,求出 的特征值 及對應的特征向量
5,將特征向量按對應特征值大小從上到下按行排列成矩陣,取前 行組成矩陣
6,,
LDA (Linear Discriminant Analysis)
通過已知類別的“訓練樣本”,來建立判別準則,并通過預測變量來為已知數據進行分類。(有監督式學習,考慮分類標簽信息,投影后選擇分類性能最好的方向) C-1維(分類標簽數-1)
基本思想是將高維數據的模式樣本投影到最佳鑒別矢量空間,已到達抽取分類信息和壓縮特征空間維度的效果。投影后保證模式樣本在新子空間的類空間距離和最小的類距離,集模式在該空間中有最佳可分離性。
使樣本盡可能好分的投影方向,就是要使投影后使得同類樣本盡可能近,不同類樣本盡可能遠。
圖片來源網絡
05、基于特征組合的降維
將輸入特征與目標預測變量做擬合的過程,它將輸入特征經過運算,并得出能對目標變量作出很好解釋(預測性)對復合特征,這些特征不是原有對單一特征,而是經過組合和變換后的新特征。
優點: 提高模型準確率、降低噪聲干擾(魯棒性更強)、增加了對目標變量的解釋性。
方法:
- 基于單一特征離散化后的組合。 現將連續性特征離散化后組合成新的特征。如RFM模型
- 基于單一特征的運算后的組合。 對于單一列基于不同條件下獲得的數據記錄做求和、均值等獲得新特征。
- 基于多個特征的運算后的組合。 將多個單一特征做復合計算(包括加減乘除對數等),(一般基于數值型特征)獲得新特征。
- 基于模型等特征最優組合。 基于輸入特征與目標變量,在特定的優化函數的前提下做模型迭代計算,以到達模型最優的解。如多項式的特征組合、基于GBDT的特征組合。
GBDT
sklearn.ensemble.GradientBoostingClassifier(
).fit(X,y).apply(X)[:,:,0]
apply()返回的是
[n_samples,n_estimators, n_classes]
多項式
sklearn.preprocessing. PolynomialFeatures.fit_transform(X,y ).get_feature_names()
Ok,今天的分享就到這里啦!