本申請涉及數(shù)據(jù)分析
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)聚類方法及裝置。
背景技術(shù):
:數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計方法對數(shù)據(jù)集合進(jìn)行分析,從而提取有用信息和形成結(jié)論的過程。在大數(shù)據(jù)時代,如何從海量的信息數(shù)據(jù)中更有效地提取出有用信息已經(jīng)成為一個重點(diǎn)研究課題。數(shù)據(jù)分析的一種實(shí)際應(yīng)用需求是:根據(jù)數(shù)據(jù)的特征,從大量數(shù)據(jù)對應(yīng)的實(shí)體中篩選出一些異常的實(shí)體,而這些異常實(shí)體往往會存在一定的意義,例如:通過對不同終端對服務(wù)器的訪問行為數(shù)據(jù)進(jìn)行篩選,可以從大量終端中識別出具有網(wǎng)絡(luò)攻擊行為的終端;通過對不同商戶的交易行為數(shù)據(jù)進(jìn)行篩選,可以從大量商戶中識別出一些優(yōu)質(zhì)商戶;等等。在數(shù)據(jù)篩選的初始階段,篩選的標(biāo)準(zhǔn)往往是不確定的,有時甚至連篩選的目的都不明確,在這種需求背景下,聚類成為數(shù)據(jù)篩選的重要手段,在具體篩選標(biāo)準(zhǔn)不明確的情況下,聚類結(jié)果往往能夠直接滿足篩選需求,或者為數(shù)據(jù)分析人員提供重要的指導(dǎo)意義。目前,聚類算法有很多種,例如kmeans、dbscan、譜聚類、som等等,但是這些聚類算法均要求數(shù)據(jù)樣本之間的距離是可度量的,而在實(shí)際的數(shù)據(jù)分析過程中,一條信息數(shù)據(jù)可能包含多種類型的特征屬性,例如數(shù)值類、布爾類、文本類、時間類等等。應(yīng)用現(xiàn)有的聚類算法,需要對各類特征屬性取值的距離進(jìn)行統(tǒng)一定義,如果定義不合適則需要反復(fù)調(diào)整,特征的數(shù)量、種類越多,調(diào)整的工作量就越大。對于數(shù)據(jù)分析人員而言,調(diào)整定義特征屬性的取值距離往往需要消耗大量的時間和精力成本,這也對整體的數(shù)據(jù)篩選處理效率造成了較大的影響。技術(shù)實(shí)現(xiàn)要素:針對上述技術(shù)問題,本申請?zhí)峁┮环N數(shù)據(jù)聚類方法及裝置,技術(shù)方案如下:根據(jù)本申請的第一方面,提供一種數(shù)據(jù)聚類方法,該方法包括:對待處理數(shù)據(jù)樣本集的連續(xù)變量特征取值進(jìn)行離散化處理;根據(jù)離散化處理結(jié)果,利用預(yù)設(shè)的相似度算法計算任意兩個數(shù)據(jù)樣本i和j之間的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然數(shù),n為所述數(shù)據(jù)樣本集中的數(shù)據(jù)樣本總數(shù);根據(jù)任意兩個數(shù)據(jù)樣本i和j之間的相似度sij,利用預(yù)設(shè)的聚類算法對所述n個數(shù)據(jù)樣本進(jìn)行聚類。根據(jù)本申請的第二方面,提供一種數(shù)據(jù)聚類裝置,該裝置包括:離散化處理模塊,用于對待處理數(shù)據(jù)樣本集的連續(xù)變量特征取值進(jìn)行離散化處理;相似度計算模塊,用于根據(jù)離散化處理結(jié)果,利用預(yù)設(shè)的相似度算法計算任意兩個數(shù)據(jù)樣本i和j之間的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然數(shù),n為所述數(shù)據(jù)樣本集中的數(shù)據(jù)樣本總數(shù);聚類模塊,用于根據(jù)任意兩個數(shù)據(jù)樣本i和j之間的相似度sij,利用預(yù)設(shè)的聚類算法對所述n個數(shù)據(jù)樣本進(jìn)行聚類。應(yīng)用本申請所提供的技術(shù)方案,在對數(shù)據(jù)集進(jìn)行聚類時,僅考慮特征的取值的離散性,無需考慮數(shù)據(jù)各個特征的具體類型,對于連續(xù)變量特征,通過對其特征取值進(jìn)行離散化處理,使其與離散變量特征能夠采用統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行度量,因此本申請方案對于任意的信息數(shù)據(jù)集,無論有多少個特征,特征的具體類型如何,均能夠自動計算出數(shù)據(jù)樣本的距離并進(jìn)行聚類,從而有效地降低數(shù)據(jù)篩選過程中的聚類調(diào)試成本消耗,提高數(shù)據(jù)篩選的處理效率。應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請。附圖說明為了更清楚地說明本申請實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本申請的數(shù)據(jù)聚類方法的流程示意圖;圖2是本申請的數(shù)據(jù)聚類裝置的結(jié)構(gòu)示意圖。具體實(shí)施方式為了使本領(lǐng)域技術(shù)人員更好地理解本申請中的技術(shù)方案,下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行詳細(xì)地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾堉械膶?shí)施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實(shí)施例,都應(yīng)當(dāng)屬于本申請保護(hù)的范圍。圖1所示,為本申請?zhí)峁┑臄?shù)據(jù)聚類方法的流程圖,該方法可以包括以下步驟:s101,對待處理數(shù)據(jù)樣本集的連續(xù)變量特征取值進(jìn)行離散化處理;對于一個待處理的數(shù)據(jù)樣本集,可能包含多種類型的特征,例如數(shù)值類、布爾類、文本類、時間類等等,根據(jù)現(xiàn)有技術(shù)方案,為了對數(shù)據(jù)樣本進(jìn)行聚類,需要對各類特征屬性取值的距離進(jìn)行統(tǒng)一定義,而如何選取合適的定義標(biāo)準(zhǔn)則是一個需要消耗大量嘗試成本的步驟。針對該問題,本申請?zhí)峁┑姆桨甘牵翰豢紤]特征的具體類型,僅考慮特征的取值的離散性。由于相對于連續(xù)變量特征而言,離散變量特征的取值數(shù)量是有限的,更便于在同一特征的維度上度量兩個樣本之間的相似性。因此對于數(shù)據(jù)樣本中取值為連續(xù)變量的特征,對其取值進(jìn)行離散化處理,使其與離散變量特征能夠采用統(tǒng)一的標(biāo)準(zhǔn)進(jìn)行度量。假設(shè)數(shù)據(jù)樣本集中的數(shù)據(jù)樣本總數(shù)為n、且數(shù)據(jù)樣本共有l(wèi)個特征,其中連續(xù)變量特征的數(shù)量為l1、離散特征的數(shù)量為l2,即l=l1+l2。則對于l1個連續(xù)變量特征中的任一個特征,都具有n個取值。離散化的過程就是根據(jù)一定的算法,將這個n個取值劃分k(k<n)個離散區(qū)間,并為每個離散區(qū)間指定一個對應(yīng)的離散取值。對特征取值的離散化處理,可以采用現(xiàn)有的離散化算法,例如kmeans、dbscan、som等聚類算法,都可以用于離散化處理。在具體應(yīng)用中,還可以通過最優(yōu)參數(shù)算法來自動計算聚類算法中所需要的參數(shù)值,例如kmeans算法中的k值等,從而進(jìn)一步降低數(shù)據(jù)處理人員的調(diào)試成本s102,根據(jù)離散化處理結(jié)果,計算任意兩個數(shù)據(jù)樣本i和j之間的相似度;對連續(xù)變量特征進(jìn)行離散化處理后,原本大量的連續(xù)取值變?yōu)樯倭康碾x散取值,也使得數(shù)據(jù)樣本集的l個特征都統(tǒng)一為離散變量特征,從而便于進(jìn)一步計算數(shù)據(jù)樣本之間的相似度。對于離散取值的樣本的相似度計算,可以采用現(xiàn)有的相似度計算方法。為便于實(shí)現(xiàn),在本申請的一種實(shí)施方式中,對于任意兩個數(shù)據(jù)樣本i和j(i=1,2,3…n;j=1,2,3…n),可以先計算i和j之間的樣本距離dij,然后將dij轉(zhuǎn)換為i和j之間的樣本相似度sij。其中,樣本距離可以采用漢明距離、歐式距離等多種方式進(jìn)行計算,而將距離轉(zhuǎn)換為相似度也可以通過不同的方法實(shí)現(xiàn),例如直接對距離值取倒數(shù)得到相似度(即sij=1/dij),或?qū)嚯x值的對數(shù)取倒數(shù)得到相似度(即sij=1/logdij),等等,本申請對這些具體的算法的選擇均不需要進(jìn)行限定。s103,根據(jù)任意兩個數(shù)據(jù)樣本i和j之間的相似度sij,利用預(yù)設(shè)的聚類算法對n個數(shù)據(jù)樣本進(jìn)行聚類。其中,聚類結(jié)果中的一個或多個類簇可以用于形成對所述數(shù)據(jù)樣本集的數(shù)據(jù)篩選結(jié)果。得到任意兩個數(shù)據(jù)樣本i和j的樣本相似度sij后,可以生成相應(yīng)的相似度圖,該相似度圖具有n個頂點(diǎn),分別對應(yīng)n個數(shù)據(jù)樣本,任意兩個頂點(diǎn)i和j之間存在一條以sij為權(quán)重值的邊。利用基于圖分割的聚類算法對上述生成的相似度圖進(jìn)行聚類,這里可以采用譜聚類、標(biāo)簽傳播聚類、fastunfolding等聚類算法。其中標(biāo)準(zhǔn)譜聚類方式在理論上較為嚴(yán)謹(jǐn),當(dāng)數(shù)據(jù)樣本的數(shù)量n較大時,可以選用時間復(fù)雜度稍低的近似譜聚類算法poweriterationclustering進(jìn)行聚類。當(dāng)然,本申請方案并不限定必須使用基于圖分割的距離算法,例如,在分布式計算環(huán)境下,可以采用svd矩陣分解得到數(shù)據(jù)樣本相似度矩陣的特征向量,并對特征向量進(jìn)行kmeans聚類得到每個樣本所屬的類別。得到聚類結(jié)果后,可以根據(jù)聚類數(shù)量、聚類的相對大小等具體情況進(jìn)行數(shù)據(jù)篩選。例如,在篩選異常數(shù)據(jù)時,可以優(yōu)先關(guān)注聚類結(jié)果中較小的類簇,當(dāng)然,根據(jù)不同的應(yīng)用需求,聚類結(jié)果中的每一個類簇都可能成為對原數(shù)據(jù)樣本集的數(shù)據(jù)篩選結(jié)果,具體的篩選原則與本申請方案無關(guān),這里不做詳細(xì)介紹。下面將結(jié)合一個具體的實(shí)例,對本申請方案進(jìn)行說明假設(shè)待處理的數(shù)據(jù)樣本集如表1所示:agecitydepositmarriage110上海1000.00225南京2000.01311上海3000.00436北京4000.01524北京5000.02626北京6000.01表1該數(shù)據(jù)樣本集包含的樣本數(shù)n=6,特征數(shù)l=4,分別為age、city、deposit、marriage,其中age和deposit是連續(xù)變量特征,根據(jù)s101,首先對連續(xù)變量的取值進(jìn)行離散化處理。在本實(shí)施例中,選用常見的kmeans算法對連續(xù)變量特征的取值進(jìn)行離散化處理。kmeans本身也是一種聚類算法,其接收輸入?yún)?shù)k,然后將n個數(shù)據(jù)對象劃分為k個聚類以便使得所獲得的聚類滿足:同一聚類中的對象相似度較高;而不同聚類中的對象相似度較小。假設(shè)數(shù)據(jù)樣本集中的數(shù)據(jù)樣本總數(shù)為n,則對于數(shù)據(jù)樣本集中的任意連續(xù)化特征,可以將離散化問題轉(zhuǎn)換為對n個數(shù)據(jù)樣本的該特征取值進(jìn)行聚類。為了實(shí)現(xiàn)自適應(yīng)離散化處理,kmeans算法中的k值可以利用最佳聚類數(shù)算法確定。目前用于檢驗聚類有效性的指標(biāo)主要有calinski-harabasz(ch)指標(biāo)、davies-bouldin(db)指標(biāo)、krzanowski-lai(kl)指標(biāo)等等。本實(shí)施例中利用ch指標(biāo)自動計算最優(yōu)的k值,ch的表達(dá)式如下:其中n為數(shù)據(jù)樣本的總數(shù),l表示第l個連續(xù)變量特征,用于衡量第l個連續(xù)變量特征,在被分割為k個類后,k個類的類間距離和;用于衡量第l個連續(xù)變量特征,在被分割為k個類后,k個類的類內(nèi)距離和,其中距離的具體衡量算法可以是距離加和、歐式距離等,本申請不做限定。對于第l個連續(xù)變量特征,選取能夠令值最大的k值作為最優(yōu)解。利用上述方法,可得到特征age和deposit的離散化結(jié)果如下:特征age的最佳k值為3,對應(yīng)的離散區(qū)間為(9,20]、(20,24]、(24,36],分別為其指定對應(yīng)的離散取值0、1、2;特征deposit的最佳k值為2,對應(yīng)的離散區(qū)間為(1000.0,3000.0]、(3000.0,6000.0],分別為其指定對應(yīng)的離散取值0、1;離散化處理之后,可以將表1所示的數(shù)據(jù)樣本集轉(zhuǎn)換成如表2所示的全離散值的數(shù)據(jù)樣本集:agecitydepositmarriage10上海0022南京0130上海0042北京1151北京1262北京11表2根據(jù)s102,對于數(shù)據(jù)樣本集d1,分別計算任意兩個數(shù)據(jù)樣本i和j之間的相似度sij。在本實(shí)施例中,采用修正的漢明距離算法計算任意兩個樣本點(diǎn)之間的距離dij,然后利用高斯核函數(shù)將dij轉(zhuǎn)換為樣本間相似度sij,其中,對于任意兩個數(shù)據(jù)樣本i和j(i=1,2,...n、j=1,2,...n),其樣本間相似度的具體計算過程如下:首先分別計算i的第l個特征值和j的第l個特征值的距離dl(i,j),經(jīng)過離散化處理后,這里可以采用漢明距離的計算思想:如果兩個特征值相等,則距離為0,如果兩個特征值不相等,則距離為1。例如,對于表2中的第1條數(shù)據(jù)和第2條數(shù)據(jù),age特征的距離為1、city特征的距離為1、deposit特征的距離為0、marriage特征的距離為1。遍歷所有的l(從1到l),得到所有的dl(i,j)后,對l個dl(i,j)進(jìn)行求和,得到i和j的距離dij:在有些情況下,不同的特征對應(yīng)的離散區(qū)間數(shù)量相差較大,為了平衡這種差別,可以通過加權(quán)的方式對各個特征的距離進(jìn)行修正。加權(quán)的基本思想是:某個特征對應(yīng)的離散區(qū)間數(shù)量大,該特征內(nèi)兩個不同的取值所體系出的距離應(yīng)該越小。實(shí)際應(yīng)用中,每項dl(i,j)可以以1/kl作為權(quán)值,當(dāng)然也可以使用kl的指數(shù)冪的倒數(shù)或?qū)?shù)的倒數(shù)等作為權(quán)值,本申請對此并不需要進(jìn)行限定。在本申請的一種實(shí)施方式中,對每個dl(i,j)增加修正參數(shù)1/kl,其中kl為數(shù)據(jù)樣本第l個特征所對應(yīng)的離散區(qū)間數(shù)量,得到修正的樣本間距離計算公式如下:針對表2所示的數(shù)據(jù)樣本集,利用上述修正距離計算公式,可以得到樣本間距離矩陣如表3所示:表3表3所示矩陣中,第i行第j列的數(shù)值即為i和j的距離dij,可以看出該矩陣為對稱矩陣,即dij=dji。進(jìn)一步,利用高斯核函數(shù),將任意兩個樣本i和j的之間距離dij轉(zhuǎn)換為任意兩個樣本i和j之間的相似度sij,高斯核函數(shù)也稱徑向基函數(shù),表達(dá)式如下:其中ε為高斯半徑,是可以自定義的參數(shù),將距離轉(zhuǎn)換為相似度的目的,在于將距離較為稠密的樣本點(diǎn)稀疏化,使得在一個樣本點(diǎn)x周圍,如果其他樣本點(diǎn)y與x的距離超過了ε,則x與y的相似度能夠明顯衰減。為了實(shí)現(xiàn)自適應(yīng)處理,這里ε可以取值為所有數(shù)據(jù)樣本對之間距離的標(biāo)準(zhǔn)差,當(dāng)然這并不應(yīng)理解為對本申請方案的限定,本領(lǐng)域技術(shù)人員可以根據(jù)實(shí)際情況(例如采用多次嘗試法)選取具體的ε值。針對表3所示的樣本間距離矩陣,利用高斯核函數(shù)進(jìn)行轉(zhuǎn)化后,可以得到如表4所示的樣本間相似度矩陣:表4表4所示矩陣中,第i行第j列的數(shù)值即為i和j的相似度sij,可以看出該矩陣為對稱矩陣,即sij=sji。最后,根據(jù)s103,對數(shù)據(jù)樣本集進(jìn)行聚類。首先根據(jù)sij構(gòu)成的樣本點(diǎn)相似度圖,該相似度圖具有6個頂點(diǎn),分別對應(yīng)6個數(shù)據(jù)樣本,任意兩個頂點(diǎn)i和j之間存在一條以sij為權(quán)重值的邊,利用標(biāo)準(zhǔn)譜聚類算法得到最終聚類結(jié)果如表5所示:agecitydepositmarriagecluster110上海1000.001225南京2000.012311上海3000.002436北京4000.012524北京5000.022626北京6000.012表5可見,數(shù)據(jù)樣本2、3、4、5、6屬于一個類簇,數(shù)據(jù)樣本1則屬于另外一個類簇,從數(shù)據(jù)分析的角度,可以認(rèn)為樣本1存在異常,并將樣本1篩選出來以作后續(xù)的分析處理??梢姡瑧?yīng)用上述技術(shù)方案,無論給定數(shù)據(jù)樣本集包括多少個特征、特征的具體類型如何,均能夠自動計算出數(shù)據(jù)樣本的距離并進(jìn)行聚類,從而有效地降低數(shù)據(jù)篩選過程中的聚類調(diào)試成本消耗。在本申請方案改進(jìn)的實(shí)施方式中,通過自適應(yīng)確定參數(shù)等手段,還可以進(jìn)一步減少數(shù)據(jù)分析人員的參數(shù)調(diào)試工作,使聚類過程不需要任何人工參與,只要輸入數(shù)據(jù)樣本集就可以自動得出最優(yōu)的聚類結(jié)果,從而有效提高數(shù)據(jù)篩選的整體處理效率。相應(yīng)于上述方法實(shí)施例,本申請還提供一種數(shù)據(jù)聚類裝置,參見圖2所示,該裝置可以包括:離散化處理模塊110,用于對待處理數(shù)據(jù)樣本集的連續(xù)變量特征取值進(jìn)行離散化處理;相似度計算模塊120,用于根據(jù)離散化處理結(jié)果,利用預(yù)設(shè)的相似度算法計算任意兩個數(shù)據(jù)樣本i和j之間的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然數(shù),n為數(shù)據(jù)樣本集中的數(shù)據(jù)樣本總數(shù);聚類模塊130,用于根據(jù)任意兩個數(shù)據(jù)樣本i和j之間的相似度sij,利用預(yù)設(shè)的聚類算法對n個數(shù)據(jù)樣本進(jìn)行聚類。在本申請的一種具體實(shí)施方式中,離散化處理模塊110可以具體用于:對于任一連續(xù)變量特征,利用kmeans算法對n個數(shù)據(jù)樣本的該特征取值進(jìn)行聚類,并為每個類簇指定相應(yīng)的離散取值。其中,kmeans算法的k值可以利用最佳聚類數(shù)算法自動確定。在本申請的一種具體實(shí)施方式中,相似度計算模塊120可以具體用于:對于任意兩個數(shù)據(jù)樣本i和j:分別計算i的第l個特征值和j的第l個特征值的距離dl(i,j),其中l(wèi)的取值包括不大于l的所有自然數(shù),l為數(shù)據(jù)樣本的特征總數(shù);對l個dl(i,j)進(jìn)行求和得到i和j的距離dij;利用高斯核函數(shù)計算sij,ε為預(yù)設(shè)的高斯半徑參數(shù)。在本申請的一種具體實(shí)施方式中,相似度計算模塊120可以利用對l個dl(i,j)進(jìn)行加權(quán)求和的方式得到i和j的距離dij;其中加權(quán)求和的權(quán)值為1/kl,kl為數(shù)據(jù)樣本第l個特征所對應(yīng)的離散區(qū)間數(shù)量。在本申請的一種具體實(shí)施方式中,ε的取值可以是所有數(shù)據(jù)樣本對之間距離的標(biāo)準(zhǔn)差。通過以上的實(shí)施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本申請可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本申請的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本申請各個實(shí)施例或者實(shí)施例的某些部分所述的方法。本說明書中的各個實(shí)施例均采用遞進(jìn)的方式描述,各個實(shí)施例之間相同相似的部分互相參見即可,每個實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于裝置實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,在實(shí)施本申請方案時可以把各模塊的功能在同一個或多個軟件和/或硬件中實(shí)現(xiàn)。也可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。以上所述僅是本申請的具體實(shí)施方式,應(yīng)當(dāng)指出,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本申請原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本申請的保護(hù)范圍。當(dāng)前第1頁12