本發(fā)明涉及數(shù)據(jù)挖掘和材料力學(xué)領(lǐng)域,主要涉及一種基于材力形心法選取中心點的k-means聚類優(yōu)化方法和裝置。
背景技術(shù):
隨著工業(yè)設(shè)備自動化水平的不斷提高,設(shè)備故障診斷技術(shù)在各個工業(yè)領(lǐng)域都受到了普遍重視。目前,以轉(zhuǎn)子為核心工作部件的回轉(zhuǎn)設(shè)備(如壓縮機(jī),透平機(jī)等)的故障診斷技術(shù)已基本成熟,而對于一些復(fù)雜設(shè)備(如發(fā)動機(jī),復(fù)式壓縮機(jī)等)的故障診斷技術(shù)仍然是一個難題。由于傳統(tǒng)的故障診斷方法的復(fù)雜性,自上世紀(jì)90年代數(shù)據(jù)挖掘這一概念提出之后,就開始被廣泛應(yīng)用在故障診斷技術(shù)中。聚類就是一種典型的用來進(jìn)行數(shù)據(jù)挖掘的方法。
聚類是一個把數(shù)據(jù)對象集劃分為若干個簇的過程,簇內(nèi)的對象有很高的相似度,而簇間對象又很不相似,與分類過程不同,聚類是一種無監(jiān)督學(xué)習(xí)。
聚類方法中最經(jīng)典,應(yīng)用最廣泛的是k-means(k-均值)方法。k-means是一種基于中心點使用距離度量的方法,它把簇的中心點定義為簇內(nèi)點的均值。k-means方法的處理流程如下:首先在數(shù)據(jù)集d中隨機(jī)選擇k個對象,即將數(shù)據(jù)集d劃分為k個簇,每個對象對應(yīng)一個簇的初始中心點即均值。對剩下的對象,根據(jù)其與每個簇中心點的歐式距離將它分配到距離最近的簇,這里的距離也可稱為相似度。然后迭代分配到該簇的對象,計算新的均值使用更新后的均值作為新的簇的中心,繼續(xù)分配對象,直到穩(wěn)定。
k-means方法的優(yōu)點在于它是一個快速簡單的方法,比較容易解釋,對大數(shù)據(jù)集的聚類效率比較高且可伸縮,當(dāng)聚類的簇是密集的且類與類之間區(qū)別比較明顯的時候效果比較好。
當(dāng)然,k-means方法也有很多缺陷:(1)k值比較難確定(這一點與knn方法相同);(2)初始聚類中心點的選擇對聚類結(jié)果的影響較大;(3)數(shù)據(jù)量的增加會導(dǎo)致計算量的增加,進(jìn)而會導(dǎo)致聚類時間增長;(4)k-means方法對離群點比較敏感,對噪點和孤立點尤為明顯。
針對上述缺陷(1),目前一般采取隨機(jī)選擇k值或使用輪廓系數(shù)法確定。針對缺陷(4),k-中心點方法能有效解決。針對缺陷(2),目前有采用minkowskidistance公式即閔式距離選取初始中心點,公式表達(dá)式如下:
該公式以星形方式逼近中心。特別的,當(dāng)λ=2時,(6)式即為euclideandistance公式,以圓形方式逼近中心,當(dāng)λ=1時,(6)式即為cityblockdistance公式,以菱形方式逼近中心。這種逼近中心的方法均采用規(guī)則圖形,對一些分布不規(guī)則的數(shù)據(jù)集,誤差依舊比較大。針對缺陷(2),也有使用k-means++方法和層次聚類方法或canopy進(jìn)行初始聚類,但他們的計算復(fù)雜度相對較高,例如對統(tǒng)一數(shù)據(jù)集,canopy方法的聚類建模時間為0.02s,而k-means方法的建模時間為0.01s。且層次聚類可能聚類成鏈狀。綜上,目前確定初始中心點的方法不少,但各有優(yōu)缺點,真正行之有效的方法并不多。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是改善k-means方法選取初始聚類中心點的準(zhǔn)確性和聚類效率,使其在應(yīng)用于故障診斷時能有效提高診斷效率和準(zhǔn)確率。傳統(tǒng)的選取中心點的方法在用閔式距離進(jìn)行初始中心點選取時均以規(guī)則圖形逼近中心,而本優(yōu)化方法基于材料力學(xué)中靜矩和形心的概念提出一種新的有效的中心點的選擇方法,該方法對抽象的不規(guī)則圖形有較好的普遍適用性,而在材力概念中,形心對應(yīng)的平面要求厚度盡可能小,對二維數(shù)據(jù)集尤為適用。而且本方法計算公式如公式(2)、(3)、(4)、(5)所示,簡單易實現(xiàn),計算復(fù)雜度不高,很容易在matlab或weka中操作。
本發(fā)明是通過以下技術(shù)方案實現(xiàn)的:
本發(fā)明提供一種基于材力形心法選取中心點的k-means聚類優(yōu)化方法,在選取初始聚類中心點時,使用靜矩及形心的思想選取出每個簇的形心作為中心點。具體包括如下步驟:
預(yù)處理步驟:對數(shù)據(jù)進(jìn)行預(yù)處理,輸入二維數(shù)據(jù)集。
初始中心點獲取步驟:確定k值,隨機(jī)選取k個初始中心點。
初始簇平面形成步驟:
步驟s31,將數(shù)據(jù)集中的點分配到離初始中心點距離最近的簇內(nèi);
重復(fù)步驟s31一次,數(shù)據(jù)集中形成k個簇平面。
聚類步驟:
步驟s41,基于靜矩計算k個簇平面的形心,將所計算k個簇平面的形心作為每個簇新的聚類中心點,并根據(jù)數(shù)據(jù)集中剩余對象與新的聚類中心點的距離,將其分配到最近的一個簇;
重復(fù)步驟s41進(jìn)行簇中心點坐標(biāo)的迭代,當(dāng)簇中心點的坐標(biāo)趨于穩(wěn)定時,停止迭代,將結(jié)果簇進(jìn)行輸出。
本發(fā)明還提供一種基于材力形心法選取中心點的k-means聚類優(yōu)化裝置,具體包括:
預(yù)處理單元:用于對數(shù)據(jù)進(jìn)行預(yù)處理,輸入二維數(shù)據(jù)集。
初始中心點獲取單元:用于確定k值,隨機(jī)選取k個初始中心點。
初始簇平面形成單元:用于將數(shù)據(jù)集中的點分配到離初始中心點距離最近的簇內(nèi),并重復(fù)執(zhí)行上述操作一次,使得數(shù)據(jù)集中形成k個簇平面。
聚類單元:
用于重復(fù)執(zhí)行聚類操作進(jìn)行簇中心點坐標(biāo)的迭代,當(dāng)簇中心點的坐標(biāo)趨于穩(wěn)定時,停止迭代,將結(jié)果簇進(jìn)行輸出;
其中,聚類操作具體為:基于靜矩計算k個簇平面的形心,將所計算k個簇平面的形心作為每個簇新的聚類中心點,并根據(jù)數(shù)據(jù)集中剩余對象與新的聚類中心點的距離,將其分配到最近的一個簇。
本發(fā)明具有以下有益效果:
1.根據(jù)peterjrousseeuw的理論,通過輪廓系數(shù)能相對有效的確定k值;
2.基于材力中形心的概念,對抽象的不規(guī)則數(shù)據(jù)集有很好的效果;
3.材力中的形心要求對應(yīng)平面厚度無限小,與二維平面數(shù)據(jù)集十分契合,而且形心與組成物質(zhì)無關(guān),對數(shù)據(jù)集中不同類的數(shù)據(jù)也不會造成影響;
4.如公式(2)、(3)、(4)、(5)所示,公式簡單,易于在matlab、weka等軟件中實現(xiàn)。
附圖說明
圖1為基于材力形心法選取中心點的k-means聚類優(yōu)化方法的總流程圖。
圖2為在matlab環(huán)境下實現(xiàn)基于材力形心法選取中心點的k-means聚類優(yōu)化方法的具體流程圖。
圖3為基于材力形心法選取中心點的k-means聚類優(yōu)化方法的初始聚類時的示意簡圖。
圖4為基于材力形心法選取中心點的k-means聚類優(yōu)化方法的聚類迭代過程中的示意簡圖。
圖5為基于材力形心法選取中心點的k-means聚類優(yōu)化方法的聚類完成時的示意簡圖。
圖6為minkowskidistance公式三種逼近方法的示意圖。
圖7為直角坐標(biāo)系中以一不規(guī)則平面的形心計算示意圖。
圖8為使用傳統(tǒng)k-means方法對一訓(xùn)練集進(jìn)行聚類的結(jié)果圖。
圖9所示為使用本發(fā)明提供的聚類優(yōu)化方法對同一訓(xùn)練集進(jìn)行聚類的結(jié)果圖。
圖10為使用本發(fā)明提供的聚類優(yōu)化方法對天氣情況數(shù)據(jù)進(jìn)行聚類處理后的可視化散點圖。
圖11為使用本發(fā)明提供的聚類優(yōu)化方法對轉(zhuǎn)子臺故障診斷實驗采集數(shù)據(jù)進(jìn)行初步處理后的數(shù)據(jù)集。
圖12為使用本發(fā)明提供的聚類優(yōu)化方法對轉(zhuǎn)子臺故障診斷數(shù)據(jù)進(jìn)行聚類處理后的結(jié)果散點圖矩陣。
圖13為使用本發(fā)明提供的聚類優(yōu)化方法對轉(zhuǎn)子臺故障診斷數(shù)據(jù)進(jìn)行聚類處理后的結(jié)果散點圖矩陣第一行第一列的散點圖。
圖14為基于材力形心法選取中心點的k-means聚類優(yōu)化裝置的結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施方式僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
實施例1:
如圖1所示,一種基于材力形心法選取中心點的k-means聚類優(yōu)化方法,包括如下步驟:
s1,預(yù)處理步驟:對數(shù)據(jù)進(jìn)行預(yù)處理,輸入二維數(shù)據(jù)集。
s2,初始中心點獲取步驟:確定k值,隨機(jī)選取k個初始中心點。
一般情況下,k值可以隨機(jī)選取,在本實施例中,作為最佳的技術(shù)方案,k值的確定方法具體為:選取輪廓系數(shù)大的值所對應(yīng)的k值,該輪廓系數(shù)具體計算公式為:
其中,i表示數(shù)據(jù)集中的一個數(shù)據(jù)點,s(i)表示i點的輪廓系數(shù),m(i)表示i點到它所在的簇中的所有其他點的距離平均值,n(i)表示i點到其他簇的點的平均距離的最小值。
輪廓系數(shù)結(jié)合了聚類的凝聚度和分離度,原用于評估聚類的效果。該值處于-1~1之間,值越大,表示聚類效果越好。在實際應(yīng)用中,k值不會設(shè)置很大,k-means也具有一定隨機(jī)性,并不是每次都收斂到全局最小,因此為更準(zhǔn)確地確定k值,采用輪廓系數(shù)法作為最終評價標(biāo)準(zhǔn)。
s3,初始簇平面形成步驟:
步驟s31,將數(shù)據(jù)集中的點分配到離初始中心點距離最近的簇內(nèi);
重復(fù)所述步驟s31一次,數(shù)據(jù)集中形成k個簇平面。
作為更佳的技術(shù)方案,在本實施例中,距離具體是指歐式距離,計算公式為:
其中dxy表示距離,x1、y1分別表示一個數(shù)據(jù)點的二維橫縱坐標(biāo),x2、y2分別表示另一數(shù)據(jù)點的二維橫縱坐標(biāo)。
關(guān)于距離的度量,數(shù)據(jù)挖掘中采用的度量方法有歐幾里得距離、明可夫斯基距離、曼哈頓距離、切比雪夫距離和馬哈拉諾比斯距離這幾種。其中,歐氏距離是最常見的距離度量,衡量的是多維空間中各個點之間的絕對距離,具有計算簡單、應(yīng)用廣泛,尤其在二維以及三維空間中比較適用。針對本發(fā)明的二維實現(xiàn)環(huán)境下,這里采用歐式距離。
s4,聚類步驟:
步驟s41,基于靜矩計算所述k個簇平面的形心,將所計算k個簇平面的形心作為每個簇新的聚類中心點,并根據(jù)數(shù)據(jù)集中剩余對象與新的聚類中心點的距離,將其分配到最近的一個簇。
重復(fù)所述步驟s41進(jìn)行簇中心點坐標(biāo)的迭代,當(dāng)簇中心點的坐標(biāo)趨于穩(wěn)定時,即簇的中心點坐標(biāo)不再發(fā)生變化時,停止迭代,將結(jié)果簇進(jìn)行輸出。
在本實施例中,此處的聚類過程使用靜矩及形心的思想選取出每個簇的形心作為中心點,在所述聚類步驟的步驟s41中,基于靜矩計算所述k個簇平面的形心的方法具體為:
將簇視為一不規(guī)則平面圖形,取一微面積da,基于如下形心計算公式進(jìn)行計算:
靜矩:
形心:
其中:sx、sy分別定義為簇圖形對x軸和y軸的靜矩,
實施例2:
下面以matlab軟件為例,介紹在matlab軟件環(huán)境下實現(xiàn)實施例1的基于材力形心法選取中心點的k-means聚類優(yōu)化方法的具體實施過程,具體流程圖如圖2所示,而圖3至圖5是該過程在matlab軟件環(huán)境下的聚類可視化輸出圖。
首先,執(zhí)行預(yù)處理步驟,即輸入一個包含n個對象的數(shù)據(jù)集d。
然后,執(zhí)行初始中心點獲取步驟,即確定簇的數(shù)目k(這里的k值由輪廓系數(shù)計算而得,計算公式為
接著,執(zhí)行初始簇平面形成步驟,根據(jù)其他對象與簇中心的歐式距離
最后,執(zhí)行聚類步驟,即整個數(shù)據(jù)集使用同一坐標(biāo)系根據(jù)靜矩計算每個簇平面的形心作為新的簇中心點。使用新的簇中心點將剩余的對象繼續(xù)分配到離新的簇中心點距離最近的簇內(nèi),如圖4所示。不斷迭代這個步驟直到簇的中心點坐標(biāo)不再發(fā)生變化,即聚類完成,如圖5所示。
在整個k-means聚類方法的流程中,傳統(tǒng)的k-means方法采用minkowskidistance公式來逼近中心點,三種逼近方法如圖6,無論是星形、圓形、星形均為規(guī)則圖形,而本實施例提供的基于材力形心法選取中心點的k-means聚類優(yōu)化方法中采用的形心法如圖7所示,可準(zhǔn)確計算不規(guī)則平面的中心點。在坐標(biāo)(x,y)處取微面積da,根據(jù)公式sx=∫ayda和sy=∫axda分別計算da對x軸和y軸的靜矩,而該平面圖形的形心
圖8圖9所示分別為使用傳統(tǒng)的k-means方法和本發(fā)明提供的k-means聚類優(yōu)化方法對同一訓(xùn)練集進(jìn)行聚類的結(jié)果示意圖,由圖中對比可知,在聚成的三個簇中,本發(fā)明提供的k-means聚類優(yōu)化方法在每個簇的比例比傳統(tǒng)k-means方法更接近33%(實驗實際值),即本發(fā)明提供的k-means聚類優(yōu)化方法相比傳統(tǒng)k-means聚類方法有進(jìn)一步的改進(jìn)。
實施例3:
本發(fā)明提供的基于材力形心法選取中心點的k-means聚類優(yōu)化方法可以廣泛應(yīng)用于故障診斷和數(shù)據(jù)信息處理技術(shù)領(lǐng)域,下面介紹兩個應(yīng)用實例。
以weka軟件為例,可以在weka軟件環(huán)境下使用基于材力形心法選取中心點的k-means聚類優(yōu)化方法對一天氣情況數(shù)據(jù)集進(jìn)行聚類處理,圖10為處理結(jié)束后的可視化輸出散點圖。
再以weka軟件為例,可以在weka軟件環(huán)境下使用基于材力形心法選取中心點的k-means聚類優(yōu)化方法對轉(zhuǎn)子臺故障診斷實驗采集的數(shù)據(jù)進(jìn)行聚類處理。對轉(zhuǎn)子臺故障診斷實驗采集的數(shù)據(jù)進(jìn)行簡單處理后的初始數(shù)據(jù)集如圖11所示,經(jīng)過k-means聚類優(yōu)化方法處理后輸出的散點圖矩陣如圖12所示。由圖12可知,本實例的k值取2,即聚類成兩個簇。對散點圖矩陣的第一行第一列的散點圖進(jìn)行分析,如圖13所示。圖中所示的點集按不規(guī)則分布,傳統(tǒng)的minkowskidistance公式使用星形、圓形、菱形等規(guī)則圖形逼近中心點的誤差都較大,使用本發(fā)明提供的k-means聚類優(yōu)化方法進(jìn)行不規(guī)則平面中心點選取能有效優(yōu)化這一誤差。
綜合上述陳述和說明可知,本發(fā)明基于材力形心法選取中心點的k-means聚類優(yōu)化方法在確定聚類簇中心點時能有效計算不規(guī)則簇平面的中心點,確定k值的輪廓系數(shù)法也有理論依據(jù),很大程度上優(yōu)化了傳統(tǒng)的k-means方法的k值難確定、中心點選取對結(jié)果影響大的缺陷,而且優(yōu)化所用公式簡單易行,相對k-means++和層次聚類方法,大大減少了聚類時間。在應(yīng)用于工業(yè)領(lǐng)域進(jìn)行故障診斷時,也能提高故障診斷的效率。
實施例4:
如圖14所示,本實施例提供一種基于材力形心法選取中心點的k-means聚類優(yōu)化裝置,該裝置用于實現(xiàn)實施例1提供的k-means聚類優(yōu)化方法,該裝置具體包括:
預(yù)處理單元1:用于對數(shù)據(jù)進(jìn)行預(yù)處理,輸入二維數(shù)據(jù)集。
初始中心點獲取單元2:用于確定k值,選取k個初始中心點。
初始簇平面形成單元3:用于將數(shù)據(jù)集中的點分配到離初始中心點距離最近的簇內(nèi),并重復(fù)執(zhí)行上述操作一次,使得數(shù)據(jù)集中形成k個簇平面。
聚類單元4:
用于重復(fù)執(zhí)行聚類操作進(jìn)行簇中心點坐標(biāo)的迭代,當(dāng)簇中心點的坐標(biāo)趨于穩(wěn)定時,停止迭代,將結(jié)果簇進(jìn)行輸出。
其中,聚類操作具體為:基于靜矩計算所述k個簇平面的形心,將所計算k個簇平面的形心作為每個簇新的聚類中心點,并根據(jù)數(shù)據(jù)集中剩余對象與新的聚類中心點的距離,將其分配到最近的一個簇。
本實施例的工作原理及有益效果與實施例1至3基本相同,在此不再贅述。
本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。