數據的降維:
簡單來說就是講特徵數量減少。去掉不需要的特徵。
常用方式:
- 特徵選擇
- 主成分分析
特徵選擇:
主要方法:Filter(過濾式):VarianceThreshold(方差)
Embedded(嵌入式):正則化、決策樹(後期介紹)
Wrapper(包裹式)、
神經網絡(後期介紹)
(一)Filter(過濾式):VarianceThreshold
從方差大小來考慮特徵的數值情況
API:sklearn.feature_selection.VarianceThreshold
語法:
from sklearn.feature_selection import VarianceThreshold
def var():
"""特徵選擇-降維 -刪除低方差的特徵"""
var = VarianceThreshold(threshold=0.0)
data = var.fit_transform([[0, 2, 0, 3],
[0, 1, 4, 3],
[0, 1, 1, 3]])
print(data)
if __name__ == '__main__':
var()
運行結果:
(二)主成分分析:
目的:是數據維數壓縮,儘可能降低原數據的維數(複雜度),損失少量信息。維度會降低,但是數據也會降低。
API:sklearn. decomposition.PCA
語法:
解釋:
n_components = 小數: 一般 0 - 1.要求是 90% - 95%
= 整數:一般不用
代碼:
from sklearn.decomposition import PCA
def pca():
"""主成分分析-特徵降維"""
pca = PCA(n_components=0.9)
data = pca.fit_transform([[2, 8, 4, 5],
[6, 3, 0, 8],
[5, 4, 9, 1]])
print(data)
if __name__ == '__main__':
pca()
結果: