數據降維

寫在前面

  • 態(tài)度決定高度!讓優(yōu)秀成為一種習慣!
  • 世界上沒有什么事兒是加一次班解決不了的回铛,如果有,就加兩次?寺唷(- - -茂強)

綜述

面對著大數據時代的發(fā)展茵肃,數據成為目前一切科學的基礎,擁有數據袭祟,就代表著擁有商機验残,擁有決定權,每個公司或者科研項目榕酒,想要用實際說話胚膊,就必須有一個良好的數據基礎故俐,所以數據清晰想鹰,數據結構化,標準化药版,數據降維辑舷,數據可視化是目前大數據或者數據科學重中之重。

目前的數據降維技術

我們可以用一張圖來說明一下目前的數據降維技術


目前數據降維技術
  • 主成分分析算法(PCA)
    Principal Component Analysis(PCA)是最常用的線性降維方法槽片,它的目標是通過某種線性投影何缓,將高維的數據映射到低維的空間中表示肢础,并期望在所投影的維度上數據的方差最大,以此使用較少的數據維度碌廓,同時保留住較多的原數據點的特性传轰。
    通俗的理解,如果把所有的點都映射到一起谷婆,那么幾乎所有的信息(如點和點之間的距離關系)都丟失了慨蛙,而如果映射后方差盡可能的大,那么數據點則會分散開來纪挎,以此來保留更多的信息期贫。可以證明异袄,PCA是丟失原始數據信息最少的一種線性降維方式通砍。(實際上就是最接近原始數據凤覆,但是PCA并不試圖去探索數據內在結構)
    設n維向量w為目標子空間的一個坐標軸方向(稱為映射向量)个扰,最大化數據映射后的方差名段,有:


    主成分目標

    其中m是數據實例的個數六荒, xi是數據實例i的向量表達刑峡, x拔是所有數據實例的平均向量照宝。定義W為包含所有映射向量為列向量的矩陣颜懊,經過線性代數變換年堆,可以得到如下優(yōu)化目標函數:


    優(yōu)化目標函數

    其中tr表示矩陣的跡
    A

    A是數據協(xié)方差矩陣斑匪。
    容易得到最優(yōu)的W是由數據協(xié)方差矩陣前k個最大的特征值對應的特征向量作為列向量構成的呐籽。這些特征向量形成一組正交基并且最好地保留了數據中的信息。
    PCA的輸出就是Y = W‘X蚀瘸,由X的原始維度降低到了k維狡蝶。

    PCA追求的是在降維之后能夠最大化保持數據的內在信息,并通過衡量在投影方向上的數據方差的大小來衡量該方向的重要性贮勃。但是這樣投影以后對數據的區(qū)分作用并不大贪惹,反而可能使得數據點揉雜在一起無法區(qū)分。這也是PCA存在的最大一個問題寂嘉,這導致使用PCA在很多情況下的分類效果并不好奏瞬。具體可以看下圖所示,若使用PCA將數據點投影至一維空間上時泉孩,PCA會選擇2軸硼端,這使得原本很容易區(qū)分的兩簇點被揉雜在一起變得無法區(qū)分;而這時若選擇1軸將會得到很好的區(qū)分結果寓搬。


    PCA
  • Linear Discriminant Analysis(LDA)線性判別分析
    Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一種有監(jiān)督的(supervised)線性降維算法珍昨。與PCA保持數據信息不同,LDA是為了使得降維后的數據點盡可能地容易被區(qū)分!
    了解詳情可參考LDA線性判別
  • 基于重建權值 (LLE)
    Locally linear embedding(LLE)是一種非線性降維算法镣典,它能夠使降維后的數據較好地保持原有流形結構兔毙。LLE可以說是流形學習方法最經典的工作之一。很多后續(xù)的流形學習兄春、降維方法都與LLE有密切聯(lián)系澎剥。
    見圖1,使用LLE將三維數據(b)映射到二維(c)之后赶舆,映射后的數據仍能保持原有的數據流形(紅色的點互相接近肴裙,藍色的也互相接近),說明LLE有效地保持了數據原有的流行結構涌乳。
    但是LLE在有些情況下也并不適用蜻懦,如果數據分布在整個封閉的球面上,LLE則不能將它映射到二維空間夕晓,且不能保持原有的數據流形宛乃。那么我們在處理數據中,首先假設數據不是分布在閉合的球面或者橢球面上蒸辆。


    LLE

    LLE算法認為每一個數據點都可以由其近鄰點的線性加權組合構造得到征炼。算法的主要步驟分為三步:(1)尋找每個樣本點的k個近鄰點;(2)由每個樣本點的近鄰點計算出該樣本點的局部重建權值矩陣躬贡;(3)由該樣本點的局部重建權值矩陣和其近鄰點計算出該樣本點的輸出值谆奥。具體的算法流程如圖2所示:


    流程
  • Laplacian Eigenmaps 拉普拉斯特征映射
    繼續(xù)寫一點經典的降維算法,前面介紹了PCA,LDA拂玻,LLE酸些,這里講一講Laplacian Eigenmaps。其實不是說每一個算法都比前面的好檐蚜,而是每一個算法都是從不同角度去看問題魄懂,因此解決問題的思路是不一樣的。這些降維算法的思想都很簡單闯第,卻在有些方面很有效市栗。這些方法事實上是后面一些新的算法的思路來源。
    Laplacian Eigenmaps看問題的角度和LLE有些相似咳短,也是用局部的角度去構建數據之間的關系填帽。詳情可參考:拉普拉斯特征映射
    其他的就不一一介紹了,下面就切入正題咙好,本文將介紹一種新的降維方式

