基因表達式編程下的加速進化和緊湊分類

Evolving Accurate and Compact Classification Rules With Gene Expression Programming

摘要:分類是數據挖掘的基本任務之一。大多數局部執行的規則歸納,決策樹或者通過貪婪搜索來生成分類規則的算法通常比必要的複雜。用來模式分類的進化算法最近受到越來越多的關注,因爲它們可以執行全局搜索。在本文中,我們提出了一種通過使用基因表達式編程(GEP)來發現分類規則的新方法,GEP是一種具有線性表示的遺傳編程(GP)的新技術。發現的規則的先例可能涉及許多不同的屬性組合。 爲了指導搜索過程,我們建議使用同時考慮到規則一致性和完整性的適應度函數。通過使用一對一學習方法,可以將多類分類問題制定爲多個兩類問題。覆蓋策略適用於學習多個規則,如果適用於每個類。隨後使用基於最小描述長度(MDL)原理和積分理論的兩相修剪方法進行緊湊規則集。 我們的方法也是噪聲容忍的,能夠處理數字和名義屬性。 幾個基準數據集的實驗表明驗證精度提高了20%,此外,與基於規範樹的GP分類器相比,所提出的GEP方法更有效率並且傾向於產生更短的解決方案。

    關鍵詞:分類規則,數據挖掘,基因表達規劃(GEP),遺傳算法(GAs)

一,引言

最近,人們數據挖掘領域的興趣日益增加,其目標是從觀察數據中發現有用的知識。在各種數據挖掘任務中,提取分類規則是一項基本活動。給定一組預定的,不相交的目標類{C1,C2,C3….},一組輸入{A1,A2,A3…}和一組訓練數據 S,每個實例採用{a1,a2,a3…}的形式,其中ai在屬性域中,並與其獨特的類別標籤有聯繫。該任務是建立一個setof IF-THEN規則,可以用於在給定其輸入的情況下預測新數據的目標類別。Rule induction和 decision tree algorithms 都是傳統的應用於從數據中提取分類規則的算法,這些算法可以快速生成相對準確和可理解的規則。然而,缺點是生成的規則通常比必要的更復雜,原因是傳統算法執行的局部貪婪搜索一次只能選擇一個屬性,因此,特徵空間由一組超立方體近似。在現實應用中,特徵空間通常非常複雜,並且可能需要大量這樣的超立方體來近似不同類的集羣之間的類邊界。
基於遺傳算法(GAs)和遺傳編程(GP)等進化算法的遺傳分類器已被提出作爲替代方法,基於自然選擇和適者生存的原理,進化算法通過迭代演化染色體羣體,通過遺傳算子(即選擇,交叉和突變)編碼候選解決方案,找到最佳解決方案。與大多數傳統的規則學習算法不同,遺傳分類器執行全局搜索,遺傳算子一次可以選擇許多屬性。可能的解決方案,即候選規則由適應度函數來評估。 然而,遺傳分類器的一個缺點是它們通常是計算密集型的。 然而,在離線計算時間不是限制因素的情況下,遺傳分類器可能是更可取的。
基因表達規劃(GEP)是數據分析的進化算法的新技術。GEP使用固定長度的線性串染色體以不同形狀和大小的表達樹的形式表示計算機程序,並實現GA以找到最佳程序。GEP可以被認爲是基於線性字符串表示的一種專業化的GP。正如我們在本文後面將看到的,GEP結合了GA和GP的優勢,同時克服了他們的一些限制。
在本文中,我們提出了採用GEP技術挖掘分類規則的新方法。發現的規則是高階的,因爲規則前提可以在任何邏輯或數學的屬性組合中使用。基本思想是將多類問題分解爲多個二進制分類問題,然後基於每個類的覆蓋策略,使用GEP進行進化搜索,以更好地歸納學習規則。應用最小描述長度(MDL)原理和積分理論來避免過度擬合和消除冗餘規則。與典型的基於樹的GP方法相比,GEP運行更有效率,並且傾向於產生更短的解決方案。
本文的其餘部分組織如下:在第二節中,我們通過進化算法來回顧學習分類規則的相關工作。第三部分包含GEP的簡要說明。第四節描述了分類規則發現的GEP方法。然後,我們介紹了GEP和傳統GP分類器之間的基準測試和比較研究。最後一節得出結論和一些方向和未來的工作。

二 . 相關工作

作爲一種用於數值和符號優化的強大的,獨立於領域的機制,已經應用了GAs來形成一套二十多年的生產規則,形成了稱爲學習分類器系統的機器學習範例。

基於GA的分類器系統通常分爲兩個基本類:the Michigan approach 和 the Pittsburgh approach. 這兩個主要區別在於種羣個體的染色體編碼方案。 在密歇根方法中,具有固定長度的個體編碼生產單個規則。而在匹茲堡方法中,每個人由一個可變長度的字符串表示,並編碼一套完整的規則,而在匹茲堡方法中,每個人由一個可變長度的字符串表示,並編碼一套完整的規則。

