本發(fā)明屬于數(shù)據(jù)挖掘領(lǐng)域,具體涉及的是一種利用評分機制的森林優(yōu)化算法對高維數(shù)據(jù)集進行有效的特征選擇。
背景技術(shù):
隨著互聯(lián)網(wǎng)的迅速發(fā)展,把人類迅速的帶入了信息化時代,尤其是網(wǎng)絡(luò)應(yīng)用的發(fā)展,社交網(wǎng)絡(luò)把人類緊密的聯(lián)系在一起,近年來社交網(wǎng)絡(luò)(如:facebook、騰訊、微博)的迅猛發(fā)展,對社交網(wǎng)絡(luò)數(shù)據(jù)進行挖掘分析的學(xué)者也越來越多,社交網(wǎng)絡(luò)是個聚寶盆,富含著大量有用的信息。比如我們可以通過提取節(jié)點的興趣,愛好,關(guān)系或其他可能的特征,可以得出對用戶的價值觀、興趣、活動范圍等重要信息。我們也可以從這些屬性中去判斷,該社交網(wǎng)絡(luò)屬于那種類型。推薦給用戶。然而社交網(wǎng)絡(luò)有著大量數(shù)據(jù)和信息產(chǎn)生并日復(fù)一日的積累下來,而且很多的信息存在著冗余,需要處理的數(shù)據(jù)的維度越來越大,所以我們要提取出最有價值的信息,但是又不會影響其社交網(wǎng)絡(luò)本身的特性,社交網(wǎng)絡(luò)存在著大量的屬性信息。這也被稱為維度災(zāi)難,即解空間大小隨數(shù)據(jù)維度的增長呈指數(shù)級增長的問題。數(shù)據(jù)的維度主要包含兩個方面,數(shù)據(jù)的實例個數(shù)及數(shù)據(jù)的特征個數(shù)。為了解決特征維度過高的問題,特征選擇技術(shù)被提出來。所以特征選擇對社交網(wǎng)絡(luò)分類的研究具有重大意義。
feizi-derakhshi等在2014年提出了森林優(yōu)化算法。該算法和遺傳算法、量子群、布谷鳥算法都屬于空間搜索算法,都是尋找近似最優(yōu)解問題。它是模擬大自然中森林的形成過程,在大自然中,森林是由鳥兒,蜜蜂和風(fēng)攜帶著種子,播種而產(chǎn)生的。經(jīng)過大量的實驗發(fā)現(xiàn):森林優(yōu)化算法選擇的子集存在過多的隨機性,會引起收斂速度慢并使得結(jié)果陷入局部最優(yōu)。該算法并沒有從特征選擇本身的領(lǐng)域出發(fā),而是根據(jù)該算法本身進行隨機特征選擇的。該算法在適應(yīng)度函數(shù)選擇上面單獨的采用的knn分類器的精確度作為適應(yīng)度值,缺乏正確的導(dǎo)向性。本發(fā)明通是過分析以上缺點,從候選集選優(yōu)策略、單個特征對特征集合的評分策略,設(shè)計一種基于評分機制的森林優(yōu)化算法的特征選擇,能夠快速、有效的搜索到近似最優(yōu)的特征子集。
技術(shù)實現(xiàn)要素:
本發(fā)明的所要解決的技術(shù)問題是在每一次搜索最優(yōu)特征子集的過程中讓具有較高適應(yīng)度值的子集具有更高的被選中的概率。使得每一次的選擇不是完全隨機的,而是帶有一定的傾向性、加快算法的收斂。能夠降低陷入局部最優(yōu)解的概率。
基于評分機制的森林優(yōu)化算法的特征選擇算法,包括以下步驟:
步驟1),初始化樹、森林。森林是由許多樹構(gòu)成的。
步驟2),局部播種。在步驟1)得到的初始化的森林,在給森林中的每棵樹添加鄰居樹。
策步驟3),種群限制。在步驟2),得到新增樹后的森林,根據(jù)適應(yīng)度值排序。并且對一部分樹進行淘汰處理。把排序靠后的樹提取出來,采用候選集擇優(yōu)策略選擇出潛在最優(yōu)特征子集的樹,結(jié)果放入候選集中。
步驟4),全局播種。在步驟3),得到一批潛在最優(yōu)子集的樹,在給他們樹添加鄰居樹。加入森林中去。
步驟5),更新最優(yōu)樹。在這個階段,把森林中適應(yīng)度值最高的樹選為是最好樹并記錄下來。再執(zhí)行步驟2),直到滿足停止條件。
進一步的,基于評分機制的森林優(yōu)化算法的特征選擇算法,步驟1),初始化樹、森林。森林是由許多樹構(gòu)成的。樹的結(jié)構(gòu)類似于數(shù)組的結(jié)構(gòu)。如果一個數(shù)據(jù)集有n個特征,那么每棵樹表示為n個特征再加上一個變量“age”,每棵樹的大小是1*(n+1),其中“age”特征描述了樹的年齡。隨機生成20棵樹規(guī)模的森林。(規(guī)模為20可以解決大部分問題)。每棵樹的每個特征隨機初始化為“0”或“1”。樹中的每一個樹“1”表示該特征被選擇,“0”表示特征被淘汰、排除。每棵樹的“年齡”被賦值“0”。
進一步的,基于評分機制的森林優(yōu)化算法的特征選擇算法,步驟2),局部播種:這個階段為每棵樹增加一些鄰居“age”為0的樹。現(xiàn)在,森林中的每棵樹“age”為0,隨機選擇一些變量(“l(fā)sc”參數(shù)確定所選變量的數(shù)量)。根據(jù)特征評分模型去判斷,每次隨機選擇的特征對整個特征集合的分類的影響程度的評分。評分很低的我們可以直接放棄這次選擇,再次重新隨機選擇。然后把所選變量的值從0到1或者相反。這個過程模擬局部搜索在空間;在執(zhí)行局部搜索階段之后,所有樹的“age”除了新添加的樹外,age屬性加1。
其中評分模型定義為:
score(f,s)=relevance(f,c)-redundancy(f,s)
(1)relevance(f,c)是特征f和類屬性c的相關(guān)度,其值越高代表特征f對于分類的幫助越大,反之則越低。定義如下:
relevance(f,c)=i(f,c)
(2)redundancy(f,s)是特征f和特征集合s中所有特征的互信息的平均值,其值越高,f對于特征集合s的評分就越低,反之則越高。ns表示特征數(shù)量。定義如下:
(3)互信息用來衡量兩個變量之間共享的信息。互信息值越大表明兩個變量之間共享的信息越多,反之則越少。定義如下:
進一步的,基于評分機制的森林優(yōu)化算法的特征選擇算法,步驟3),種群限制:在這個階段兩種情況的樹將會從森林中被淘汰:年齡(age)超出最大生命周期的樹(lifetime)、森林中樹的數(shù)量超出了最大約定數(shù)量(arealimit),然后根據(jù)適應(yīng)度值,進行排序,保留最優(yōu)的值樹,將超出的arealimit(排序落后的)放到候選集中,采用候選集擇優(yōu)策略選取具有潛在最優(yōu)解的樹進行下一次迭代。每一棵樹(由0和1組成的字符串)表示一個特征子集,潛在著最優(yōu)解的可能。采用特征子集在knn分類上的精確度和單個特征對集體影響的評分作為擇優(yōu)策略。適應(yīng)度值定義為:fit(s)=w1α+w2β,其中w1和w2是參數(shù),分別為0.64和0.36。α表示特征子集在knn分類器上的精確度,β表示單個特征對集體影響的評分。
進一步的,基于評分機制的森林優(yōu)化算法的特征選擇算法,步驟4),全局播種:得到上一步的候選集。遍歷候選集中所有的樹,隨機選擇一些變量(“gsc”參數(shù)確定所選變量的數(shù)量,gsc參數(shù)是自動學(xué)習(xí)的,取數(shù)據(jù)集的維數(shù)的10%)。然后把所選變量的值從0到1或者相反。即原來是0的變成1,即原來是1的變成0。但是與局部不一樣的地方是,已經(jīng)選擇的特征(值為1)的不變。采用特征評分模型去評估上一步隨機選擇的特征對整個特征的評分,如果評分較低的,得分低于0.4的就放棄這次選擇,再次重新進行選擇。在給候選集中的樹添加鄰居樹,age賦值為0。
進一步的,基于森林優(yōu)化算法的特征選擇算法,步驟5),更新最優(yōu)樹:在這個階段,把森林中適應(yīng)度值最高的樹選為是最好樹并把它的“age”設(shè)置為“0”。再執(zhí)行步驟2),直到滿足停止條件。
停止條件包括:
(1)達到迭代次數(shù);
(2)適應(yīng)度值停留在某個值附近不再變化,定義為|fit(si)-fit(sj)|<ε,其中ε賦值為0.003。
有益效果
本發(fā)明能夠讓具有較高適應(yīng)度值的解具有更高的被選中的概率。從而能降低陷入局部最優(yōu)解的概率。加快尋找最優(yōu)解的收斂速度,能夠使得每一次的選擇不是完全隨機的,而是帶有一定的傾向性。從而使得在對整個搜索空間進行搜索時,減少了算法的運行時間,減少了算法迭代的次數(shù)。
附圖說明
圖1是基于評分機制的森林優(yōu)化算法的特征選擇流程圖。
具體實施方式
下面結(jié)合附圖對技術(shù)方案的實施作進一步的詳細描述。
本實施案例采用基于評分機制的森林優(yōu)化算法進行特征選擇。如圖1所示,本方法包含如下步驟:
步驟10,初始化森林。
步驟101,隨機生成20(森林規(guī)模20可以解決大部分問題)棵樹。即earalimit。如果一個數(shù)據(jù)集有n個特征,每棵樹的結(jié)構(gòu)定義是為1*(n+1)的長度;其中一個變量是“age”描述了數(shù)的年齡。
步驟102,每棵樹的每個變量的隨機初始化為“0”或“1”,樹中的每一個樹“1”表示該特征被選擇,“0”表示特征被淘汰、排除。每棵樹的“年齡”被賦值為“0”。
步驟20,局部播種。
步驟201,為每棵“age”為0的樹增加一些鄰居。新增的鄰居樹“age”賦值為0。
步驟202,“age”為0樹隨機選擇一些變量(“l(fā)sc”參數(shù)確定所選變量的數(shù)量,lsc參數(shù)是自動學(xué)習(xí)的,取數(shù)據(jù)集維度的10%)。然后把所選變量的值從0到1或者相反。即原來是0的變成1,即原來是1的變成0。
步驟203,分別對上一步隨機選擇的單個特征對整個特征集合的影響度進行評分,如果評分低于0.4的特征,就放棄該特征,再次重新選擇。
步驟204,除了新添加的樹外,所有樹的“age”加1。
步驟30,種群限制。
步驟301,根據(jù)適應(yīng)度函數(shù)去計算森林中每一棵樹的適應(yīng)度值。
步驟302,根據(jù)上一步得到的適應(yīng)度值,對所有的樹進行排序。
步驟303,把排名earalimit以后的樹提取出來,采用候選集擇優(yōu)策略進行選取。結(jié)果放入候選集中,并且把age值較大的樹剔除掉。
步驟40,全局播種。
步驟401,得到上一步的候選集。遍歷候選集所有的樹,隨機選擇一些變量(“gsc”參數(shù)確定所選變量的數(shù)量,gsc參數(shù)是自動學(xué)習(xí)的,取數(shù)據(jù)集維數(shù)的10%)。然后把所選變量的值從0到1或者相反。即原來是0的變成1,即原來是1的變成0。但是與局部不一樣的地方是,已經(jīng)選擇的特征(值為1)的不變。
步驟402,同樣采用評分模型去計算上一步隨機選擇的特征對整個特征的評分,如果評分0.4的特征,就放棄該特征,再次重新選擇。
步驟403,在給候選集中的樹添加鄰居樹,age賦值為0。把候選集的所有的樹加入森林中。
步驟50,更新最優(yōu)樹。
步驟51,把森林中適應(yīng)度值最高的選為最好樹,把它記錄下來。并設(shè)置其“age”值為“0”。再執(zhí)行步驟2),直到滿足停止條件。