T-SNE降維

TSNE是由SNE衍生出的一種算法篡腌,SNE最早出現在2002年,它改變了MDS和ISOMAP中基于距離不變的思想敷扫,將高維映射到低維的同時哀蘑,盡量保證相互之間的分布概率不變诚卸,SNE將高維和低維中的樣本分布都看作高斯分布葵第,而Tsne將低維中的坐標當做T分布绘迁,這樣做的好處是為了讓距離大的簇之間距離拉大,從而解決了擁擠問題卒密。從SNE到TSNE之間缀台,還有一個對稱SNE,其對SNE有部分改進作用哮奇。
可以參考TSNE

  • 首先介紹一下SNE
    高維數據用X表示膛腐,Xi表示第i個樣本,低維數據用Y表示鼎俘,則高維中的分布概率矩陣P定義如下:


    X

    P(i,j)表示第i個樣本分布在樣本j周圍的概率哲身。delta是依據最大熵原理來決定,entropy=sum(pi*log(pi))贸伐,以每個樣本點作為中心的delta都需要使得最后分布的熵較小勘天,通常以log(k)為上限,k為你所決定的鄰域點的個數捉邢。
    低維中的分布概率矩陣計算如下:


    Y

    這里我們把低維中的分布看作是均衡的脯丝,每個delta都是0.5,由此可以基本判斷最后降維之后生成的分布也是一個相對均勻的分布伏伐。
    隨機給定一個初始化的Y宠进,進行優(yōu)化,使得Y的分布矩陣逼近X的分布矩陣藐翎。我們給定目的函數材蹬,用KL散度來定義兩個不同分布之間的差距:
    KL

    則可以計算梯度為:


    SGD

    每次梯度下降的步長可設定固定或者自適應、隨機等吝镣,也可以加上一個動量的梯度赚导,初始值一般設為1e-4的隨機正態(tài)分布。
    STEP

    這樣通過不斷的迭代赤惊,就可以達到X,Y分布的逼近
  • 對稱SNE
    顧名思義吼旧,就是讓高維和低維中的概率分布矩陣是對稱的,能方便運算未舟,但是對擁擠問題無改進圈暗。
    低維的分布為:


    Y

    高維的分布為:


    X

    同樣采用KL散度作為兩個分布之間的差異標準,只是梯度有一些改變:
    梯度
  • TSNE
    TSNE對高維中的分布采用對稱SNE中的做法裕膀,低維中的分布則采用更一般的T分布员串,也是對稱的,我們可以發(fā)現sum(P)=sum(Q)=1昼扛。
    高維分布:


    X

    低維一版的T分布


    Y

    則梯度為:
    梯度

    TSNE算法流程如下:
    TSNE算法流程
  • 最后不得不說一下LargeVis
    這個是最新的流形學數據降維方式寸齐,主要也是采用了tnse的思想欲诺,LargeVis在t-SNE改進算法的基礎上,參考了近年來較為新穎的優(yōu)化技巧渺鹦,如隨機投影樹扰法、負采樣、邊采樣(實質也是負采樣)等毅厚,直接將訓練的時間復雜度降至線性級塞颁。
    怎么用可以參考LargeVis

