進化決策樹:當機器學習從生物學中汲取靈感時

2021-01-08 雷鋒網

譯者:AI研習社(精神小高)

雙語原文連結:Evolutionary Decision Trees: When Machine Learning draws its Inspiration from Biology

隨著時間的推移,我們對生物學(或生命科學)的了解大大增加,它已成為許多工程師解決挑戰性問題並產生發明創造的的重要靈感來源。

以日本的高速列車「新幹線」為例,它是世界上最快的火車之一,時速超過300公裡/小時。 在設計過程中,工程師遇到了巨大的難題:火車前部空氣的位移所產生的噪音,其幅度大到可能破壞某些隧道的結構。

他們以一個出乎意料的方式找到了這個問題的解法:翠鳥。這種鳥的喙部細長,使之在潛入水中捕食時能夠少濺水花。

因此,通過模仿這種鳥的形象重新設計列車,工程師不僅解決了最初的問題,而且還將列車的耗電量減少了15%,速度提高了10%。

圖1-日本的高速鐵路,新幹線,來源

生物學知識也可以成為機器學習中靈感的來源。

內容

本文重點關注的一個例子是進化決策樹。

這類分類器使用進化算法來構建魯棒性更強,性能更好的決策樹。進化算法依賴於生物進化啟發的機制。

決策樹是什麼?如何根據進化算法搭建決策樹?與其它分類器相比,進化決策樹的表現如何?數據集

為了說明本文中提及的概念,我將使用航空公司乘客滿意度的調查結果數據集。有關此數據集的更多信息,請參見此處。

其目的是預測顧客對航空公司的服務的滿意度。這樣的研究對公司的決策至關重要。它不僅可以使提供商品或服務的公司知曉其產品在哪些方面需要改進,而且可以使公司知道應該改進到什麼程度以及改進的緊要程度

事不宜遲,讓我們從複習關於決策樹的基礎知識開始吧。

1. 什麼是決策樹?

決策樹是一種分類器,其分類流程可表示為樹形圖。模型在訓練過程中根據數據的特徵推斷出簡單的決策規則,並依此對數據點進行分類。

下圖展示了一個決策樹的例子。這是使用Scikit Learn決策樹模塊在航空公司乘客滿意度的調查結果數據集上進行訓練的結果。

圖2-決策樹示例

決策樹表明網上值機服務是商務旅行中乘客滿意度的重要因素,乘客在能簡單高效地在網上辦理登機手續時更可能感到滿意。另外,艙內wifi的信號質量也十分重要。

決策樹由於具有許多優點而被廣泛用於分類任務:

它的推理過程與人類相似,易於理解和解釋;它能處理數值數據和分類數據;它通過分層分解能更充分地利用變量。大多數用於推導決策樹的算法都使用自上而下的遞歸劃分「貪心」策略。

源集(source set)代表了樹的根節點。源集是根據特定規則劃分為各個子集(子節點)的。在每次劃分出的子集上重複該劃分過程,直到某個節點下的子集中的目標變量的值全部相同,或者劃分過程不再使預測結果的值增加。

用於在節點和劃分中確定生成測試的最佳方法的量化指標是因算法而異的。最常見的指標是信息量(或熵)和基尼雜質量。它們度量的是雜質度,當節點的所有樣本屬於同一類別時,這類指標的值為0;當節點的樣本的類別呈均一分布(即,該節點取到某一類別的概率為常數)時,這類指標的值取到最大值。更多相關信息參見本文。

但是,此類指標有兩個主要缺點:1.可能取到次優解;

2.可能生成過於複雜的決策樹,以至於在訓練數據中泛化效果不好,導致過擬合。

目前已有幾種方法可用於克服這些問題:

剪枝:首先,構建一顆完整的決策樹,即每片葉子中的所有實例都屬於同一類。然後刪除「不重要」的節點或子樹,以減小樹的大小。組合樹:構建不同的樹,並通過特定規則(一般是投票計數)選擇最終的分類結果。值得注意的是,這會導致決策樹的可解釋性降低。因此,有必要探索生成樹模型的其它方法。最近,進化算法(Evolutionary Algorithms, EA)獲得了極大的關注。進化算法在所有可能的解法中進行強大的全局搜索,而不僅僅是本地搜索。結果,與貪心策略相比,進化算法更可能把屬性交互處理得更好。

進化算法的具體工作方式見下。

2. 怎樣用進化算法構造決策樹?

