熱線電話:13121318867

登錄
首頁精彩閱讀數據預處理--數據降維
數據預處理--數據降維
2018-03-01
收藏

數據預處理--數據降維


數據規約產生更小但保持數據完整性的新數據集。在規約后的數據集上進行數據分析和挖掘將更有效率。

機器學習領域中所謂的降維就是指采用某種映射方法,將原高維空間中的數據點映射到低維度的空間中。降維的本質是學習一個映射函數 f : x->y,其中x是原始數據點的表達,目前最多使用向量表達形式。 y是數據點映射后的低維向量表達,通常y的維度小于x的維度(當然提高維度也是可以的)。f可能是顯式的或隱式的、線性的或非線性的。

目前大部分降維算法處理向量表達的數據,也有一些降維算法處理高階張量表達的數據。之所以使用降維后的數據表示是因為在原始的高維空間中,包含有冗余信息以及噪音信息,在實際應用例如圖像識別中造成了誤差,降低了準確率;而通過降維,我們希望減少冗余信息所造成的誤差,提高識別(或其他應用)的精度。又或者希望通過降維算法來尋找數據內部的本質結構特征。

在很多算法中,降維算法成為了數據預處理的一部分,如PCA。事實上,有一些算法如果沒有降維預處理,其實是很難得到很好的效果的。1

主要是介紹了PCA,還有其他降維算法:LDA(Linear Discriminant Analysis)2,LLE (Locally Linear Embedding) 局部線性嵌入3,拉普拉斯特征映射4。

主成分分析–PCA

主成分分析也稱為卡爾胡寧-勒夫變換(Karhunen-Loeve Transform),是一種用于探索高維數據結構的技術。PCA通常用于高維數據集的探索與可視化。還可以用于數據壓縮,數據預處理等。PCA可以把可能具有相關性的高維變量合成線性無關的低維變量,稱為主成分( principal components)。新的低維數據集會經可能的保留原始數據的變量。

PCA將數據投射到一個低維子空間實現降維。例如,二維數據集降維就是把點投射成一條線,數據集的每個樣本都可以用一個值表示,不需要兩個值。三維數據集可以降成二維,就是把變量映射成一個平面。一般情況下,n 維數據集可以通過映射降成k 維子空間。5

在Python中,主成分的函數位于Scikit-Learn下:
sklearn.decomposition.PCA(n_components=None, copy=True, whiten=False)

參數說明:

n_components

意義:PCA算法中所要保留的主成分個數n,也即保留下來的特征個數。也可以是設置解釋變量的比例。6如:pca =PCA(n_components=.98)

類型:int或者string,缺省時默認為None,所有成分保留。賦值為int,比如n_components=1,將把原始數據降到一個維度。賦值為string,比如n_components=’mle’,將自動選取特征個數n,使得滿足所要求的方差百分比。

copy

類型:bool,True或者False,缺省時默認為True

意義:表示是否在運行算法時,將原始數據復制一份。如果為True,則運行PCA算法后,原始數據的值不會有任何改變。因為是在原始數據的副本上進行運算的。

whiten

類型:bool,缺省時默認為False

意義:白化,是的每個特征具有相同的方差。

栗子

from sklearn.decomposition import PCA
import numpy as np
import pandas as pd

data=np.random.randn(10,4)

pca=PCA()
pca.fit(data)
pca.components_  #返回模型的各個特征向量
pca.explained_variance_ratio_  #返回各個成分各自的方差百分比(貢獻率)

通過計算累計貢獻率,可以確定找到一個合適的n值,比如累計達到97%時,是前3的值,那么下一步去降維時,確定n_components=3。那么,這3維數據占了原始數據95%以上的信息。7

下面,再重新建立PCA模型。

pca=PCA(3)
pca.fit(data)
low_d=pca.transform(data)  #用這個方法來降低維度
pd.DataFrame(low_d).to_excel('result.xlsx')  #保存結果
pca.inverse_transform(low_d)  #必要時,可以用這個函數來復原數據。



數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