一、技術(shù)領(lǐng)域
本發(fā)明涉及一種基于dc規(guī)劃理論和核模糊c均值聚類算法實現(xiàn)缺失數(shù)據(jù)集聚類的方法,多應(yīng)用于數(shù)據(jù)挖掘領(lǐng)域,尤其適用大規(guī)模數(shù)據(jù)集聚類。
二、
背景技術(shù):
隨著現(xiàn)代信息技術(shù)的不斷發(fā)展,人們能夠輕易地獲取龐大的數(shù)據(jù)資源,數(shù)據(jù)挖掘和分析技術(shù)變得越來越重要。聚類分析作為數(shù)據(jù)挖掘技術(shù)的重要工具,常用來對數(shù)據(jù)進(jìn)行預(yù)處理,是其不可或缺的子領(lǐng)域。由于數(shù)據(jù)的快速增長,收集的數(shù)據(jù)資源中數(shù)據(jù)項缺失的情況也日益嚴(yán)重,這無疑增加了數(shù)據(jù)分析處理的難度。因此,如何有效地對缺失數(shù)據(jù)集進(jìn)行處理成為現(xiàn)下亟待解決的問題。
近年來,國內(nèi)外學(xué)者提出了各種不同的處理方法,已有的方法包括:將不完整的數(shù)據(jù)項直接刪除處理;對含有缺失值的數(shù)據(jù)項使用部分距離進(jìn)行度量;將缺失數(shù)據(jù)項當(dāng)成額外變量進(jìn)行最小值填充等。但這些方法都是針對缺失項數(shù)據(jù)進(jìn)行單獨處理,并未考慮缺失項對聚類過程的影響。因此,hathaway等人提出在計算聚類中心、隸屬度等聚類結(jié)果與計算缺失項估計值交替進(jìn)行,既保證聚類性能又保證了缺失項盡可能接近所屬類的聚類中心特征值。在模糊c均值聚類算法對缺失數(shù)據(jù)項訓(xùn)練填充的基礎(chǔ)上,zhang等人提出引入核方法,將數(shù)據(jù)從原空間映射到特征空間并在特征空間中進(jìn)行聚類,該方法被稱為核模糊c均值聚類算法(kfcm)。然而,由于kfcm目標(biāo)函數(shù)的非凸性,在算法優(yōu)化過程中非凸函數(shù)往往會陷入局部極值解。為了改善目標(biāo)非凸導(dǎo)致的解缺陷問題,我們擬采用dc規(guī)劃將原算法的目標(biāo)函數(shù)變?yōu)閮蓚€凸函數(shù)之差形式,利用dca算法將凸差形式用一階線性形式逼近,將目標(biāo)函數(shù)轉(zhuǎn)化為近似凸函數(shù),期望能搜索到算法相對更優(yōu)的解。其中,dc規(guī)劃是非凸規(guī)劃和全局優(yōu)化的重要組成部分,已在經(jīng)濟、工程、計算數(shù)學(xué)等領(lǐng)域取得了廣泛的應(yīng)用。求解dc規(guī)劃問題的算法有很多,主要可分為兩類:一類是基于組合優(yōu)化的算法(如分支定界方法,割平面法等等),通過某些變形來求解連續(xù)的問題,目的是要找出問題的全局最優(yōu)解;第二類常用的算法在文獻(xiàn)中通常被稱為dca算法。和組合優(yōu)化的方法不同,dca算法是基于凸分析和對偶理論的方法,通過討論原始問題與對偶問題之間的關(guān)系來進(jìn)行優(yōu)化求解,在處理大規(guī)模問題時較之全局最優(yōu)方法有很大的優(yōu)勢。
綜上所述,考慮數(shù)據(jù)集中缺失項可能對聚類結(jié)果造成的影響,和缺失項估計值的準(zhǔn)確性,本發(fā)明提出一種基于dc規(guī)劃處理缺失數(shù)據(jù)的聚類方法,在聚類過程和缺失項填充過程的交替迭代求解中,盡可能地對所求結(jié)果進(jìn)行優(yōu)化調(diào)整。
三、
技術(shù)實現(xiàn)要素:
為解決現(xiàn)實應(yīng)用中真實采集的數(shù)據(jù)集常出現(xiàn)數(shù)據(jù)缺失的情況,本發(fā)明提出一種基于dc規(guī)劃處理缺失數(shù)據(jù)的聚類方法,具體步驟如下:
(1)初始化缺失數(shù)據(jù)項
在算法的初始化階段,由kfcm算法迭代計算五次得到相應(yīng)的初始聚類中心和初始隸屬度矩陣,由數(shù)據(jù)集中包含缺失項的某列特征計算已知項的平均值作為初始缺失值。
(2)基于dc規(guī)劃的kfcm聚類過程
采用核模糊c均值聚類算法(kfcm)對預(yù)處理后數(shù)據(jù)集聚類,并采用凸差(dc)方法對kfcm目標(biāo)函數(shù)進(jìn)行非凸規(guī)劃優(yōu)化,使最優(yōu)解盡可能跳出局部極值點的吸引域。先對聚類中心和隸屬度的可行域分別進(jìn)行凸化,將可行域擴展為相應(yīng)的凸集;再對kfcm目標(biāo)函數(shù)進(jìn)行dc分解,將非凸目標(biāo)函數(shù)變?yōu)閮蓚€凸函數(shù)之差的形式;然后利用dca算法優(yōu)化dc規(guī)劃,以凸函數(shù)與一階線性函數(shù)之和的近似形式逼近凸差化的目標(biāo)函數(shù),根據(jù)對偶理論探討原問題和對偶問題的關(guān)系,微分并投影求得聚類算法的聚類中心和隸屬度矩陣;
(3)計算缺失數(shù)據(jù)項估計值
求得聚類中心和數(shù)據(jù)隸屬度后,將缺失數(shù)據(jù)項統(tǒng)一看作變量,記錄缺失項的行標(biāo)號和列標(biāo)號,利用拉格朗日乘子法和kkt條件求取最優(yōu)值,即對缺失項求目標(biāo)函數(shù)的導(dǎo)數(shù)并令其為零,可求得其最優(yōu)值,再以最優(yōu)的估計值更新缺失數(shù)據(jù)項;
(4)判斷結(jié)果是否收斂
對數(shù)據(jù)集中所有缺失數(shù)據(jù)項更新完成后,通過比較本次缺失數(shù)據(jù)估計值與上一次結(jié)果的誤差判斷算法是否收斂;若滿足算法收斂條件,即誤差小于給定閾值,當(dāng)前更新結(jié)果為算法執(zhí)行的最終結(jié)果;否則,更新缺失數(shù)據(jù)項為當(dāng)前求得的最優(yōu)值,重新進(jìn)行迭代求解過程直至滿足收斂條件。
本發(fā)明提供了一種基于dc規(guī)劃處理缺失數(shù)據(jù)的聚類方法,該方法采用聚類過程和缺失項填充過程的交替迭代處理,并提出在初始化階段由數(shù)據(jù)集中已知項平均值作為初始缺失值;然后采用kfcm算法對預(yù)處理后數(shù)據(jù)集聚類,針對聚類算法目標(biāo)函數(shù)的非凸性,采用dc規(guī)劃方法凸化聚類中心和隸屬度的可行域,凸差化算法的目標(biāo)函數(shù);采用dca算法優(yōu)化dc規(guī)劃問題,微分并投影求得聚類算法的聚類中心和隸屬度矩陣;再利用本次迭代聚類結(jié)果優(yōu)化求解缺失數(shù)據(jù)項的估計值,對缺失項求目標(biāo)函數(shù)的導(dǎo)數(shù)并令其為零得其最優(yōu)值;對所有數(shù)據(jù)中缺失值優(yōu)化求解后,比較本次缺失數(shù)據(jù)估計值與上一次結(jié)果的誤差,迭代上述過程直至滿足收斂條件。在與部分典型數(shù)據(jù)缺失處理方法的對比實驗中,本發(fā)明在聚類精度和時間性能等方面都表現(xiàn)出一定的優(yōu)越性,尤其是對大規(guī)模數(shù)據(jù)集的處理。
四、附圖說明
附圖1基于dc規(guī)劃處理缺失數(shù)據(jù)的聚類方法流程圖
附圖2基于dc規(guī)劃的kfcm算法流程圖
五、具體實施方式
下面將結(jié)合附圖對本發(fā)明的技術(shù)內(nèi)容作進(jìn)一步說明,本具體實施方式中實驗數(shù)據(jù)均來自uci標(biāo)準(zhǔn)數(shù)據(jù)庫中的真實數(shù)據(jù)集,并按比例進(jìn)行隨機缺省。
附圖1展示了本發(fā)明提到的基于dc規(guī)劃處理缺失數(shù)據(jù)的聚類方法的具體流程圖,包括如下步驟:
第一步,對數(shù)據(jù)集缺失項采用該特征的平均值進(jìn)行初始化處理。在算法初始化階段,由kfcm算法迭代計算五次得到相應(yīng)的初始聚類中心和初始隸屬度矩陣,由數(shù)據(jù)集中包含缺失項的某列特征計算已知項平均值作為初始缺失值。以kfcm算法初始化聚類中心和隸屬度矩陣,以缺失特征的平均值初始化缺失項數(shù)據(jù),減少了后續(xù)算法的迭代過程,加快了算法的運行速度。
第二步,采用核模糊c均值聚類算法(kfcm)對預(yù)處理后數(shù)據(jù)集聚類,并采用凸差(dc)方法對kfcm目標(biāo)函數(shù)進(jìn)行非凸規(guī)劃優(yōu)化,使最優(yōu)解盡可能跳出局部極值點的吸引域。
先對聚類中心和隸屬度的可行域分別進(jìn)行凸化,將可行域擴展為相應(yīng)的凸集;再對kfcm目標(biāo)函數(shù)進(jìn)行dc分解,將非凸目標(biāo)函數(shù)變?yōu)閮蓚€凸函數(shù)之差的形式;然后利用dca算法優(yōu)化dc規(guī)劃,以凸函數(shù)與一階線性函數(shù)之和的近似形式逼近凸差化的目標(biāo)函數(shù),根據(jù)對偶理論探討原問題和對偶問題的關(guān)系,微分并投影求得聚類算法的聚類中心和隸屬度矩陣。
dc規(guī)劃是非凸規(guī)劃的重要組成部分,已在經(jīng)濟、工程等領(lǐng)域有著廣泛的應(yīng)用。dc規(guī)劃存在眾多求解方法,大致可分為兩類:一類是基于組合優(yōu)化的算法(如分支定界方法,割平面法等等),目的是找出問題的全局最優(yōu)解,但計算量往往很大;第二類常用算法通常被稱為dca算法,和組合優(yōu)化方法不同,dca基于凸分析和對偶理論,通過探討原問題與對偶問題之間的相對關(guān)系來實現(xiàn)優(yōu)化,大大減少優(yōu)化過程的計算量。dca誕生于1997年,由tao與hoai提出并逐步完善。該算法一般用來優(yōu)化無約束dc規(guī)劃,能快速地搜索到問題的解,在處理大規(guī)模問題時較之組合優(yōu)化方法有很大的效率優(yōu)勢,故本方法選擇了dca對dc化的新算法進(jìn)行優(yōu)化求解,以期用盡可能小的計算代價來避免目標(biāo)函數(shù)的解得到極值點或鞍點。
dca算法的核心思想:根據(jù)dc規(guī)劃的局部最優(yōu)條件,將dc規(guī)劃問題轉(zhuǎn)換為求解序列{xk}和{yk}的收斂值(分別對應(yīng)于原問題和對偶問題)。在dca的第k次迭代過程中,先將函數(shù)h用其仿射形式逼近(相當(dāng)于求解
kfcm算法的目標(biāo)函數(shù)為:
分別對聚類中心和隸屬度的可行域空間進(jìn)行凸化,擴展得到其相應(yīng)的凸集合。再對kfcm算法的目標(biāo)函數(shù)進(jìn)行dc分解:
jm(t,v)=g(t,v)-h(t,v)
其中,函數(shù)g和h在凸可行域中均為凸函數(shù)。
采用dca來優(yōu)化上述最值問題,將問題轉(zhuǎn)化為凸函數(shù)與一階線性函數(shù)之和的形式,分別求聚類中心和隸屬度的次微分并分別投影到各自可行域空間中,得到本次迭代中聚類中心和隸屬度矩陣。附圖2展示了基于dc規(guī)劃的kfcm算法流程圖。
第三步,求得聚類中心和數(shù)據(jù)隸屬度后,將缺失數(shù)據(jù)項統(tǒng)一看作變量,記錄缺失項的行標(biāo)號和列標(biāo)號,利用拉格朗日乘子法和kkt條件求取最優(yōu)值,即對缺失項求目標(biāo)函數(shù)的導(dǎo)數(shù)并令其為零,可求得其最優(yōu)值,再以最優(yōu)的估計值更新缺失數(shù)據(jù)項。
記錄缺失項的行標(biāo)號和列標(biāo)號,對缺失項求導(dǎo)并令其為零,得到缺失項的計算公式:
其中,xkj是數(shù)據(jù)缺失項,vij和uik分別是上一步中得到的聚類中心和隸屬度。
第四步,判斷本次所有缺失數(shù)據(jù)優(yōu)化解與上一次缺失優(yōu)化解的差是否小于給定閾值,迭代更新第二、三步直至滿足收斂條件。對數(shù)據(jù)集中所有缺失數(shù)據(jù)項更新完成后,通過比較本次與上一次結(jié)果的誤差判斷算法是否收斂;若滿足算法收斂條件,即誤差小于給定閾值,當(dāng)前更新結(jié)果為算法執(zhí)行的最終結(jié)果;否則,更新缺失數(shù)據(jù)項為當(dāng)前求得的最優(yōu)值,重新進(jìn)行迭代求解過程。
為了驗證本發(fā)明提出的方法dckfcm的聚類有效性,結(jié)合本發(fā)明的實施方案進(jìn)行實驗分析,將dckfcm與五種重要的缺失數(shù)據(jù)處理算法,wds、pds、ocs、nps和kfcm對比。驗證數(shù)據(jù)集為uci標(biāo)準(zhǔn)數(shù)據(jù)集,如表1所示。
表1uci數(shù)據(jù)集描述
通過對比實驗的聚類精度結(jié)果可知,經(jīng)過dc規(guī)劃改進(jìn)后新算法的聚類性能得到了提升,尤其是對大規(guī)模數(shù)據(jù)集進(jìn)行處理時聚類精度有明顯提高,驗證了本發(fā)明提出的聚類方法有效。且根據(jù)已有的結(jié)果數(shù)據(jù)顯示,經(jīng)過dc規(guī)劃后的算法能縮短將近一半的運行時間。