用scikit-learn做數(shù)據(jù)降維

主成分分析 PCA: principal component analysis

主成分分析是一種簡化數(shù)據(jù)集維數(shù)的技術(shù)温自。特點是保存數(shù)據(jù)集中對方差影響最大的那些特征。

在信息理論中廊谓,信號會有較大的方差综看,噪聲會有較小的方差畸冲。用我們自己的想法,在多維數(shù)據(jù)中選出最有代表性的一維一定是差別較大的一維倘零。

具體的計算方法可以參考這篇文章:主成分分析(Principal components analysis)-最大方差解釋

在 scikit-learn 這個工具下戳寸,進(jìn)行主成分分析用的是 PCA 類呈驶。Python代碼是:

from sklearn.decomposition import PCA

PCA有許多種方式,參考:sckikit-learn 上的 PCA 頁疫鹊。

隨機(jī)映射 random projection

sklearn.random_projection 模塊實現(xiàn)了一種簡單和計算高效的方法袖瞻,通過交易控制量的精度(作為附加方差),以縮短數(shù)據(jù)的維數(shù)拆吆,從而縮短處理時間和縮小模型大小聋迎。 該模塊實現(xiàn)兩種類型的非結(jié)構(gòu)化隨機(jī)矩陣:高斯隨機(jī)矩陣和稀疏隨機(jī)矩陣。

隨機(jī)映射矩陣的維度和分布是被控制的枣耀,為了保證在數(shù)據(jù)集中任意兩個樣本的距離霉晕。隨機(jī)映射也是一種合適的基于距離的近似精確的方法。

Johnson-Lindenstrauss Lemma 定理保證了降維方法精度的上下限捞奕。johnson_lindenstrauss_min_dim 是找到一個數(shù)量能保證隨機(jī)降維到這個數(shù)量的矩陣牺堰。n_samples 是樣本的數(shù)量,eps 是由 J-L 定理定義的最大失真率颅围。

>>> from sklearn.random_projection import johnson_lindenstrauss_min_dim
>>> johnson_lindenstrauss_min_dim(n_samples=1e6, eps=0.5)
663
>>> johnson_lindenstrauss_min_dim(n_samples=1e6, eps=[0.5, 0.1, 0.01])
array([    663,   11841, 1112658])
>>> johnson_lindenstrauss_min_dim(n_samples=[1e4, 1e5, 1e6], eps=0.1)
array([ 7894,  9868, 11841])
前后任意兩點$a,b$之間的距離有不等式保證
高斯隨機(jī)映射 Gaussian random projection

sklearn.random_projection.GaussianRandomProjection 通過將原始輸入空間投影在隨機(jī)生成的矩陣上來降低維度伟葫。代碼如下:

>>> import numpy as np
>>> from sklearn import random_projection
>>> X = np.random.rand(100, 10000)
>>> transformer = random_projection.GaussianRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(100, 3947)
稀疏隨機(jī)映射 Sparse random projection

相比于高斯隨機(jī)映射,稀疏隨機(jī)映射會更能保證降維的質(zhì)量谷浅,并帶來內(nèi)存的使用效率和運算效率扒俯。

使用方法如下:

>>> import numpy as np
>>> from sklearn import random_projection
>>> X = np.random.rand(100,10000)
>>> transformer = random_projection.SparseRandomProjection()
>>> X_new = transformer.fit_transform(X)
>>> X_new.shape
(100, 3947)
特征聚集 Feature agglomeration

把那些效果或行為相似的特征起來,達(dá)到降維的目的一疯。
利用的是下面的類:

sklearn.cluster.FeatureAgglomeration

由于例子過于復(fù)雜,把本方法的使用說明使用說明貼上夺姑。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末墩邀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子盏浙,更是在濱河造成了極大的恐慌眉睹,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件废膘,死亡現(xiàn)場離奇詭異竹海,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)丐黄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門斋配,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事艰争』得椋” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵甩卓,是天一觀的道長鸠匀。 經(jīng)常有香客問我,道長逾柿,這世上最難降的妖魔是什么缀棍? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮机错,結(jié)果婚禮上爬范,老公的妹妹穿的比我還像新娘。我一直安慰自己毡熏,他們只是感情好坦敌,可當(dāng)我...
    茶點故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著痢法,像睡著了一般狱窘。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上财搁,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天蘸炸,我揣著相機(jī)與錄音,去河邊找鬼尖奔。 笑死搭儒,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的提茁。 我是一名探鬼主播淹禾,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼茴扁!你這毒婦竟也來了铃岔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤峭火,失蹤者是張志新(化名)和其女友劉穎毁习,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卖丸,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡纺且,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了稍浆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片载碌。...
    茶點故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡猜嘱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恐仑,到底是詐尸還是另有隱情泉坐,我是刑警寧澤,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布裳仆,位于F島的核電站腕让,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏歧斟。R本人自食惡果不足惜纯丸,卻給世界環(huán)境...
    茶點故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望静袖。 院中可真熱鬧觉鼻,春花似錦、人聲如沸队橙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捐康。三九已至仇矾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間解总,已是汗流浹背贮匕。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留花枫,地道東北人刻盐。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像劳翰,于是被迫代替她去往敵國和親敦锌。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容