進化算法是搜索啟發式方法,其機理源自自然中的生物進化過程。

在這個範式中,群體中的每個「個體」代表給定問題的一種候選解法。每個個體的適合度代表這種解法的質量。這樣,隨機初始化的第一個群體會朝著搜索空間中更好的區域進化。在每一代中,選擇過程使得適合度較高(原文為「適合度較低」,疑有誤)的個體具有較高的繁殖概率。

此外,還會對群體進行特定的由遺傳學啟發的操作,例如重組,兩個個體的信息在混合後才會傳給他們的後代;以及突變,對個體進行微小的隨機改變。對這一過程進行迭代,直到達到某一終止條件。然後選擇最適個體為答案。

基於進化算法的決策樹是通用方法的一種有意思的替代品,因為:

隨機搜索法能有效避免自上而下的遞歸劃分「貪心」策略可能找到的局部最優解。對決策樹的解釋與整體法相反。不僅僅是優化單一指標,它可以將不同的目標集成在適合度中。

2.1 群體的初始化

在進化決策樹中,一個個體代表的是一棵決策樹。初始群體由隨機生成的樹組成。

隨機樹可以按以下步驟生成:

在根節點和兩個子節點後,算法以預設概率p決定每個子節點是否繼續劃分或成為終點。

如果繼續劃分該子節點,算法會隨機選擇一些性質和閾值作為劃分的標準。如果該子節點成為終點(葉節點),就給它隨機分配一個類別標籤。2.2 適合度

分類器的目標是在輸入未標記的新數據時能獲得最高預測準確度。此外,決策樹分類器還需要控制樹的最終尺寸。因為樹的尺寸小會導致欠擬合,而樹的結構太複雜會導致過擬合。

因此,在定義適合度時需要在這兩項之間取得平衡:

適合度 = α1 f1 + α2 f2

其中:

f1是在訓練集上的準確度;f2是對個體的尺寸(樹的深度)所設置的懲罰項;α1 和α2 是待指定的參數。 2.3. 選擇過程

有多種方法可以選擇用於創建下一代樹的親本。最常見的是以下幾種:

基於適應度按比例選擇,或輪盤賭式選擇:按適合度對群體排序,然後依次為每個個體賦予選擇概率。淘汰制選擇:先從群體中隨機選出一些個體,再從選出的集合中取適合度最高的個體作為親本。精英制選擇:直接把適合度最高的個體用到下一代。這種方法能保留每代最成功的個體。2.4 重組

獲得重組子代的過程需要使親本兩兩配對。

首先,選擇兩個個體作為親本。然後在兩棵樹中各隨機選一個節點。用第二棵樹中選擇的子樹代替第一棵樹中選中的子樹,獲得子代。

">">">

圖3-重組

2.5 突變

突變指的是一個群體的部分個體中的隨機的小選擇。突變是遺傳多樣性的保證,這意味著遺傳算法能搜索到更大的範圍。

對決策樹而言,突變可以通過隨機更改屬性或者細分隨機選的節點來實現。

圖4-突變

2.6 終止條件

如果最優秀的個體的適合度在給定數量的世代中沒有上升,就可以認為算法已經收斂了。

為了在收斂得很慢時節約計算時間,這個世代數目是預先設定的參數。

3. 跟其它分類器比,進化決策樹的表現如何?

進化決策樹看起來很好,但跟常規機器學習算法相比,它的表現又如何?

3.1 一個簡單的實驗

為了評價分類器的效率,我搭建了一個決策樹,並在航空公司乘客滿意度調查結果數據集上進行訓練。

目標是找出能導致乘客滿意度升高的因素。 這樣就需要一個簡單而抗幹擾的模型來解釋導致乘客感到滿意(或不滿意)的途徑。

照片來自這個網站,這位攝影師

關於數據集

這個數據集很大,囊括了多於10萬條航線。

含有關於乘客及其行程的事實信息:乘客的性別,年齡,客戶類型(是否有慣性),旅行類型(個人或商務旅行),航班艙位(商務,環保,極環保 )和飛行距離。還包含乘客對以下服務的滿意度:艙內wifi,出發/到達時間(是否合宜),網上預訂(是否方便),登機口位置,餐飲,網上值機,座椅舒適度,艙內娛樂,登機服務,座椅腿部空間 ,行李服務,值機服務,艙內服務,整潔度。數據標籤是乘客的滿意度,包括「滿意」,「中立」和「不滿意」。

方法

我使用的計算步驟可簡要歸納如下:

