
本發(fā)明屬于計(jì)算機(jī)數(shù)據(jù)處理
技術(shù)領(lǐng)域:
,更進(jìn)一步涉及數(shù)據(jù)聚類和離群點(diǎn)檢測(cè)
技術(shù)領(lǐng)域:
中一種基于多智能體進(jìn)化的聚類和離群點(diǎn)檢測(cè)方法。本發(fā)明采用多智能體進(jìn)化和局部離群點(diǎn)檢測(cè)的技術(shù),有利于提高聚類劃分和離群點(diǎn)檢測(cè)精度。本發(fā)明可用于自然數(shù)據(jù)的聚類和離群點(diǎn)檢測(cè)。
背景技術(shù):
:離群點(diǎn)檢測(cè)和聚類分析是數(shù)據(jù)挖掘和知識(shí)發(fā)現(xiàn)的一個(gè)重要研究領(lǐng)域。在實(shí)際應(yīng)用中,離群點(diǎn)檢測(cè)被廣泛地應(yīng)用到各個(gè)領(lǐng)域,如欺騙信用卡檢測(cè)、侵入檢測(cè)、網(wǎng)絡(luò)和視頻監(jiān)控、天氣預(yù)報(bào)。離群點(diǎn)的本質(zhì)是由不同于一般的機(jī)制原理生成的現(xiàn)象,也被叫為異常點(diǎn)、孤立點(diǎn)。離群點(diǎn)檢測(cè)在實(shí)際用中往往比一般數(shù)據(jù)檢測(cè)更有價(jià)值,例如在機(jī)器故障檢測(cè),醫(yī)療診斷,欺詐檢測(cè),通常出現(xiàn)異常現(xiàn)象的數(shù)據(jù)點(diǎn)較少,正常運(yùn)行的數(shù)據(jù)點(diǎn)較多。目前,離群點(diǎn)挖掘作為數(shù)據(jù)挖掘的一個(gè)熱門研究方向,已經(jīng)引起了很多學(xué)者的關(guān)注。錢光超,賈瑞玉,張然和李龍澍在其發(fā)表的論文“基于遺傳聚類算法的離群點(diǎn)檢測(cè)”(工程優(yōu)化與應(yīng)用1002-833(2008)11-0155-03)中提出了一種基于遺傳聚類的離群點(diǎn)檢測(cè)算法。該方法的核心是結(jié)合了遺傳算法全局搜索的優(yōu)點(diǎn)和K-均值方法具有局部收斂速度快的特點(diǎn)。具體的做法是首先聚類所有數(shù)據(jù)點(diǎn),然后評(píng)估每個(gè)對(duì)象屬于簇的程度,如果刪除一個(gè)對(duì)象導(dǎo)致該目標(biāo)的顯著改進(jìn),則可將該對(duì)象劃為離群點(diǎn)。該方法存在的不足之處是:遺傳算法容易陷入局部最優(yōu)的情況,使得最終的劃分解并不是最優(yōu)解,穩(wěn)定性不高。張強(qiáng),王春霞,趙健,武龍舉和李靜永在其發(fā)表的論文“基于聚類和局部信息的離群點(diǎn)檢測(cè)算法”(吉林大學(xué)學(xué)報(bào)章編號(hào):1671-5489(2012)06-1214-04)中提出了一種基于聚類和局部信息的兩階段離群點(diǎn)檢測(cè)算法。該方法通過(guò)定義新的局部離群因子作為判斷數(shù)據(jù)對(duì)象是否為離群點(diǎn)的衡量標(biāo)準(zhǔn)。具體的做法是:先采用k-means聚類算法對(duì)數(shù)據(jù)集進(jìn)行聚類的到k個(gè)簇;然后對(duì)每個(gè)簇進(jìn)行分析,找出離群點(diǎn)。每個(gè)離群點(diǎn)的確定方法是先通過(guò)計(jì)算簇中各關(guān)節(jié)點(diǎn)的局部離群因子,并記錄每個(gè)簇中離群因子值最大的一個(gè),再?gòu)拇刂袆h除,然后重新計(jì)算直到離群點(diǎn)的個(gè)數(shù)達(dá)到指定個(gè)數(shù)離群點(diǎn)為止。該方法采用k-means聚類算法對(duì)數(shù)據(jù)集進(jìn)行聚類,雖然k-means算法比較簡(jiǎn)單,但是,該方法仍然存在的不足之處是,劃分?jǐn)?shù)據(jù)效率不高,收斂速度慢;一旦某個(gè)數(shù)據(jù)點(diǎn)被認(rèn)為是離群點(diǎn)就不能在下一代執(zhí)行,導(dǎo)致該算法準(zhǔn)確率降低。LianDuan,LidaXu,YingLiu和JunLee在其發(fā)表的論文“Cluster-basedoutlierdetection”(SpringerScience&BusinessMedia,pp.151-168,2009)中提出了一種基于聚類的離群點(diǎn)檢測(cè)算法。該方法采用LDBSCAN算法進(jìn)行聚類和LOF算法檢測(cè)離群點(diǎn)。具體的做法是:先采用LDBSCAN算法進(jìn)行聚類,然后進(jìn)行計(jì)算每個(gè)對(duì)象的基于聚類利群因子,一個(gè)被認(rèn)為是一個(gè)離群點(diǎn)僅當(dāng)它偏離它的最近的鄰域點(diǎn)。該方法存在的不足之處是,在算法中,參數(shù)需要有經(jīng)驗(yàn)的研究者設(shè)置,計(jì)算量比較高(N×N),使得算法執(zhí)行時(shí)間長(zhǎng),效率不高。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的在于克服上述已有技術(shù)的不足,提出一種基于多智能體進(jìn)化的聚類和離群點(diǎn)檢測(cè)方法,以提高離群點(diǎn)檢測(cè)的精度,減少計(jì)算時(shí)間,同時(shí)改善數(shù)據(jù)聚類的效率。實(shí)現(xiàn)本發(fā)明目的的具體思路是:利用多智能體進(jìn)化算法和K-means聚類算法對(duì)輸入數(shù)據(jù)集進(jìn)行聚類。從多智能體網(wǎng)格中找到最優(yōu)的智能體,根據(jù)最優(yōu)智能體中所分配的類,再利用局部離群程度計(jì)算方法計(jì)算數(shù)據(jù)點(diǎn)的離群程度值。實(shí)現(xiàn)本發(fā)明目的的具體步驟如下:(1)初始化:(1a)從待檢測(cè)數(shù)據(jù)集中隨機(jī)選擇滿足智能體的聚類個(gè)數(shù),對(duì)網(wǎng)格中的每個(gè)智能體進(jìn)行實(shí)數(shù)編碼,每個(gè)智能體代表一條染色體,每個(gè)聚類中心的位置代表一個(gè)基因,完成網(wǎng)格的初始化;(1b)將待檢測(cè)數(shù)據(jù)集中的所有點(diǎn)設(shè)定為非離群點(diǎn);(1c)將離群點(diǎn)數(shù)據(jù)集設(shè)定為空集;(1d)將初次迭代次數(shù)設(shè)定為0,最大迭代次數(shù)設(shè)定為100;(2)對(duì)每個(gè)智能體執(zhí)行K-means聚類算法:(2a)從待檢測(cè)數(shù)據(jù)集中任選一個(gè)點(diǎn)作為待計(jì)算點(diǎn);(2b)利用歐式距離公式,計(jì)算待計(jì)算點(diǎn)到每一個(gè)聚類中心的距離;(2c)將每一個(gè)待檢測(cè)數(shù)據(jù)集中的點(diǎn),分配到與聚類中心距離最近的類;(2d)判斷是否選完待檢測(cè)數(shù)據(jù)集中所有的點(diǎn),若是,執(zhí)行步驟(3),否則,則執(zhí)行步驟(2a);(3)計(jì)算智能體的能量:(3a)按照適應(yīng)度計(jì)算公式,計(jì)算每個(gè)智能體的適應(yīng)度值,將每個(gè)智能體的適應(yīng)度值作為該智能體的能量;(3b)將網(wǎng)格上搜索到能量最大的智能體,作為全局最優(yōu)智能體;(4)執(zhí)行鄰域競(jìng)爭(zhēng)算子:(4a)利用智能體更新方法,對(duì)網(wǎng)格中的每個(gè)智能體進(jìn)行更新,獲得新的智能體;(4b)將新的智能體的能量和周圍能量最大的智能體的能量進(jìn)行比較,用二者中能量大的智能體代替原來(lái)的智能體;(5)執(zhí)行鄰域交叉算子:對(duì)網(wǎng)格中的每個(gè)智能體執(zhí)行鄰域交叉算子,獲得鄰域交叉后的智能體;(6)執(zhí)行變異算子:對(duì)網(wǎng)格中的每個(gè)智能體執(zhí)行變異算子,獲得變異后的智能體;(7)執(zhí)行K-means聚類算法:(7a)從鄰域交叉后的智能體和變異后的智能體任選一個(gè)智能體,作為待聚類的智能體;(7b)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到待聚類的智能體中每一個(gè)聚類中心的距離;(7c)將每一個(gè)非離群點(diǎn)分配到該點(diǎn)與待聚類的智能體的聚類中心距離最近的類;(7d)利用適應(yīng)度計(jì)算公式,計(jì)算待聚類的智能體的能量;(7e)判斷是否選完所有鄰域交叉后的智能體和變異后的智能體,若是,執(zhí)行步驟(8),否則,執(zhí)行步驟(7a);(8)執(zhí)行自學(xué)習(xí)算子:(8a)從當(dāng)前網(wǎng)格中找出能量最大的智能體,作為當(dāng)前最優(yōu)智能體;(8b)將自學(xué)習(xí)算子的初次迭代次數(shù)設(shè)定為0;(8c)利用智能體更新方法,對(duì)當(dāng)前最優(yōu)智能體進(jìn)行更新,得到臨時(shí)最優(yōu)智能體;(8d)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到臨時(shí)最優(yōu)智能體中每一個(gè)聚類中心的距離;(8e)將每一個(gè)非離群點(diǎn)分配到該點(diǎn)與臨時(shí)最優(yōu)智能體的聚類中心距離最近的類;(8f)利用適應(yīng)度計(jì)算公式,計(jì)算臨時(shí)最優(yōu)智能體的能量;(8g)將臨時(shí)最優(yōu)的智能體賦予當(dāng)前最優(yōu)智能體;(8h)判斷當(dāng)前自學(xué)習(xí)算子的迭代次數(shù)是否大于10,若是,則執(zhí)行步驟(8k),否則,執(zhí)行步驟(8j);(8j)將自學(xué)習(xí)算子的迭代次數(shù)加1,執(zhí)行步驟(8c);(8k)輸出當(dāng)前最優(yōu)智能體;(9)更新全局最優(yōu)智能體:(9a)將當(dāng)前最優(yōu)智能體和全局最優(yōu)智能體能量大的智能體賦予臨時(shí)全局最優(yōu)智能體;(9b)將臨時(shí)全局最優(yōu)的智能體賦予全局最優(yōu)的智能體,作為下一代的全局最優(yōu)智能體;(9d)將所有待檢測(cè)的數(shù)據(jù)點(diǎn)設(shè)定為非離群點(diǎn);(9e)清空離群點(diǎn)數(shù)據(jù)集;(9f)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到全局最優(yōu)智能體中聚類中心的距離;(9g)根據(jù)全局最優(yōu)智能體中聚類的中心位置,將每一個(gè)非離群點(diǎn)分配到與全局最優(yōu)智能體中聚類中心距離最近的類;(10)檢測(cè)離群點(diǎn):(10a)采用局部離群程度計(jì)算方法,計(jì)算全局最優(yōu)智能體中的聚類中的每一個(gè)點(diǎn)的局部離群程度值;(10b)將全局最優(yōu)智能體中的聚類中的每一個(gè)帶類別和局部離群程度值的點(diǎn)存入到臨時(shí)待排序數(shù)據(jù)集中;(10c)將臨時(shí)待排序數(shù)據(jù)集中的點(diǎn)的局部離群程度值,按從大到小的順序進(jìn)行排序;(10d)根據(jù)待檢測(cè)數(shù)據(jù)集中的離群點(diǎn)的個(gè)數(shù),將臨時(shí)待排序數(shù)據(jù)集中的排在最前的相應(yīng)的離群點(diǎn)的個(gè)數(shù)標(biāo)注為離群點(diǎn),并存入離群點(diǎn)數(shù)據(jù)集中;(11)判斷當(dāng)前的迭代次數(shù)是否大于最大迭代次數(shù),若是,則執(zhí)行步驟(12),否則執(zhí)行步驟(4);(12)輸出離群點(diǎn)數(shù)據(jù)集中的離群點(diǎn)數(shù)據(jù);(13)將臨時(shí)數(shù)據(jù)集中未標(biāo)注離群點(diǎn)的點(diǎn)按照類別輸出。本發(fā)明與現(xiàn)有方法相比具有如下優(yōu)點(diǎn)。第1,由于本發(fā)明引入了自學(xué)習(xí)算子和鄰域競(jìng)爭(zhēng)算子,兩個(gè)算子是多智能體進(jìn)化算法的主要操作,具有快速搜索的特性,克服了現(xiàn)有技術(shù)應(yīng)用于聚類時(shí),遺傳聚類算法搜索速度慢,容易陷入局部最優(yōu)的問(wèn)題,使得本發(fā)明提高了數(shù)據(jù)聚類的效率。第2,由于本發(fā)明引入了局部離群程度計(jì)算方法,在局部待檢測(cè)點(diǎn)的類內(nèi)計(jì)算離群點(diǎn)的局部離群程度值,作為離群點(diǎn)的衡量標(biāo)準(zhǔn)。該方法使用權(quán)值和鄰域點(diǎn)的密度計(jì)算待檢測(cè)離群點(diǎn)的局部離群程度值,從而克服了現(xiàn)有技術(shù)只計(jì)算鄰域點(diǎn)的密度,并在整個(gè)待檢測(cè)數(shù)據(jù)集中進(jìn)行搜索待檢測(cè)點(diǎn)的鄰域密度,計(jì)算時(shí)間長(zhǎng),對(duì)數(shù)據(jù)不均勻有影響的問(wèn)題,使得本發(fā)明能在不同的密度的數(shù)據(jù)集中具有高精度的離群點(diǎn)檢測(cè),減少計(jì)算時(shí)間,降低離群點(diǎn)檢測(cè)的成本。附圖說(shuō)明圖1為本發(fā)明的流程圖。具體實(shí)施方式下面結(jié)合附圖1,對(duì)本發(fā)明實(shí)現(xiàn)的步驟作進(jìn)一步的詳細(xì)描述。步驟1,初始化。從待檢測(cè)數(shù)據(jù)集中隨機(jī)選擇滿足智能體的聚類個(gè)數(shù),對(duì)網(wǎng)格中的每個(gè)智能體進(jìn)行實(shí)數(shù)編碼,每個(gè)智能體代表一條染色體,每個(gè)聚類中心的位置代表一個(gè)基因,完成網(wǎng)格的初始化。所述的智能體代表一個(gè)待輸出的解,每一個(gè)待輸出的解包含所標(biāo)注為離群點(diǎn)的數(shù)據(jù)點(diǎn)和帶類別的數(shù)據(jù)點(diǎn)。將待檢測(cè)數(shù)據(jù)集中的所有點(diǎn)設(shè)定為非離群點(diǎn)。將離群點(diǎn)數(shù)據(jù)集設(shè)定為空集。將初次迭代次數(shù)設(shè)定為0,最大迭代次數(shù)設(shè)定為100。步驟2,對(duì)每個(gè)智能體執(zhí)行K-means聚類算法。(2a)從待檢測(cè)數(shù)據(jù)集中任選一個(gè)點(diǎn)作為待計(jì)算點(diǎn)。(2b)利用歐式距離公式,計(jì)算待計(jì)算點(diǎn)到每一個(gè)聚類中心的距離。(2c)將每一個(gè)待檢測(cè)數(shù)據(jù)集中的點(diǎn),分配到與聚類中心距離最近的類。(2d)判斷是否選完待檢測(cè)數(shù)據(jù)集中所有的點(diǎn),若是,執(zhí)行步驟3,否則,則執(zhí)行步驟(2a)。步驟3,計(jì)算智能體的能量:按照適應(yīng)度計(jì)算公式,計(jì)算每個(gè)智能體的適應(yīng)度值,將每個(gè)智能體的適應(yīng)度值作為該智能體的能量。所述的適應(yīng)度計(jì)算公式如下:其中,F(xiàn)表示智能體的適應(yīng)度值,K表示聚類個(gè)數(shù),N表示輸入數(shù)據(jù)個(gè)數(shù),p表示輸入待檢測(cè)數(shù)據(jù)點(diǎn),Ci表示第i個(gè)聚類,mi表示第i個(gè)聚類中心位置,i∈[1,K],Dis(·)表示歐式距離操作。將網(wǎng)格上搜索到能量最大的智能體,作為全局最優(yōu)智能體;步驟4,執(zhí)行鄰域競(jìng)爭(zhēng)算子。(4a)利用智能體更新方法,對(duì)網(wǎng)格中的每個(gè)智能體進(jìn)行更新,獲得新的智能體。所述的智能體更新方法的具體步驟如下:第1步,將鄰域競(jìng)爭(zhēng)概率設(shè)定為0.2。第2步,判斷鄰域競(jìng)爭(zhēng)的概率是否大于從0到1的隨機(jī)生成數(shù),若是,則執(zhí)行第3步,否則,執(zhí)行第4步。第3步,按照下式,更新智能體中聚類中心位置:L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|其中,P表示智能體L中聚類中心的位置,k表示智能體L中的第k個(gè)聚類,k∈[1,K],K表示聚類個(gè)數(shù),←表示將右邊的每一個(gè)維數(shù)的值賦予左邊每一維數(shù)的值的操作,rand(-1,1)表示從-1到1的隨機(jī)生成數(shù),LN表示智能體L的鄰域最大能量的智能體,|·|表示絕對(duì)值操作。第4步,輸出鄰域競(jìng)爭(zhēng)后的智能體。(4b)將新的智能體的能量和周圍能量最大的智能體的能量進(jìn)行比較,用二者中能量大的智能體代替原來(lái)的智能體。步驟5,執(zhí)行鄰域交叉算子。對(duì)網(wǎng)格中的每個(gè)智能體執(zhí)行鄰域交叉算子,獲得鄰域交叉后的智能體。所述的網(wǎng)格中的每個(gè)智能體執(zhí)行鄰域交叉算子的具體步驟如下:第1步,將鄰域交叉概率設(shè)定為0.9。第2步,判斷鄰域交叉的概率是否大于從0到1的隨機(jī)生成數(shù),若是,則執(zhí)行第3步,否則,執(zhí)行第4步。第3步,按照下式,更新智能體中聚類中心位置:L.P[k]←Min(L.P[k],LN.P[k])+rand(0,1)×|LN.P[k]-L.P[k]|其中,P表示智能體L的聚類中心的位置,k表示智能體L中的第k個(gè)聚類,k∈[1,K],K表示聚類個(gè)數(shù),←表示將右邊的每一個(gè)維數(shù)的值賦予左邊每一維數(shù)的值的操作,Min(·)表示最小值操作,rand(0,1)表示從0到1的隨機(jī)生成數(shù),LN表示L的鄰域最大能量的智能體,|·|表示絕對(duì)值操作。步驟6,執(zhí)行變異算子。對(duì)網(wǎng)格中的每個(gè)智能體執(zhí)行變異算子,獲得變異后的智能體。所述的對(duì)網(wǎng)格中的每個(gè)智能體執(zhí)行變異算子的具體步驟如下:第1步,將變異概率設(shè)定為0.1。第2步,判斷變異的概率是否大于從0到1的隨機(jī)生成數(shù),若是,則執(zhí)行第3步,否則,執(zhí)行第4步。第3步,按照下式,更新智能體中聚類中心位置:L.P[k]←L.P[k]+G(0,1.0/t)其中,P表示智能體L聚類中心的位置,k表示智能體L中的第k個(gè)聚類,k∈[1,K],K表示聚類個(gè)數(shù),←表示將右邊的每一個(gè)維數(shù)的值賦予左邊每一維數(shù)的值的操作,G(·)表示高斯函數(shù)操作,t是當(dāng)前的迭代次數(shù),t∈[0,T],T表示最大迭代次數(shù)。第4步,輸出變異后的智能體。步驟7,執(zhí)行K-means聚類算法。(7a)從鄰域交叉后的智能體和變異后的智能體任選一個(gè)智能體,作為待聚類的智能體。(7b)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到待聚類的智能體中每一個(gè)聚類中心的距離。(7c)將每一個(gè)非離群點(diǎn)分配到該點(diǎn)與待聚類的智能體的聚類中心距離最近的類。(7d)利用適應(yīng)度計(jì)算公式,計(jì)算待聚類的智能體的能量。所述的適應(yīng)度計(jì)算公式如下:其中,F(xiàn)表示智能體的適應(yīng)度值,K表示聚類個(gè)數(shù),N表示輸入數(shù)據(jù)個(gè)數(shù),p表示輸入待檢測(cè)數(shù)據(jù)點(diǎn),Ci表示第i個(gè)聚類,mi表示第i個(gè)聚類中心位置,i∈[1,K],Dis(·)表示歐式距離操作。(7e)判斷是否選完所有鄰域交叉后的智能體和變異后的智能體,若是,執(zhí)行步驟8,否則,執(zhí)行步驟(7a)。步驟8,執(zhí)行自學(xué)習(xí)算子。(8a)從當(dāng)前網(wǎng)格中找出能量最大的智能體,作為當(dāng)前最優(yōu)智能體。(8b)將自學(xué)習(xí)算子的初次迭代次數(shù)設(shè)定為0。(8c)利用智能體更新方法,對(duì)當(dāng)前最優(yōu)智能體進(jìn)行更新,得到臨時(shí)最優(yōu)智能體。所述的更新智能體方法的具體步驟如下:第1步,按照下式,更新當(dāng)前最優(yōu)智能體中聚類中心位置:L.P[k]←L.P[k]+rand(-1,1)×|LN.P[k]-L.P[k]|其中,P表示當(dāng)前最優(yōu)智能體L中聚類中心的位置,k表示當(dāng)前最優(yōu)智能體L中的第k個(gè)聚類,k∈[1,K],K表示聚類個(gè)數(shù),←表示將右邊的每一個(gè)維數(shù)的值賦予左邊每一維數(shù)的值的操作,rand(-1,1)表示從-1到1的隨機(jī)生成數(shù),LN表示當(dāng)前最優(yōu)智能體L的鄰域最大能量的智能體,|·|表示絕對(duì)值操作。第2步,按照下式,更新智能體中聚類中心位置:L.P[k]←L.P[k]+G(0,1.0/t)其中,P表示當(dāng)前最優(yōu)智能體L中聚類中心的位置,k表示當(dāng)前最優(yōu)智能體L中的第k個(gè)聚類,k∈[1,K],K表示聚類個(gè)數(shù),←表示將右邊的每一個(gè)維數(shù)的值賦予左邊每一維數(shù)的值的操作,G(·)表示高斯函數(shù)操作,t是當(dāng)前的迭代次數(shù),t∈[0,T],T表示最大迭代次數(shù)。第3步,輸出臨時(shí)最優(yōu)智能體。(8d)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到臨時(shí)最優(yōu)智能體中每一個(gè)聚類中心的距離。(8e)將每一個(gè)非離群點(diǎn)分配到該點(diǎn)與臨時(shí)最優(yōu)智能體的聚類中心距離最近的類。(8f)利用適應(yīng)度計(jì)算公式,計(jì)算臨時(shí)最優(yōu)智能體的能量。所述的適應(yīng)度計(jì)算公式如下:其中,F(xiàn)表示智能體的適應(yīng)度值,K表示聚類個(gè)數(shù),N表示輸入數(shù)據(jù)個(gè)數(shù),p表示輸入待檢測(cè)數(shù)據(jù)點(diǎn),Ci表示第i個(gè)聚類,mi表示第i個(gè)聚類中心位置,i∈[1,K],Dis(·)表示歐式距離操作。(8g)將臨時(shí)最優(yōu)的智能體賦予當(dāng)前最優(yōu)智能體。(8h)判斷當(dāng)前自學(xué)習(xí)算子的迭代次數(shù)是否大于10,若是,則執(zhí)行步驟(8k),否則,執(zhí)行步驟(8j)。(8j)將自學(xué)習(xí)算子的迭代次數(shù)加1,執(zhí)行步驟(8c)。(8k)輸出當(dāng)前最優(yōu)智能體。步驟9,更新全局最優(yōu)智能體。(9a)將當(dāng)前最優(yōu)智能體和全局最優(yōu)智能體能量大的智能體賦予臨時(shí)全局最優(yōu)智能體。(9b)將臨時(shí)全局最優(yōu)的智能體賦予全局最優(yōu)的智能體,作為下一代的全局最優(yōu)智能體。(9d)將所有待檢測(cè)的數(shù)據(jù)點(diǎn)設(shè)定為非離群點(diǎn)。(9e)清空離群點(diǎn)數(shù)據(jù)集。(9f)利用歐式距離公式,計(jì)算每一個(gè)非離群點(diǎn)到全局最優(yōu)智能體中聚類中心的距離。(9g)根據(jù)全局最優(yōu)智能體中聚類的中心位置,將每一個(gè)非離群點(diǎn)分配到與全局最優(yōu)智能體中聚類中心距離最近的類。步驟10,檢測(cè)離群點(diǎn)。(10a)采用局部離群程度計(jì)算方法,計(jì)算全局最優(yōu)智能體中的聚類中的每一個(gè)點(diǎn)的局部離群程度值。所述的局部離群程度計(jì)算方法的具體步驟如下:第1步,從待計(jì)算的全局最優(yōu)智能體中的聚類中任選一個(gè)點(diǎn)。第2步,設(shè)定一個(gè)空的臨時(shí)數(shù)據(jù)集。第3步,搜索所選的點(diǎn)所在類內(nèi)的所有數(shù)據(jù)點(diǎn),并將所搜索的所有數(shù)據(jù)點(diǎn)存入臨時(shí)數(shù)據(jù)集中。第4步,在臨時(shí)數(shù)據(jù)集中搜索出與所選點(diǎn)鄰近的10個(gè)數(shù)據(jù)點(diǎn),組成一個(gè)鄰近數(shù)據(jù)集。第5步,在鄰近數(shù)據(jù)集中,將離所選點(diǎn)最遠(yuǎn)的距離設(shè)定為k距離。第6步,在臨時(shí)數(shù)據(jù)集中,將離所選點(diǎn)的距離小于k距離的所有點(diǎn)設(shè)定為所選點(diǎn)的最鄰近集。第7步,從最鄰近集中任選一個(gè)點(diǎn),作為待計(jì)算權(quán)重點(diǎn)。第8步,按照下式,計(jì)算待計(jì)算權(quán)重點(diǎn)的權(quán)重值:其中,Wq(p)表示待計(jì)算點(diǎn)p對(duì)最鄰近集中的點(diǎn)q的權(quán)重值,Dis(·)表示歐式距離操作,Disk(p)表示最鄰近集數(shù)據(jù)個(gè)數(shù)為k的待計(jì)算點(diǎn)p的k距離;第9步,判斷是否所有最鄰近集中的點(diǎn)都選完,若是,則執(zhí)行第10步,否則,執(zhí)行第7步。第10步,按照下式,計(jì)算所選點(diǎn)的局部密度值:其中,LDk(p)表示最鄰近集的數(shù)據(jù)個(gè)數(shù)為k的所選點(diǎn)p的局部密度值,Nk(p)表示最鄰近集的數(shù)據(jù)個(gè)數(shù)為k的所選點(diǎn)p的k最鄰近集,|·|表示數(shù)據(jù)集的總數(shù),Dis(·)表示歐式距離操作。第11步,判斷所有待計(jì)算的全局最優(yōu)智能體中的聚類中的點(diǎn)是否都選完,若是,則執(zhí)行第12步,否則,執(zhí)行第1步。第12步,從待計(jì)算的全局最優(yōu)智能體中的聚類中的點(diǎn)任選一個(gè)點(diǎn)。第13步,按照下式,計(jì)算所選點(diǎn)的最鄰近平均密度值:其中,NAk(p)表示最鄰近集的數(shù)據(jù)個(gè)數(shù)為k的所選點(diǎn)p的最鄰近平均密度值,Nk(p)表示最鄰近集的數(shù)據(jù)個(gè)數(shù)為k的所選點(diǎn)p的最鄰近集,|·|表示數(shù)據(jù)集的總數(shù),LDk(q)表示最鄰近集中的點(diǎn)q的局部密度值,Wq(p)表示所選點(diǎn)p對(duì)最鄰近集中的點(diǎn)q的權(quán)重值。第14步,按照下式,計(jì)算所選點(diǎn)的局部離群程度:其中,INODk(p)表示最鄰近集的數(shù)據(jù)個(gè)數(shù)為k的所選點(diǎn)p的局部離群點(diǎn)程度值,NAk(p)表示所選點(diǎn)p的最鄰近的平均密度,LDk(p)表示所選點(diǎn)p的局部密度。第15步,判斷所選的數(shù)據(jù)個(gè)數(shù)是否大于待檢測(cè)數(shù)據(jù)集的個(gè)數(shù),若是,則執(zhí)行第16步,否則,執(zhí)行第12步。第16步,獲得所有全局最優(yōu)智能體中的聚類中帶局部離群程度值的點(diǎn)。(10b)將全局最優(yōu)智能體中的聚類中的每一個(gè)帶類別和局部離群程度值的點(diǎn)存入到臨時(shí)待排序數(shù)據(jù)集中。(10c)將臨時(shí)待排序數(shù)據(jù)集中的點(diǎn)的局部離群程度值,按從大到小的順序進(jìn)行排序。(10d)根據(jù)待檢測(cè)數(shù)據(jù)集中的離群點(diǎn)的個(gè)數(shù),將臨時(shí)待排序數(shù)據(jù)集中的排在最前的相應(yīng)的離群點(diǎn)的個(gè)數(shù)標(biāo)注為離群點(diǎn),并存入離群點(diǎn)數(shù)據(jù)集中。步驟11,判斷當(dāng)前的迭代次數(shù)是否大于最大迭代次數(shù),若是,則執(zhí)行步驟12,否則執(zhí)行步驟4。步驟12,輸出離群點(diǎn)數(shù)據(jù)集中的離群點(diǎn)數(shù)據(jù)。步驟13,將臨時(shí)數(shù)據(jù)集中未標(biāo)注離群點(diǎn)的點(diǎn)按照類別輸出。本發(fā)明的效果可以通過(guò)以下仿真實(shí)驗(yàn)做進(jìn)一步的說(shuō)明。1.仿真條件:本發(fā)明的仿真實(shí)驗(yàn)是在CPU為Core(TM)i3-41603.6GHZ、內(nèi)存8G、WINDOWS10系統(tǒng)上使用VisualStudio2015平臺(tái)進(jìn)行的。2.仿真內(nèi)容:本發(fā)明的聚類仿真實(shí)驗(yàn)是對(duì)3個(gè)實(shí)際生活中的數(shù)據(jù)集和1個(gè)合成數(shù)據(jù)集,仿真實(shí)驗(yàn)中的數(shù)據(jù)集如下表1所示:表1.實(shí)驗(yàn)所選用待進(jìn)行聚類仿真的數(shù)據(jù)集一覽表數(shù)據(jù)集數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)維數(shù)個(gè)數(shù)聚類個(gè)數(shù)Seed21073BreastCancer68392Wine178133人工數(shù)據(jù)78827表1中Seed數(shù)據(jù)集是針對(duì)210個(gè)數(shù)據(jù),7個(gè)維數(shù),3個(gè)聚類的數(shù)據(jù)集,BreastCancer是針對(duì)683個(gè)數(shù)據(jù),9個(gè)維數(shù),2個(gè)聚類的數(shù)據(jù)集,Wine數(shù)據(jù)集是針對(duì)178數(shù)據(jù),13個(gè)維數(shù),3個(gè)聚類的數(shù)據(jù)集,人工數(shù)據(jù)集是針對(duì)788個(gè)數(shù)據(jù),2個(gè)維數(shù),7個(gè)聚類的數(shù)據(jù)集。Seed是植物種子數(shù)據(jù)集,Wine是酒數(shù)據(jù)集,BreastCancer是乳癌數(shù)據(jù)集。Seed,Wine,BreastCancer都是機(jī)器學(xué)習(xí)數(shù)據(jù)集。本發(fā)明的離群點(diǎn)檢測(cè)仿真實(shí)驗(yàn)是對(duì)3個(gè)實(shí)際生活中的數(shù)據(jù)集和1個(gè)合成數(shù)據(jù)集,仿真實(shí)驗(yàn)中的數(shù)據(jù)集如下表2所示。表2中Iris數(shù)據(jù)集是針對(duì)120個(gè)數(shù)據(jù),4個(gè)維數(shù),20個(gè)離群點(diǎn)的數(shù)據(jù)集,BreastCancer數(shù)據(jù)集是針對(duì)557個(gè)數(shù)據(jù),30個(gè)維數(shù),200個(gè)離群點(diǎn)的數(shù)據(jù)集,Wine數(shù)據(jù)集是對(duì)139個(gè)數(shù)據(jù),13個(gè)維數(shù),20個(gè)離群點(diǎn)的數(shù)據(jù)集,人工數(shù)據(jù)集是針對(duì)700個(gè)數(shù)據(jù),2個(gè)維數(shù),50個(gè)離群點(diǎn)的數(shù)據(jù)集。Iris是鳶尾屬植物數(shù)據(jù)集,BreastCancer是乳癌數(shù)據(jù)集,Wine是酒數(shù)據(jù)集。Iris,BreastCancer,Wine都是機(jī)器學(xué)習(xí)數(shù)據(jù)集。表2.實(shí)驗(yàn)所選用待進(jìn)行仿真離群點(diǎn)檢測(cè)的數(shù)據(jù)集一覽表數(shù)據(jù)集數(shù)據(jù)個(gè)數(shù)數(shù)據(jù)維數(shù)個(gè)數(shù)離群點(diǎn)個(gè)數(shù)Iris120420BreastCancer55730200Wine1391320人工數(shù)據(jù)7002502.仿真結(jié)果分析:本發(fā)明的仿真實(shí)驗(yàn)采用基于多智能體進(jìn)化的聚類和離群點(diǎn)檢測(cè)方法針對(duì)3個(gè)實(shí)際生活中和一個(gè)合成數(shù)據(jù)集進(jìn)行仿真??紤]到算法的隨機(jī)性,求解問(wèn)題集中的每個(gè)問(wèn)題時(shí),重復(fù)運(yùn)行10次,其測(cè)試結(jié)果如表3所示,每個(gè)問(wèn)題運(yùn)行一次時(shí)的聚類質(zhì)量用純度和算法運(yùn)行時(shí)間評(píng)估。純度的計(jì)算方式如下:其中,第r個(gè)聚類的純凈度nr表示聚類r中的數(shù)據(jù)個(gè)數(shù),n表示輸入的數(shù)據(jù)個(gè)數(shù)。為了說(shuō)明本發(fā)明的算法的聚類質(zhì)量,下面將本發(fā)明針對(duì)三個(gè)實(shí)際生活中和一個(gè)合成數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)仿真,并與已有的遺傳聚類算法和粒子群聚類算法進(jìn)行比較,比較的結(jié)果如表3所示。從表3中的數(shù)據(jù)可以看出,本發(fā)明的算法的聚類效率優(yōu)于遺傳聚類和粒子群聚類算法。對(duì)于Seed數(shù)據(jù)集,本發(fā)明所劃分?jǐn)?shù)據(jù)的純凈度達(dá)到最優(yōu),而粒子群聚類算法雖然執(zhí)行時(shí)間比本發(fā)明的算法要快,但是劃分?jǐn)?shù)據(jù)的純凈度低于本發(fā)明的算法。對(duì)于其他數(shù)據(jù)集,本發(fā)明所劃分?jǐn)?shù)據(jù)的純凈度和其他聚類算法差別不大,但是數(shù)據(jù)劃分所用的時(shí)間低于遺傳聚類和粒子群聚類。表3.三種聚類實(shí)驗(yàn)仿真方法的結(jié)果對(duì)比一覽表本發(fā)明的算法對(duì)離群點(diǎn)檢測(cè)在實(shí)驗(yàn)中用兩組數(shù)據(jù)集來(lái)評(píng)價(jià)檢測(cè)離群點(diǎn)的精度。實(shí)際生活中的數(shù)據(jù)集和人工數(shù)據(jù)集,并且對(duì)本發(fā)明的算法的性能和4個(gè)典型的離群點(diǎn)檢測(cè)方法進(jìn)行實(shí)驗(yàn)仿真對(duì)比,如表4所示:表4.五種離群點(diǎn)檢測(cè)實(shí)驗(yàn)仿真的結(jié)果對(duì)比表表4中,IGA表示基于遺傳的離群點(diǎn)檢測(cè)方法,LDOF表示局部離群度量方法,LOF表示局部離群因子檢測(cè)方法,LIC表示基于系數(shù)的局部離群點(diǎn)檢測(cè)方法。從表4中的數(shù)據(jù)可以看出,本發(fā)明的算法檢測(cè)離群點(diǎn)的精度優(yōu)于其他離群點(diǎn)檢測(cè)方法。對(duì)于局部離群度量方法,局部離群因子檢測(cè)方法和基于系數(shù)的局部離群點(diǎn)檢測(cè)方法在試驗(yàn)中執(zhí)行時(shí)間小于本發(fā)明的算法,但是檢測(cè)離群點(diǎn)的精度明顯低于本發(fā)明的算法。當(dāng)前第1頁(yè)1 2 3