爲了減輕這兩種方法的缺點,已經提出了一些混合的密歇根/匹茲堡方法,通常,基於GA的分類器中的個體會被編碼成二進制字符串,規則的質量由適應性函數來評估,文獻中提出的大多數適應性函數都傾向於更準確和可理解的規則。

GP最近受到更多的關注,因爲與大多數數據挖掘算法不同,GP可以發現數據中的底層關係,並以輸入屬性的任何邏輯,數學組合表達它們。 GP操縱可變大小的基因組,因此,與GA相比,可以更好地適應數據庫的解決方案結構,因此,GP比GA更開放。但是這帶來了成本,即GP在更大的搜索空間中更難以導航。

要爲給定的問題開發標準的基於GP的分類器,必須首先定義GP的終端集合和功能集。終端集合通常由所有的輸入和隨機數發生器組成;函數集可以包含一些數學,比較和邏輯運算符。GP人羣中的每個體,即解析樹,編碼候選規則,目的是通過遺傳操作最小化分類錯誤率,其中通過將GP表達式的輸出與給實際值進行比較來進行分類。

對於兩類問題,一個GP表達式足以預測給定特徵向量是否屬於一個類。負和非負輸出值之間的劃分作爲兩個類之間的自然邊界。以這種方式,對於n類問題,需要確定多個閾值“頻帶”。然而,在GP表達式可能返回的數值集合上找到有意義的分割點是困難的。存在選擇頻段的兩種方法:靜態範圍選擇和動態範圍選擇。使用GP解決多類問題的另一個簡單且常用的方法是將類問題分解爲二進制分類問題,並運行GP次數,每次解決二進制問題,這種方法被稱爲“二分法”或“一對一學習”。對於每個類,生成一個GP表達式來預測給定實例是否屬於該類。

基於GP的分類器也有一些弱點。例如,標準GP的閉包屬性要求函數返回的所有變量,常量,參數和值必須是相同的數據類型。當標準GP應用於數字數據的分類問題時,該屬性是滿意的。一些系統只使用布爾屬性或布爾化所有的屬性開採,然後應用邏輯運算符以滿足閉包屬性。已經提出強類型GP(STGP)(有時稱爲約束語法GP)和基於語法的GP,以通過連續和名義屬性GP的混合來解決分類問題時處理此問題。此外,GP基於樹的個體通常導致膨脹,即在遺傳操作過程中個體大小的不受控制的增長,例如子樹交叉和各種突變。可以通過適應度函數和遺傳學習算子之間的適當協調來控制腹脹。
有當有適當的協調,搜索可能會成功進展。

三, 基因表達編程概述

與GP一樣,使用GEP解決問題時,必須確定五個通用組件,功能集,終端設置,適應度功能,控制參數和停止條件。與規範GP中的分析樹表示不同,GEP使用固定長度的字符串來表示計算機程序,後者在評估其適用性時,將其表示爲不同大小和形狀的解析樹(稱爲“GEP中的”表達式樹“)。在繁殖期間,是通過修改再傳播到下一代的個體的染色體來繁殖,而不是表達樹(ET)。因此,在GEP中,搜索空間與解空間分離,這可以產生諸如無限制地搜索基因組空間的優點,同時仍然確保程序輸出的有效性,原始的GEP技術由Ferreira提出,其中GEP染色體可以由一個或多個相等長度的基因組成。 在本文中,我們考慮單基因染色體,並使用如下所述的稍微不同的版本。
A.GEP染色體和ET:
每個GEP染色體由具有固定長度的符號列表組成,其可以是來自功能集和終端集的任何元素。GEP染色體具有固定的長度,這對於給定的問題是預定的。 因此,在GEP中,不同的是染色體的長度,而相應的表達樹的大小。這意味着存在一定數量的冗餘元素,這對於基因組ET圖譜是無用的。因此,K表達的有效長度可以等於或小於染色體的長度。爲了保證僅生成合法表達樹,原始的GEP技術採用頭尾法。每個染色體由頭部和尾部組成。頭部包含功能集和終端集,而尾部只包含終端。在我們的GEP實現中,我們應用了一個有效性測試程序來動態地檢查染色體是否能夠在大小限制內編碼合法表達式樹,而不是使用頭尾方法。
B. GEP算法和操作:

像GAs和GP一樣,GEP算法以隨機生成的染色體的初始羣體開始,具有固定長度的線性串。然後,線性染色體表示爲ET,並且基於預定義的適應度函數來評估每個個體的適應度。然後根據適應度選擇個體以形成新一代,即,適應度值越高,個體必須被選擇的機會越多。所選擇的個體也可通過遺傳算子(如交叉,突變和旋轉)進行修飾(稍後將對其進行描述)。而這個新一代人的分化反過來又受到同樣的發展過程:表達基因組,選擇和繁殖。 該過程重複一定數量的代或直到找到解決方案。