1. 數據預處理:將類別變量轉換為指示變量。將數據集隨機劃分為訓練集和測試集。

2. 建模和測試:訓練每個模型在訓練子集上考慮條件,在驗證子集上進行衡量。

3. 比較各模型的表現。

我選擇將進化決策樹(EDT)方法與基於簡單的樹的,基於決策樹(DT)的和基於隨機森林(RF)的模型進行比較。限制樹的深度小於(等於?)3。 我還將EDT的群體大小和RF的評價器數量設置為10,以便於在合理的計算時間內以一致的方式比較它們。

結果

結果如下:

圖5-「滿意」以及「中立或不滿意」的乘客的數量

表1-DT模型的分類報告

表2-RF模型的分類報告

表3-EDT模型的分類報告

圖6-3個模型的ROC曲線和曲線下面積

在這種參數設置下,EDT的表現和另外兩種機器學習算法很接近。

然而,EDT的優勢在於它能提供這樣一棵決策樹:

可以呈現多顆決策樹聚集的位點(與RF模型相比),並且具有魯棒性(與簡單DT模型相比),因為它是一群樹中表現最好的那顆。在訓練過程中,將最大深度設為2,獲得的EDT群體中表現最好的決策樹可以表徵為如下形式:

圖7(原文為「圖5」,疑有誤">">">)-EDT中最佳決策樹的示意圖

3.2 對EDF方法的一個更泛化的實驗驗證

上述實驗肯定不足以評估進化決策樹跟其它機器學習算法相比時的性能和可靠性。

因為只用了一個數據集,因此沒有考慮到所有可能性,例如標籤的類別數量,特徵數量和觀測數量的影響等。

在[2]中,作者使用真實的UCI數據集對EDT方法與其他機器學習方法的性能進行了比較。

這篇文章的發現如下。

關於數據集

下表簡要介紹了所用的數據集:

表4-數據集的性質

如你所見,數據集在觀測次數,特徵個數和類別個數這幾個方面的差別很大。

最困難的數據集肯定是第一個數據集,因為它有很多類別,而觀察次數較少。

方法

以下是與更『經典』的機器學習算法相比時,作者用來評估EDT模型表現的方法的主要信息:

EDT模型已使用以下超參數進行了訓練:世代數為500,群體大小為400,重組/變異的概率分別為0.6 / 0.4,選擇方法為隨機統一的精英制選擇。使用5x2交叉驗證來測量模型的表現。結果

表5-模型的正確率取決於所用的數據集

基於樹的算法幾乎總是優於其它機器學習算法。 可以解釋為決策樹本身更能選擇出最重要的特徵。 此外,基於規則的模型更適合用於特定的數據集,尤其是難以對目標與特徵間的關係建模時。鮑魚數據集上的結果都很差:因為有28個類別,而且觀測次數很少(只有210次)。 但是,EDT模型以最高的準確率脫穎而出。 這表明它能有效地處理困難的數據集並避免過擬合。值得注意的是,EDT模型使用的是默認參數。 調整參數能帶來更好的表現。

引用

[1] R. Barros et al., A Survey of Evolutionary Algorithms for Decision Tree Induction, 2011

[2] D. Jankowski et al., Evolutionary Algorithm for Decision Tree Induction, 2016

[3] S. Cha, Constructing Binary Decision Trees using Genetic Algorithms, 2008

[4] D. Carvalho et al., A Hybrid Decision Tree/Genetic Algorithm Method for Data Mining, 2003

[5] Wikipedia, Traveling salesman problem

">

[6] Wikipedia, Genetic Algorithm

AI研習社是AI學術青年和AI開發者技術交流的在線社區。我們與高校、學術機構和產業界合作,通過提供學習、實戰和求職服務,為AI學術青年和開發者的交流互助和職業發展打造一站式平臺,致力成為中國最大的科技創新人才聚集地。

如果,你也是位熱愛分享的AI愛好者。歡迎與譯站一起,學習新知,分享成長。

相關焦點

  • 機器學習中決策樹的原理與算法 | 科普
    我們知道,在機器學習中有兩類十分重要的問題,一類是分類問題,一類是回歸問題。我們今天所要探討的就是在分類和回歸問題中所用到的一種非常基本的方法,叫決策樹。決策樹也是重要的標籤學習方法。這篇文章裡面的部分內容來自於 AI 慕課學院的《機器學習理論與實戰高級特訓班》課程筆記。
  • 關於「樹」的算法:現實生活中的決策樹
    就像樹木是人類生活的重要組成部分一樣,基於樹的算法也是機器學習的重要組成部分。樹的結構給了我們開發算法的靈感,並再將其反饋到機器,讓它們學習我們希望它們學習的東西,以解決現實生活中的問題。這些基於樹的學習算法被認為是最好和最常用的監督學習方法之一:決策樹、隨機森林、梯度提升等方法在各種數據科學問題中得到了廣泛應用。對於每一個機器學習的初學者來說,學習這些算法並將其用於建模非常重要。
  • 機器學習實戰:決策樹原來這麼簡單
    上一篇:機器學習實戰-監督學習、無監督學習上一篇的文章中,我們主要對監督學習與無監督學習進行了講解,其實還有一個半監督學習,這個可以自行百度,也是比較簡單。這一篇中,我們來講解監督學習中經常用到的算法,決策樹。
  • 機器學習之決策樹在sklearn中的實現
    小夥伴們大家好~o( ̄▽ ̄)ブ,首先聲明一下,我的開發環境是Jupyter lab,所用的庫和版本大家參考:Python 3.7.1(你的版本至少要3.4以上Scikit-learn 0.20.0 (你的版本至少要0.20Graphviz 0.8.4 (沒有畫不出決策樹哦,安裝代碼conda install python-graphviz
  • Python機器學習sklearn模塊——決策樹
    決策樹可以用來解決分類與回歸問題,是一種非線性模型;一課決策樹一般包含一個根節點、若干個內部節點和若干個葉節點;生產決策樹最關鍵的是如何選擇最優劃分屬性,我們希望分支節點所包含的樣本近可能的屬於同一類別,即節點的「純度」越來越高;而評估樣本集合純度的常用指標有信息增益、增益率和基尼指數;決策樹容易出現過擬合狀況,因為它們可以通過精確的描述每個訓練樣本的 特徵而構建出複雜的決策樹
  • 機器學習|決策樹的生成過程是怎樣?(一)
    本文筆者將用具體例子講述決策樹的構建過程,分析:決策樹生成過程中有什麼樣的問題?一、基本概念決策樹的定義:首先,決策樹是一種有監督的分類算法——即給定X,Y值,構建X,Y的映射關係。不同於線性回歸等是多項式,決策樹是一種樹形的結構,一般由根節點、父節點、子節點、葉子節點構成如圖所示。
  • 使用Scikit-Learn了解決策樹分類
    決策樹是用於分類和回歸任務的最基本的機器學習工具之一。在這篇文章中,我將介紹-以基尼雜質為標準的決策樹算法拆分原則。決策樹在現實生活數據分類中的應用。決策樹決策樹(以下簡稱DT)算法的思想是學習一組if/else問題來進行決策。決策樹可以組合數值數據和分類數據。一些用於決策樹的術語如下圖所示在這裡,我們看到了如何根據節點在DT中的位置劃分節點。
  • 從大自然汲取靈感的高定禮服,色彩暈染動態飄逸,富有生機
    高級定製禮服的靈感可以來自很多地方,比如人、物、景,這些都是可以汲取靈感的東西。從大自然來獲得靈感是很多設計師都鍾愛的,不僅色調自然,動態也十分有韻律感,讓人看了之後心情舒暢,是很棒的結合。將畫作中的圖案搬到禮服上,並沒有將整幅畫照搬,而是將其中的元素運用在裙身上。
  • 決策樹,回歸樹,自動分類,三種自動化學習方法
    關於自動化機器學習的研究一直很火爆,隨著人工智慧的發展,越來越多的人對它感興趣,我也是希望對機器學習感興趣的人關注我的專欄,探索機器學習相關知識。自動機器學習,將統計學、機器學習、深度學習結合到一起,從而可以讓神經網絡能夠應用於各種不同數據類型。
  • 機器學習:Python中的四種機器學習技巧
    機器學習技術與算法眾所周知,機器學習是技術和算法的結合。但在開始關注技術和算法之前,讓我們看看它們是否是同一個東西。技術是解決問題的一種方法,這是一個非常通用的術語。 但是,當我們說我們有一個算法時,意思是我們有一個輸入,並希望從中得到一定的輸出,明確規定了實現目標的步驟。
  • 機器學習-決策樹(ID3算法)
    決策樹(decision tree)是一種基本的分類與回歸方法。這裡討論用於分類的決策樹。
  • 決策樹分析,讓你的風險應對更專業
    「點亮」風險應對的一盞明燈  項目風險應對時,你有沒有經常在多個應對方案之間拿不定主意?又或者在多個應對方案中不知道重點在哪?本文將通過決策樹分析法開啟一些風險應對的「靈感」。
  • 盤點| 機器學習入門算法:從線性模型到神經網絡
    為了實現機器學習,算法是必需的。算法被寫入計算機並在其剖析數據時給與其需要遵循的規則。 機器學習算法經常被用於預測分析。在商業中,預測分析可以用於告訴企業未來最有可能發生什麼。例如,使用預測分析算法,在線 T 恤零售商可以使用當前的數據來預測下個月他們將會售出多少 T 恤。
  • 科學家構建了哺乳動物進化樹中的更多分支
    美國耶魯大學的研究人員公布了一項對物種數據收集和分析方法的全面改革,以構建哺乳動物的生命進化樹。  該研究第一作者、耶魯大學生態學與進化生物學博士後研究員Nathan Upham說:「我們使用的化石和基因組數據往往是殘缺和混亂的,但現在,我們正在重建數百萬年前在早已滅絕的哺乳動物身上發生的事件。」  在現存的大約6000種哺乳動物中,大多數是嚙齒類動物(42%)或蝙蝠(24%),而常見的哺乳動物,如牛、豬、羊、貓、浣熊和猴子則相對較少。
  • 合成生物學能否激發下一波人工智慧的發展
    ) 賴特兄弟(Wright Brothers)在20世紀初製造了世界上第一架飛機時,從鳥類的「有見識」運動中汲取了靈感。 同樣,要構建具有思考能力的機器,為什麼不從我們兩耳之間運作的三磅重物質中尋求靈感呢?人工智慧的先驅,圖靈獎的獲得者傑弗裡·欣頓(Geoffrey Hinton)似乎同意:「我一直堅信,使人工智慧發揮作用的唯一方法就是以類似於人腦的方式進行計算。」 那麼,人工智慧(AI)的下一步是什麼?下一波AI會受到生物學快速發展的啟發嗎?
  • 還有比「從恐怖電影中汲取靈感設計帶仙氣的衣服...
    【此處應該有掌聲】   時裝與電影「如膠似漆」,很多時裝設計師會從電影中找尋靈感,比如: Joseph Altuzarra的2017春夏系列       從《Wild at Heart》中汲取,汲取其中的色彩、蕾絲元素及裙裝輕飄飄的材質。
  • 跟隨LV御用花藝大師,在山林中汲取設計靈感
    凌宗湧老師親自帶你逛花市,並徒步於陽明山的小溪山野,探尋私密景點小油坑、夢幻湖、擎天崗,汲取創意靈感,帶你發現自然之美。現場教授花藝設計課程,將創意積累與藝術感知應用於花藝製作中,最大限度地表現材質原本自帶的生命張力,打造「順勢自然」的花藝作品。
  • 基於Python的決策樹分類器與剪枝
    決策樹通常包括:根節點-表示被進一步劃分為同質組的樣本或總體拆分-將節點分為兩個子節點的過程決策節點-當一個子節點根據某個條件拆分為其他子節點時,稱為決策節點葉節點或終端節點-不進一步拆分的子節點信息增益-要使用一個條件(比如說信息最豐富的特徵)來分割節點,我們需要定義一個可以優化的目標函數。在決策樹算法中,我們傾向於在每次分割時最大化信息增益。
  • 流行的機器學習算法總結,幫助你開啟機器學習算法學習之旅
    AI的ML領域是為實現非常精確的目標而創建的,它引入了多種算法,從而可以更順暢地進行數據處理和決策。什麼是機器學習算法?機器學習算法是任何模型背後的大腦,可讓機器學習並使其更智能。這些算法的工作方式是,為它們提供第一批數據,並且隨著時間的流逝和算法的準確性的提高,額外的數據也被引入到算法中。
  • 以鳶尾花數據集為例,用Python對決策樹進行分類
    全文共4730字,預計學習時長10分鐘圖片來源:https://www.pexels.com/@andree-brennan-974943基於多種原因,決策樹是一種廣受歡迎的監督學習方法。同時決策樹也存在劣勢,容易出現過度擬合就是其中之一。本教程主要介紹了用於分類的決策樹,也稱為分類樹。此外,本教程還將涵蓋:· 分類樹的解剖結構(樹的深度、根節點、決策節點、葉節點/終端節點)。