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