在GEP中,個人經常被選中,並通過輪盤賭輪採樣與精英主義的適應性複製到下一代,這保證了下一代最好的個人的生存和克隆。通過在選定的染色體上進行遺傳操作引入人羣的變異:交叉,突變,迴轉,來自這些操作者的輸出染色體必須通過有效性測試,以確保它們可以在預定義的染色體大小限制內形成有效的表達樹。如果由遺傳操作者生產的個體沒有通過測試,則將重複執行操作者,直到後代通過測試。例如,一個點交叉將重複在相同的父母(而不是無效的染色體)上,但在不同的交叉點,如果任一個孩子沒有通過測試。 儘管GEP還可以用冗餘的複雜性演變表達式,即可以由產生相同結果的更簡單或更小的表達式代替的子表達式,腹脹問題不如傳統GP那麼嚴重。 由於K表達的有效長度不超過預定義染色體長度限制,GEP有產生較短程序的傾向。

總之,像GAs一樣,GEP中的染色體是線性的,緊湊的,易於遺傳操作;像GP一樣,演化式計算機程序以表達式的形式表現出一定的功能複雜性。並且染色體和ET的相互轉換是非常簡單的。此外,與其他線性GP相比,GEP表現出更多的簡單性,即用戶不需要明確地指定基因型到表型的映射(例如,通過BNF語法)。 由於這些特性,即簡單性,高效率和功能複雜性,GEP結合了GAs和GP兩者的優勢,同時又有一些限制,這提供瞭解決複雜建模和優化問題的巨大潛力。

四, 通過GEP分類

GEP作爲使用GAs的全球搜索技術,具有解決複雜問題的巨大潛力。 使用GEP進行分類的原因如下:
1)靈活性:GEP比傳統的規則歸納和決策樹算法更靈活,因爲它更靈活地重新構建了基礎表示。

2)能力:由於使用強大的進化搜索機制,它可以以屬性組合的形式發現關係,並以數學方式表達。

3)效率:在固定長度和易於操作遺傳操作的染色體線性表示的幫助下,GEP比傳統的基於樹的GP更有效。

A.一對一學習

對於兩類(二進制)問題,GEP表達式通過返回一個正或非正值來表示分類,該值表示給定實例是否屬於該類,爲了將這種方法擴展到n類分類問題,我們採用經常使用的一對一學習方法將類問題轉化爲二類問題,這些是通過使用類的示例作爲正例和除了作爲否定示例的類的示例構成的。

在早期工作中,對於每個類,只有一個規則被演變爲識別屬於自己的類的實例,並拒絕其他類的實例。 我們已經發現,許多現實世界的問題具有複雜的特徵空間,單個規則可能不能對給定類的所有實例進行適當的分類。在本文中,我們應用覆蓋策略來爲每個二進制分類問題學習多個規則。對於給定訓練集中的每個分類,我們學習一個涵蓋儘可能多的積極例子和儘可能少的負面例子的規則。然後,我們刪除訓練集中涵蓋的所有積極的例子,並重復程序來學習另一個規則。 重複這些步驟,直到訓練集中沒有肯定的例子爲止。

開發高效分類器還需要考慮兩個問題。一個是過度安裝噪聲數據的問題。在我們的方法中,MDL原則被應用於避免過分具體的規則,試圖適應嘈雜的例子。當生成的GEP規則應用於新案例時,會出現另一個問題。多個GEP表達式可能返回一個正值,這將導致“分類衝突”。在最壞的情況下,所有規則可能都不滿足。 因此,需要一種解決分類衝突和分類拒絕的策略。 這些問題在本文後面討論,因爲我們解釋了兩階段規則修剪的技術。

B.功能集和終端集

對於給定的分類問題,我們需要定義GEP的功能集和終端集。函數集通常由數學和邏輯運算符組成,如果是具有三個參數(x,y,z)的邏輯比較函數,它取值:如果x> 0,則y 否則z。使用該操作,GEP可以操縱分段連續的功能,這對現實世界的分類問題非常有用。

終端機由所有輸入屬性和常量列表組成,例如{1,2,3,…,n}。 在GP文獻中,有兩種方法可以將常數值引入到計算機程序中:終端機由所有輸入屬性和常量列表組成,例如{1,2,3,…,n}。 在GP文獻中,有兩種方法可以將常數值引入到計算機程序中:一個是使用隨機數發生器; 另一個是使用一組常量。 在我們的實現中,我們遵循第二個,它使GEP能夠使用常量和函數的給定組合來表示任何有理數。

