本發(fā)明提出一種自適應(yīng)核k-means方法,設(shè)計了適用于核空間的有效性指標(biāo),將k-means方法中的聚類數(shù)和核參數(shù)作為青蛙的位置信息,將有效性指標(biāo)作為適應(yīng)度,利用混合蛙跳算法進行局部和全局優(yōu)化,找到青蛙的最優(yōu)位置,無需人為設(shè)定參數(shù),自適應(yīng)地得到有效的聚類結(jié)果。
背景技術(shù):
作為數(shù)據(jù)挖掘的重要研究課題,聚類分析是識別數(shù)據(jù)內(nèi)在結(jié)構(gòu)的重要方法。聚類的目標(biāo)是滿足屬于同一類的數(shù)據(jù)具有較高的相似度,而屬于不同類的數(shù)據(jù)具有較低的相似度。k-means聚類算法是使用最廣泛的聚類算法之一。該算法介意在較短的時間內(nèi)處理大量的數(shù)據(jù)集且有較好的結(jié)果。但是它只能處理呈超球形分布的數(shù)據(jù)集,對于具有復(fù)雜結(jié)構(gòu)的數(shù)不能得到合理的結(jié)果。
最近幾年,為了處理輸入空間中呈非線性分布的數(shù)據(jù)集,提出了基于核的聚類方法。通過將輸入空間的數(shù)據(jù)間接映射到高維特征空間,核聚類方法能夠發(fā)現(xiàn)輸入空間中非線性可分的簇。特征空間中計算線性劃分的結(jié)果等價于輸入空間中非線性劃分的結(jié)果。實驗結(jié)果表明核聚類方法通常優(yōu)于對應(yīng)的經(jīng)典聚類算法。在所有的基于核聚類的算法中,核k-means由于其簡潔性及高效性引起了廣大學(xué)者的關(guān)注。
在核k-means中,核矩陣的結(jié)構(gòu)是影響算法結(jié)果的關(guān)鍵因素。核參數(shù)很大程度上會影響聚類算法的泛化能力和學(xué)習(xí)能力,所以選擇一個合適的核參數(shù)使得核空間的數(shù)據(jù)線性可分是非常重要的。此外,核k-means需要先驗知識,比如聚類數(shù)。實際中,缺乏豐富的聚類分析經(jīng)驗的用戶,很難準(zhǔn)確地設(shè)定數(shù)據(jù)集的聚類數(shù)目,這限制了聚類算法的應(yīng)用。為了處理這些問題,提出一種混合蛙跳算法的自適應(yīng)核k-means方法與系統(tǒng)。
倒立擺控制系統(tǒng)是一個不穩(wěn)定、復(fù)雜的、非線性系統(tǒng),是檢驗控制理論和方法的理想模型和進行控制理論教學(xué)及開展各種控制實驗的理想實驗平臺。對倒立擺系統(tǒng)的研究能有效的反映控制中的許多典型問題如非線性問題、魯棒性問題、鎮(zhèn)定問題、隨動問題以及跟蹤問題等。對倒立擺的控制通常用來檢驗新的控制方法是否有較強的處理非線性和不穩(wěn)定性問題的能力。同時,倒立擺的控制方法在軍工、航天、機器人和一般工業(yè)過程領(lǐng)域中都有著廣泛的用途。目前,國內(nèi)外對于倒立擺系統(tǒng)的研究主要是采用倒立擺系統(tǒng)的數(shù)學(xué)模型,使用更為先進的控制算法對倒立擺進行控制,檢驗算法的有效性,對算法進行理論驗證,并作為實驗教學(xué)平臺進行使用。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是設(shè)計一種自適應(yīng)的核k-means方法,對于不同結(jié)構(gòu)的數(shù)據(jù)集,自動確定核參數(shù)和聚類數(shù)目,最終得到有效的聚類結(jié)果。
為了實現(xiàn)上述目的,本發(fā)明采用以下技術(shù)方案:
設(shè)計了有效性指標(biāo)核類間類內(nèi)比kbwp,將kbwp看作適應(yīng)度函數(shù),利用混合蛙跳算法進行優(yōu)化得到最佳核參數(shù)和聚類數(shù),最后得到核k-means聚類的結(jié)果。
具體的步驟如下:
步驟1:導(dǎo)入數(shù)據(jù)集,隨機初始化青蛙種群xi,i=1,2,...,f,青蛙的位置信息表示優(yōu)化參數(shù);
步驟2:隨機選取k個初始聚類中心,將其他數(shù)據(jù)點劃分到距離其最近的聚類中心所屬的類,得到k個初始類{c1,c2,…,ck};
步驟3:根據(jù)
步驟4:重復(fù)步驟3,直到每個類不再發(fā)生改變,一次核k-means方法結(jié)束;
步驟5:根據(jù)
步驟6:根據(jù)
步驟7:根據(jù)
步驟8:基于kbwp的值,所有青蛙進行降序排序,被劃分成m個子群,每個子群包含p只青蛙,f=m×p,其中,第一只青蛙進入第一個子群,第二只青蛙進入第二個子群,第m只進入第m個子群,第m+1只進入第一個子群;
步驟9:在每個子群內(nèi),確定xw,xb和xg。xw和xb分別代表最壞和最好位置的青蛙,具有全局最優(yōu)適應(yīng)度的青蛙被定義為xg;
步驟10:按照跳躍規(guī)則進行子群進化,最壞的青蛙xw跳向最好的青蛙xb;如果跳躍產(chǎn)生更優(yōu)的解,代替最壞的青蛙;否則,最壞的青蛙被刪除,按照約束條件s=rand(xg-xw)隨機產(chǎn)生新的青蛙來代替它;
步驟11:局部搜索達到預(yù)定義的迭代次數(shù)后,將所有青蛙按照適應(yīng)度值進行降序排序,記錄具有全局最優(yōu)適應(yīng)度的青蛙xg,按照步驟2重新劃分子群,并進行局部優(yōu)化;
步驟12:當(dāng)全局最優(yōu)青蛙的適應(yīng)度的相對改變小于預(yù)定義的值或迭代次數(shù)達到預(yù)定義的值,優(yōu)化聚類數(shù)和核參數(shù)結(jié)束,輸出聚類結(jié)果。
本發(fā)明具有如下優(yōu)點及效果:
(1)本文方法不僅能自動確定最佳聚類數(shù),而且能根據(jù)不同的數(shù)據(jù)集得到不同的核參數(shù)。
(2)本方法可以處理非線性分離的數(shù)據(jù)集及具有不同結(jié)構(gòu)的數(shù)據(jù)集。
(3)利用混合蛙跳算法進行局部和全局優(yōu)化,結(jié)合了粒子群優(yōu)化的局部搜索技巧和混合復(fù)雜進化的信息混合技巧,收斂速度更快。
附圖說明
圖1青蛙跳躍規(guī)則。
圖2混合蛙跳算法局部搜索流程圖。
圖3混合蛙跳算法的自適應(yīng)核k-means方法與系統(tǒng)流程圖。
具體實施方式
實施例1:利用混合蛙跳算法實現(xiàn)自適應(yīng)核k-means方法。首先,設(shè)計了適用于核空間的有效性指標(biāo)kbwp,根據(jù)數(shù)據(jù)集的內(nèi)在結(jié)構(gòu)計算出kbwp。然后將kbwp作為適應(yīng)度,將核參數(shù)和聚類數(shù)作為青蛙的位置信息,利用混合蛙跳算法優(yōu)化得到青蛙的最優(yōu)位置,最后進行核k-means聚類。
本發(fā)明的目的是利用混合蛙跳算法優(yōu)化參數(shù)得到有效的聚類結(jié)果,無需人工介入,實施過程如下:
步驟1:導(dǎo)入數(shù)據(jù)集,隨機初始化青蛙種群xi,i=1,2,...,f,青蛙的位置信息表示優(yōu)化參數(shù),使用核k-means進行聚類并計算kbwp;
步驟2:隨機選取k個初始聚類中心,將其他數(shù)據(jù)點劃分到距離其最近的聚類中心所屬的類,得到k個初始類{c1,c2,…,ck};
步驟3:根據(jù)
步驟4:重復(fù)步驟3,直到每個類不再發(fā)生改變,一次核k-means方法結(jié)束;
步驟5:根據(jù)
步驟6:根據(jù)
步驟7:根據(jù)
步驟8:基于kbwp的值,所有青蛙進行降序排序,被劃分成m個子群,每個子群包含p只青蛙,f=m×p,其中,第一只青蛙進入第一個子群,第二只青蛙進入第二個子群,第m只進入第m個子群,第m+1只進入第一個子群;
步驟9:在每個子群內(nèi),確定xw,xb和xg。xw和xb分別代表最壞和最好位置的青蛙,具有全局最優(yōu)適應(yīng)度的青蛙被定義為xg;
步驟10:按照跳躍規(guī)則進行子群進化,最壞的青蛙xw跳向最好的青蛙xb;如果跳躍產(chǎn)生更優(yōu)的解,代替最壞的青蛙;否則,最壞的青蛙被刪除,按照約束條件s=rand(xg-xw)隨機產(chǎn)生新的青蛙來代替它;
步驟11:局部搜索達到預(yù)定義的迭代次數(shù)后,將所有青蛙按照適應(yīng)度值進行降序排序,記錄具有全局最優(yōu)適應(yīng)度的青蛙xg,按照步驟2重新劃分子群,并進行局部優(yōu)化;
步驟12:當(dāng)全局最優(yōu)青蛙的適應(yīng)度的相對改變小于預(yù)定義的值或迭代次數(shù)達到預(yù)定義的值,優(yōu)化聚類數(shù)和核參數(shù)結(jié)束,輸出聚類結(jié)果。