本發(fā)明屬于數(shù)據(jù)預(yù)處理技術(shù)領(lǐng)域,具體涉及一種基于幾何結(jié)構(gòu)調(diào)整用于降低數(shù)據(jù)非線性關(guān)系的方法。
背景技術(shù):
真實(shí)數(shù)據(jù)集中點(diǎn)與點(diǎn)之間總是存在著一些未知的非線性函數(shù)關(guān)系。這些非線性函數(shù)關(guān)系使得在數(shù)據(jù)集中很難發(fā)現(xiàn)這些點(diǎn)的共性,以及找到合適的計(jì)算規(guī)律,這是數(shù)據(jù)不容易處理的主要根源之一。真實(shí)數(shù)據(jù)往往又是高維的,而這種高維性引入了更多未知的非線性函數(shù)關(guān)系,從而進(jìn)一步加劇了數(shù)據(jù)處理的復(fù)雜性。
現(xiàn)有的公用數(shù)據(jù)預(yù)處理方法主要是對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)單的淺層的統(tǒng)一性處理,以平衡不同維度對(duì)特征的貢獻(xiàn)差異,所以都不能夠發(fā)現(xiàn)并有效處理數(shù)據(jù)中的非線性關(guān)系。例如數(shù)據(jù)歸一化,常用的方法有:(1)簡(jiǎn)單縮放,對(duì)數(shù)據(jù)集的每一維度的值進(jìn)行調(diào)整,使得最終的數(shù)據(jù)向量落在[0,1]或[-1,1]區(qū)間內(nèi);(2)逐樣本減均值,在每個(gè)樣本上減去數(shù)據(jù)的平均值;(3)特征標(biāo)準(zhǔn)化,使得數(shù)據(jù)的每一個(gè)維度具有零均值和單位方差;這些簡(jiǎn)單的預(yù)處理方法都不涉及數(shù)據(jù)本身的非線性關(guān)系。
更進(jìn)一步的相對(duì)復(fù)雜的數(shù)據(jù)預(yù)處理方法,如PCA(主成分分析)/ZCA(白化)等,主要目的在于對(duì)數(shù)據(jù)屬性的初步過(guò)濾,以突現(xiàn)主要特征;基于重構(gòu)的白化模型和基于正交化ICA(獨(dú)立成分分析)的白化模型等皆是如此。如果白化所取維度比初始維度少,則這些方法可以同時(shí)看作是數(shù)據(jù)降維方法,整個(gè)過(guò)程也沒(méi)有專門考慮到對(duì)數(shù)據(jù)的非線性處理。
為了有效處理非線性數(shù)據(jù)集,目前的做法是采用某種非線性方法來(lái)顯式(或隱式)地獲得數(shù)據(jù)里面的非線性關(guān)系,并通過(guò)某種規(guī)則將數(shù)據(jù)在另外一個(gè)更低維度的(特征)空間表示出來(lái)。這些非線性方法及其變種非常多,常用的有:核主成分分析(KPCA)、等距映射(ISOMAP)、局部線性嵌入(LLE)、最大方差展開(kāi)(MVU)等。但這些方法都面臨一個(gè)共同的問(wèn)題,即新構(gòu)建的特征空間完全脫離了初始的數(shù)據(jù)空間,從而損失了很多有用信息,如初始坐標(biāo)系統(tǒng)中刻度本身所包含的物理意義,數(shù)據(jù)在原空間中所具有的幾何特征/信息等。
另外,這些方法都有較強(qiáng)的適用范圍要求。而目前仍然沒(méi)有好的方法指導(dǎo)如何將這些適用要求與數(shù)據(jù)集進(jìn)行匹配選擇,因?yàn)檫@種要求也可能是隱性的,而且數(shù)據(jù)集本身的適用特征判斷還主要依賴于操作人員的經(jīng)驗(yàn)。所以,這些方法的穩(wěn)定性往往因操作人而異、因數(shù)據(jù)集而異。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)所存在的上述技術(shù)問(wèn)題,本發(fā)明提供了一種基于幾何結(jié)構(gòu)調(diào)整用于降低數(shù)據(jù)非線性關(guān)系的方法,其以已經(jīng)歸一化的數(shù)據(jù)集為輸入檢測(cè)數(shù)據(jù)集中存在的非線性幾何彎曲程度,并根據(jù)檢測(cè)到的幾何彎曲特征,對(duì)該數(shù)據(jù)集作平坦化處理,從而使數(shù)據(jù)的后續(xù)處理更加容易。
一種基于幾何結(jié)構(gòu)調(diào)整用于降低數(shù)據(jù)非線性關(guān)系的方法,其首先采用近鄰圖對(duì)數(shù)據(jù)集的空間幾何形狀進(jìn)行建模;然后以近鄰圖中較長(zhǎng)的一條最短路徑來(lái)定性表征近鄰圖的彎曲結(jié)構(gòu)(記作骨架線);進(jìn)而應(yīng)用余弦定理的思想完成數(shù)據(jù)點(diǎn)向骨架線的映射;最后通過(guò)骨架線沿著一定方向伸展成直線帶動(dòng)整個(gè)數(shù)據(jù)集進(jìn)行展開(kāi),從而降低數(shù)據(jù)的非線性關(guān)系。
所述數(shù)據(jù)集中的任一數(shù)據(jù)點(diǎn)只與其最接近的若干個(gè)數(shù)據(jù)點(diǎn)建立邊的連接,從而在坐標(biāo)空間中構(gòu)成一個(gè)無(wú)向的網(wǎng)狀圖;由于近鄰圖以所有數(shù)據(jù)點(diǎn)構(gòu)成其頂點(diǎn),所以近鄰圖的幾何形狀間接地反映了數(shù)據(jù)集的一種幾何狀態(tài);故本發(fā)明采用KNN(K-Nearest Neighbors,K近鄰)算法構(gòu)建數(shù)據(jù)集對(duì)應(yīng)的近鄰圖。
所述最短路徑的定義為近鄰圖中任一兩頂點(diǎn)之間通過(guò)邊和點(diǎn)可通達(dá)的最短的一條路徑;本發(fā)明采用Dijkstra算法在近鄰圖上進(jìn)行搜索得到一段空間折線,該空間折線為貫穿近鄰圖主體的一條最短路徑,且該空間折線的彎曲狀態(tài)體現(xiàn)了近鄰圖在坐標(biāo)空間中的一個(gè)主要的彎曲狀態(tài),因此被稱為骨架線;該骨架線并不一定是近鄰圖中最長(zhǎng)的一條最短路徑,但卻是近鄰圖中若干最長(zhǎng)的幾個(gè)最短路徑之一。
本發(fā)明利用歐氏空間中的余弦定理公式將每個(gè)數(shù)據(jù)點(diǎn)映射到骨架線上,并作好標(biāo)記:對(duì)于任一數(shù)據(jù)點(diǎn),將其在骨架線上的映射位置定義為其在骨架線上的映射位置點(diǎn)與骨架線起點(diǎn)的骨架距離d且d=(b2+c2-a2)/2c,其中:c為骨架線的長(zhǎng)度,b為該數(shù)據(jù)點(diǎn)到骨架線起點(diǎn)最短路徑的長(zhǎng)度,a為該數(shù)據(jù)點(diǎn)到骨架線終點(diǎn)最短路徑的長(zhǎng)度。
本發(fā)明將數(shù)據(jù)集中均值點(diǎn)與原點(diǎn)的連線方向作為數(shù)據(jù)集的展開(kāi)方向,首先使骨架線沿該方向伸展成一條直線段Ls;伸展過(guò)程中,骨架線上的數(shù)據(jù)點(diǎn)也隨之移動(dòng)并仍然停留在直線段Ls上;然后將數(shù)據(jù)集中的其余數(shù)據(jù)點(diǎn)沿該方向平移,使得平移后數(shù)據(jù)點(diǎn)在直線段Ls上的垂直投影正好對(duì)應(yīng)其在骨架線上的映射位置。
非線性關(guān)系復(fù)雜的數(shù)據(jù)集,在其對(duì)應(yīng)維度的笛卡兒坐標(biāo)系下,其整體的幾何形狀必然復(fù)雜,其中最明顯的就是彎曲程度高。反之,整體幾何形狀平坦的數(shù)據(jù)集,其非線性關(guān)系則相對(duì)簡(jiǎn)單,后續(xù)的計(jì)算能夠比較容易得到好的正確的結(jié)果。通過(guò)上述技術(shù)方案,空間中彎曲的近鄰圖得以展開(kāi)、平坦化,從而產(chǎn)生一個(gè)幾何結(jié)構(gòu)相對(duì)簡(jiǎn)單的數(shù)據(jù)集;本發(fā)明基于近鄰圖通過(guò)最短路徑建模數(shù)據(jù)集的彎曲狀態(tài),能很好地捕捉到數(shù)據(jù)集的非線性性并通過(guò)幾何展開(kāi)進(jìn)行消減,從而有效且可靠地降低數(shù)據(jù)集的非線性處理難度。
附圖說(shuō)明
圖1為本發(fā)明數(shù)據(jù)非線性性的幾何表征以及展開(kāi)消減實(shí)施例的流程框圖。
圖2(a)~圖2(c)對(duì)應(yīng)為本發(fā)明通過(guò)三次Dijkstra最短路徑算法從近鄰圖中找到骨架線的示意圖。
圖3(a)為初始SwissRoll數(shù)據(jù)集的示意圖。
圖3(b)為采用本發(fā)明處理后SwissRoll數(shù)據(jù)集的示意圖。
具體實(shí)施方式
為了更為具體地描述本發(fā)明,下面結(jié)合附圖及具體實(shí)施方式對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
本實(shí)施例的輸入是歸一化的數(shù)據(jù)集(取名為DS),但不限定歸一化方法以及是否需要執(zhí)行歸一化操作。假設(shè)DS含N個(gè)點(diǎn),每個(gè)點(diǎn)的坐標(biāo)是維數(shù)為M的列向量。
本實(shí)施例借助近鄰圖來(lái)體現(xiàn)數(shù)據(jù)集在坐標(biāo)空間中的幾何形態(tài)。更具體地說(shuō),本實(shí)施方式采用KNN法構(gòu)建近鄰圖。一般來(lái)說(shuō),KNN的參數(shù)K值過(guò)小,數(shù)據(jù)的幾何形狀會(huì)被刻畫(huà)得過(guò)于細(xì)致,從而有使某些相鄰點(diǎn)在平移之后有加劇分離的傾向;K值過(guò)大,容易使幾何形狀表達(dá)得過(guò)于模糊,從而使復(fù)雜結(jié)構(gòu)不能得到簡(jiǎn)化。具體K值的確定,本實(shí)施方式采用自適應(yīng)方式。設(shè)使整個(gè)數(shù)據(jù)集連通的最大K值為K',我們?nèi)=min(1.5*K',5%*N)。如此,即可取得較大的K值,又能確保每個(gè)點(diǎn)不會(huì)與距離遠(yuǎn)的點(diǎn)直接發(fā)生關(guān)聯(lián)。在選定K值下,如果數(shù)據(jù)集不能全連通,則依次將連通分量連接到最靠近的連通分量上,直至全連通。
本實(shí)施例在計(jì)算數(shù)據(jù)集中的點(diǎn)在骨架線上的映射位置時(shí),利用了歐氏空間中的余弦定理公式。設(shè)獲得的骨架線為L(zhǎng)g=[g1,g2,…,gq],映射位置以離起點(diǎn)g1的骨架距離表示,為負(fù)表示往骨架線的g1端延伸方向取值,超過(guò)整個(gè)長(zhǎng)度則表示往gq端延伸方向取值。設(shè)Lg長(zhǎng)度為c,DS中的點(diǎn)xi到骨架線起點(diǎn)g1的最短路徑距離為b,到其終點(diǎn)gq的最短路徑距離為a。則點(diǎn)xi在Lg上的映射位置點(diǎn)離起點(diǎn)g1的骨架距離為:di=(b2+c2-a2)/2c,所有點(diǎn)的映射位置形成一個(gè)向量vd={d1,d2,…,dN},骨架線上的兩點(diǎn)之間沿著骨架線所經(jīng)過(guò)的長(zhǎng)度值稱為骨架距離。采用余弦公式的原因是,一是數(shù)據(jù)點(diǎn)與骨架線兩端點(diǎn)相連正好構(gòu)成由三條(彎曲的)邊形成的封閉線,符合余弦公式所需參數(shù);二是相近的兩個(gè)點(diǎn)通過(guò)余弦映射后落點(diǎn)也相近,具有局部保持性。
本實(shí)施例通過(guò)數(shù)據(jù)集DS均值點(diǎn)與原點(diǎn)連線方向(其中原點(diǎn)為始發(fā)點(diǎn))作為DS的展開(kāi)方向,記為ξ。Lg沿ξ的方向伸展成一條直線段Ls。相應(yīng)地,在伸展中,Lg上的標(biāo)記點(diǎn)也隨之移動(dòng)并停留在Ls。在數(shù)學(xué)上,根據(jù)vd可以計(jì)算得到DS在Ls上的標(biāo)記點(diǎn)集為PS2=ξ(vd)t。同時(shí),將DS直接向Ls垂直投影,得到當(dāng)前的投影點(diǎn)集PS1=ξξtDS。所以DS沿ξ方向的平移展開(kāi)操作即為DS=DS+PS2-PS1。
設(shè)Rn是n維歐氏空間,點(diǎn)坐標(biāo)以列向量表示,過(guò)原點(diǎn)的直線參數(shù)方程為L(zhǎng):x=vξ,其中v為實(shí)數(shù),ξ為n維單位列向量。設(shè)空間中一點(diǎn)x0的垂直投影點(diǎn)為x*=v0ξ,則向量(x0-v0ξ)與ξt的內(nèi)積應(yīng)該為0,即ξt(x0-v0ξ)=0,從中解出v0=ξtx0,所以x*=ξv0=ξξtx0。寫(xiě)成數(shù)據(jù)集的形式就是PS1=ξξtDS。
圖1所示了數(shù)據(jù)集非線性性的幾何表征以及展開(kāi)消減具體實(shí)施過(guò)程,輸入歸一化的數(shù)據(jù)集DS,具體為,DS={x1,x2,…,xN}。其中,xi(1≤i≤N)是M維向量。
如圖1所示,本發(fā)明方法實(shí)施例包括以下幾個(gè)步驟:
步驟101:以KNN算法根據(jù)DS構(gòu)造近鄰圖G。其中參數(shù)K由算法自適應(yīng)決定。如果G不連通,則將連通分量連接到其最接近的連通分量,直至G連通。具體如下:
1.1按深度優(yōu)先(DFS)方法確定各個(gè)連通分量,如果只有一個(gè)連通分量,則停止;
1.2以兩個(gè)連通分量之間最短的點(diǎn)間直線距離作為連通分量距離,計(jì)算求得每個(gè)連通分量的最近連通分量;
1.3將連通分量連接到其最近的連通分量上,返回到步驟1.1。
步驟102:針對(duì)圖G,重復(fù)執(zhí)行Dijkstra算法三次,分別求得距隨機(jī)選擇的某點(diǎn)的最遠(yuǎn)一個(gè)點(diǎn)g1,始于g1的所有最短路徑和距離,骨架線Lg=[g1,g2,…,gq],以及始于gq的所有最短路徑和距離。圖2給出了相應(yīng)的示意圖。具體方案為:
如圖2(a)所示,第一次執(zhí)行Dijkstra算法從近鄰圖中隨機(jī)選取的一個(gè)點(diǎn)出發(fā),找出離其最短路徑最長(zhǎng)的一個(gè)點(diǎn)。該點(diǎn)是近鄰圖的一個(gè)邊緣點(diǎn)(記為g1)。注:如果一個(gè)點(diǎn)(記作B)到另外某一個(gè)點(diǎn)(記作A)的最短路徑,不包含于任何其它點(diǎn)到A的最短路徑中,則B是一個(gè)邊緣點(diǎn)。
如圖2(b)所示,第二次Dijkstra算法從g1出發(fā),求得g1到其它各點(diǎn)的最短路徑和相應(yīng)距離{b1,b2,…,bN}。取其最長(zhǎng)的那條最短路徑為骨架線,得Lg=[g1,g2,…,gq],長(zhǎng)度為c。
如圖2(c)所示,第三次Dijkstra算法從gq出發(fā),求得gq到其它各點(diǎn)的最短路徑和相應(yīng)距離{a1,a2,…,aN}。
步驟103:將DS整體平移,以使點(diǎn)g1正好落在原點(diǎn)上。相當(dāng)于執(zhí)行計(jì)算:對(duì)每個(gè)點(diǎn)xi∈DS,執(zhí)行xi=xi-g1。此行為主要是為了簡(jiǎn)化后面的投影計(jì)算。
步驟104:對(duì)每個(gè)點(diǎn)xi∈DS,以它到Lg始末點(diǎn)的最短路徑距離{bi}和{ai}和Lg的長(zhǎng)度值c分別計(jì)算它們映射到Lg的位置點(diǎn)距g1的骨架距離di。
步驟105:通過(guò)求解數(shù)據(jù)集均值點(diǎn)得到DS的展開(kāi)方向向量ξ:
步驟106:過(guò)原點(diǎn),以ξ為方向的展開(kāi)線記作Ls。對(duì)每個(gè)點(diǎn)xi∈DS,在Ls上投影得si=ξξtxi。結(jié)合在Ls上的標(biāo)記點(diǎn)ei=diξ。對(duì)DS中的每個(gè)點(diǎn)xi,作平移xi=xi+(ei-si)。由于每個(gè)點(diǎn)都在局部性保持的前提下往遠(yuǎn)端伸展,這樣,原來(lái)卷曲的網(wǎng)狀圖就自動(dòng)展開(kāi)成一個(gè)平坦的網(wǎng)狀圖,從而數(shù)據(jù)集的非線性性得以消減。
本發(fā)明針對(duì)一個(gè)SwissRoll數(shù)據(jù)集的非線性性消減的效果完整示范見(jiàn)圖3。SwissRoll數(shù)據(jù)集是在機(jī)器學(xué)習(xí)領(lǐng)域非常有名的人工非線性數(shù)據(jù)集,它主要用于檢驗(yàn)非線性算法的性能。圖3(a)顯示的是初始的SwissRoll數(shù)據(jù)集,圖3(b)顯示的是經(jīng)過(guò)本發(fā)明方法展開(kāi)后的SwissRoll數(shù)據(jù)集。從圖3可以看來(lái),降低數(shù)據(jù)非線性性的效果是十分明顯的。
上述的對(duì)實(shí)施例的描述是為便于本技術(shù)領(lǐng)域的普通技術(shù)人員能理解和應(yīng)用本發(fā)明。熟悉本領(lǐng)域技術(shù)的人員顯然可以容易地對(duì)上述實(shí)施例做出各種修改,并把在此說(shuō)明的一般原理應(yīng)用到其他實(shí)施例中而不必經(jīng)過(guò)創(chuàng)造性的勞動(dòng)。因此,本發(fā)明不限于上述實(shí)施例,本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明的揭示,對(duì)于本發(fā)明做出的改進(jìn)和修改都應(yīng)該在本發(fā)明的保護(hù)范圍之內(nèi)。