C.標稱屬性的數值化

在我們的GEP實現中,所有操作數都被視爲數字。執行標稱屬性數字化有兩種方法。一種方法是將標稱屬性的值映射到整數,以便該屬性可以被認爲是GEP內的數字。例如,如果屬性可以採用三個可能的值,那麼這些標稱值被映射成一組整數,即{0,1,2}。然而,這種方法的缺點在於它強加了原始數據中不存在的順序。另一種方法是將名義屬性劃分爲二進制屬性,如果有可能的值(這裏),其中0/1表示每個值的不存在/存在,則稱爲“二值化”。這種方法克服了第一整數方法的缺點,但是如果是大的則會產生一大組派生屬性。 在本文中,我們使用二值化方法。

D.適應性函數

定義適應性函數來衡量規則質量的問題仍然是數據挖掘中一個有趣的問題。理想情況下,我們應該在適應性函數中包含三個標準,即預測能力,可理解性和興趣度。在這裏,我們專注於尋找準確的規則。 綜合完整性的幾個公式(規則涵蓋的積極例子與培訓集中正面例子的總數之比)和一致性(規則涉及的正面例子與覆蓋實例總數的比例)已被描述在 文學。我們的方法不是使用一致性度量,而是將規則一致性增益納入考慮,因爲這一措施考慮了訓練集中正面和負面實例的分佈。 規則的一致性增益定義爲

            consig(R)=(p/(p+n)-P/(P+N))*(p+N)/N

其中p和n是由規則R覆蓋的正和負的例子的數量,P和N是訓練集中的正和負的例子的總數。在規則具有相同分佈的正負分佈的情況下,示例作爲訓練集(就像隨機猜測),一致性增益爲零;在完美一致的情況下,它將返回一個。 一個規則也可能返回一個負的一致性增益,這意味着該規則不如純粹的隨機猜測那麼準確。

E.兩相規則修剪

爲了演化一個準確的,耐噪聲和緊湊的規則集,我們應用規則修剪的兩個階段:預修建和後修剪。 對於每個二進制分類任務,理想情況下,覆蓋策略通過迭代學習覆蓋部分培訓示例的規則的過程來工作,直到沒有正面的例子爲止。然而,如果訓練數據不是無噪聲的,則該方法可能是不理想的,因爲它傾向於產生適合於噪聲數據的一些特定規則,但是不概括地將該概念推廣到要被很好地學習,從而導致過擬合 。處理這個問題的一個常見方法是早日停止。 在準備進程中,我們採用基於MDL原則的停止標準來確定何時停止學習該類的更多規則。 MDL原則試圖避免學習複雜的規則,僅覆蓋少量示例,這可能是由嘈雜的數據導致的。

MDL原則的核心思想源於形成理論。準備階段處理規則學習過程中的噪音。在規則學習過程完成後,對所有課程進行修剪的第二階段,嘗試改進學習理論,解決任何分類衝突和拒絕。一般來說,解決衝突問題有兩種方法。 一個是根據他們的信任或質量使無序規則成爲有序的列表。例如,Kishore等 提出了一種名爲“關聯強度”(SA)的措施作爲排序一組GP規則的標準。 SA值表示GP表達式可以識別屬於其自己類的示例的程度,並拒絕其他類的示例。SA的價值越高,相應規則的預測性能越好。 然後,具有最高關聯強度的GP表達式的類將被分配給輸入案例。 另一種方法也考慮規則質量,但是通過整套規則,將同一類的匹配規則的質量相結合,並將新的示例分配給合併質量最大的類。 例如,CN2無序規則歸納算法[10]遵循這種方法。

由於我們方法中使用的適應度函數已經考慮了規則的一致性,完整性以及類的分佈,因此它爲排序GEP規則提供了一個自然的標準。我們採取了以下衝突策略解決和修剪冗餘規則,遵循提到的方案和整合理論:

1.根據其適合度值對所有生成的規則進行排序。

2.選擇具有最高適應度值的規則,並將其添加到有序規則集中。

3.刪除所選規則覆蓋的所有正面和負面示例。

4.重新計算其餘例子中剩餘規則的適應度值。

5.重複步驟1-4,直到不存在任何示例,或者直到剩餘的規則都沒有產生正的適合度值。

6.選擇一個默認類,以防所有規則拒絕新的示例。

選擇默認類的方法再次遵循C4.5規則歸納算法的使用方式。對於每個訓練示例,通過步驟1-5生成的有序規則按此順序逐個應用,直到其中一個被觸發。我們只考慮所有GEP表達式不能返回正值的示例,並選擇具有最大數量的未分類示例的類作爲默認類,在培訓中解析具有較大數量實例的類的關聯 組。經過這個postpruning過程,消除了冗餘規則。 最終規則集緊湊且有序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章