數據降維的實現

推薦大家參考一下數據降維
tsne可以參考TSNE

  • 看個tsne的python例子
    import numpy as np
    from sklearn.manifold import TSNE
    X = np.array([[0, 0, 0], [0, 1, 1], [1, 0, 1], [1, 1, 1]])
    model = TSNE(n_components=2, random_state=0)
    np.set_printoptions(suppress=True)
    model.fit_transform(X)
    array([[ 0.00017599, 0.00003993],
    [ 0.00009891, 0.00021913],
    [ 0.00018554, -0.00009357],
    [ 0.00009528, -0.00001407]])
    如果數據量比較大,我們可以采用spark來跑tnse
    可以參考: spark-tsne
    在spark這個項目上有個很好的例子吸耿,就是MINIST
    MINIST可視化

    如果想更深層次的了解sne -> tsne -> largvis可以參考:
    from-sne-to-tsne-to-largevis
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末祠锣,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子咽安,更是在濱河造成了極大的恐慌伴网,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妆棒,死亡現場離奇詭異澡腾,居然都是意外死亡,警方通過查閱死者的電腦和手機募逞,發(fā)現死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門蛋铆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人放接,你說我怎么就攤上這事刺啦。” “怎么了纠脾?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵玛瘸,是天一觀的道長。 經常有香客問我苟蹈,道長糊渊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任慧脱,我火速辦了婚禮渺绒,結果婚禮上,老公的妹妹穿的比我還像新娘菱鸥。我一直安慰自己宗兼,他們只是感情好,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布氮采。 她就那樣靜靜地躺著殷绍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹊漠。 梳的紋絲不亂的頭發(fā)上主到,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天茶行,我揣著相機與錄音,去河邊找鬼登钥。 笑死畔师,一個胖子當著我的面吹牛,可吹牛的內容都是我干的怔鳖。 我是一名探鬼主播茉唉,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼固蛾,長吁一口氣:“原來是場噩夢啊……” “哼结执!你這毒婦竟也來了?” 一聲冷哼從身側響起艾凯,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤献幔,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后趾诗,有當地人在樹林里發(fā)現了一具尸體蜡感,經...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年恃泪,在試婚紗的時候發(fā)現自己被綠了郑兴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡贝乎,死狀恐怖情连,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情览效,我是刑警寧澤却舀,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布锤灿,位于F島的核電站挽拔,受9級特大地震影響,放射性物質發(fā)生泄漏但校。R本人自食惡果不足惜螃诅,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望状囱。 院中可真熱鬧术裸,春花似錦、人聲如沸浪箭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奶栖。三九已至匹表,卻和暖如春门坷,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袍镀。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工默蚌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人苇羡。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓绸吸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親设江。 傳聞我的和親對象是個殘疾皇子锦茁,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內容

  • ?有時我們的數據中包括很多屬性,有些是沒意義的叉存,有些是重復的码俩,有些組合后意義更明顯。此時歼捏,我們需要簡化屬性節(jié)約算力...
    xieyan0811閱讀 3,914評論 0 8
  • 一前言 特征值 奇異值 二奇異值計算 三PCA 1)數據的向量表示及降維問題 2)向量的表示及基變換 3)基向量 ...
    Arya鑫閱讀 10,540評論 2 43
  • 1. 章節(jié)主要內容 本章的主要內容是降維與度量學習稿存,這是機器學習領域很重要的一塊內容。在進入具體的介紹之前瞳秽,對降維...
    閃電隨筆閱讀 6,814評論 0 12
  • 出于對《犀讀:好文筆是讀出來的》的認可瓣履,加入了由作者舒明月創(chuàng)立的寫作群,每天打卡寫作發(fā)布到簡書练俐,成員之間彼此之間相...
    海馬閱讀 286評論 2 2
  • 嘗試寫個小冊子——如何生成知識專題 一袖迎、“你要不要寫一個什么樣的小的知識專題呢? 大家都需要------搭...
    MASTERJIANG閱讀 254評論 0 0