關於「樹」的算法:現實生活中的決策樹

2020-12-06 讀芯術

全文共2874字,預計學習時長8分鐘

圖源:unsplash

就像樹木是人類生活的重要組成部分一樣,基於樹的算法也是機器學習的重要組成部分。樹的結構給了我們開發算法的靈感,並再將其反饋到機器,讓它們學習我們希望它們學習的東西,以解決現實生活中的問題。

這些基於樹的學習算法被認為是最好和最常用的監督學習方法之一:決策樹、隨機森林、梯度提升等方法在各種數據科學問題中得到了廣泛應用。對於每一個機器學習的初學者來說,學習這些算法並將其用於建模非常重要。

決策樹是什麼?

決策樹是一種帶有節點的樹狀圖,節點表示我們選取一個屬性並提出問題,邊表示問題的答案,葉表示實際輸出或類標籤。它們被用於具有簡單線性決策面的非線性決策。

決策樹對例子進行分類,方法是將它們從樹的根排序到某個葉節點,葉節點為例子進行分類。樹中的每個節點作為某個屬性的測試用例,從該節點下行的每條邊都對應於測試用例的可能答案之一。這個過程本質上屬於遞歸性質,並且對於每一個紮根於新節點的子樹都要重複進行。

現實生活中的決策樹

你肯定在生活中使用過決策樹來做決定。舉個例子,決定是否要在某天和孩子一起打網球。

這取決於各種各樣的因素,比如你是否能按時下班,是否能提前下班,你是否能在晚上6點之前到家,這取決於交通狀況,或者你的孩子那天是否已經安排了其他活動;總的來說,你是否能和孩子一起出去打網球,取決於你和你的孩子在那一天的時間安排和外面的天氣。

如果天氣很好,你可以按時下班,也可以準時回家,孩子也沒有別的課,你可以和他一起去網球場。如果你按時到達,但他那天已經安排了其他活動,你可能只想在家放鬆一下,看一些電影。

這是一個典型的現實生活中決策樹的例子。我們已經建立了一個樹來模擬一組連續的、分層的決策,這些決策最終會導致一些最終的結果。

請注意,我們還選擇了相當「高級」的決策,以保持樹的規模。例如,如果我們設置很多可能的天氣選項,比如25度晴,25度雨,26度晴,26度雨,27度晴……等等,我們的樹將變得巨大!確切的溫度其實不太重要,我們只是想知道是否適合戶外活動。

因此,你可以把最近幾天的因素都計算出來,並繪製一個查詢表,如下所示。

決策樹算法如何工作?

任何決策樹算法背後都有如下基本思想:

1.使用屬性選擇度量(ASM)選擇最佳屬性來分割記錄。

2.將該屬性設為一個決策節點,並將數據集分解為更小的子集。

3.通過對每個子元素遞歸重複此過程來開始建樹,直到滿足以下條件之一:

· 所有元組屬於同一屬性值

· 沒有其他屬性

· 沒有其他實例

ASM通過解釋給定的數據集為每個特性(或屬性)提供了一個等級。最佳得分屬性將被選擇為分割屬性。對於連續值屬性,還需要定義分支的分割點。最常用的選擇指標是信息增益、增益比和基尼係數。

信息增益是什麼,如何衡量?

信息增益是一種統計屬性,它測量給定屬性根據目標分類分離訓練實例的程度。

信息增益是熵(隨機性)的降低。根據給定的屬性值計算數據集分割前熵與分割後平均熵的差值。熵的基本計算公式為:

其中,Pi是D中任意元組屬於類Ci的概率。

那麼,信息增益的計算方式為:

現在,來計算每個父節點和子節點的熵:

E(Parent Node) =-[P(tennis)log(base2)P(tennis)

+ P(Home)log(base2)P(Home)]

= — [(1/2)log(base2)(1/2) +(1/2)log(base2)(1/2)]

= 1

Since P(tennis) = 1/2 and P(Home) = 1/2

現在,讓我們看看父節點是否按第一個屬性分割,即天氣。如果我們看到上面給出的數據,根據天氣屬性,我們會得到以下值,供我們決定是否打網球:

Rainy: Stay at Home

Sunny: Tennis,Tennis,StayHome

右側子節點的熵——E(rainy):

= -P(Home)log(base2)P(Home)

=-1log(1)= 0

左側子節點的熵——E(Sunny):

-[P(Home)log(base2)P(Home)

+ P(Tennis)log(base2)P(Tennis)]

= -[(1/3)log(base2)(1/3) +(2/3)log(base2)(2/3)] = 0.9

可得

Information Gain(Weather) =Entropy(Parent) — [sum of(weighted average*entropy of each child)]

= 1 — [(3/4)*(0.9)+(1/4)*0] = 0.325

同樣,我們也計算了其他屬性的熵和信息增益,得到以下結果:

IG(WorkSchedule) = 1

IG(Traffic) = 0.325

IG(Availability) = 0.325

由於「工作日程」這個屬性的信息增益最高,我們可以說,能夠預測你當天是否會打網球的最準確的屬性是你的工作日程。

基尼指數是什麼?

決策樹算法CART(分類與回歸樹)採用基尼法創建分割點。

其中,pi是D中元組屬於Ci類的概率。

基尼指數,又稱基尼雜質,指計算隨機選取某一特定屬性時分類錯誤的概率。如果所有元素都連結到一個類,那麼它就可以被稱為pure。基尼指數考慮每個屬性的二元分割。你可以計算每個分區雜質的加權和。若對屬性A進行二叉分割,將數據D分成D1和D2,則D的基尼指數為:

在離散值屬性的情況下,為所選屬性提供最小基尼指數的子集被選為分割屬性。對於連續值屬性,策略是選擇每對相鄰的值作為可能的分割點,選擇基尼指數較小的點作為分割點。

選擇基尼指數最小的屬性作為分割屬性。

現在,試著根據天氣屬性來計算上面數據的基尼指數。

Gini(Sunny) = 1 — [(2/3)*(2/3) +(1/3)*(1/3)] = 4/9 = 0.444

Gini(Rainy) = 1 — [(1/1)*(1/1)] = 0

可得

Gini(Weather) = (3/4) * 0.444 + (1/4) * 0 =0.333

基於其他屬性,基尼指數如下:

Gini(Traffic) = (3/4) * {1 —[(1/3)*(1/3) + (2/3)*(2/3)] } + (1/4) * { 1- [ (1/1)*(1/1)]} = 0.333

Gini(Work Schedule) = (2/4) * [1 —(1*1)] + (2/4) * [1 — (1*1)] = 0

Gini(Availability) = 0.333

因此,基尼係數最小的屬性,即工作日程,在這裡是決策的分割屬性。

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 機器學習中決策樹的原理與算法 | 科普
    我們知道,在機器學習中有兩類十分重要的問題,一類是分類問題,一類是回歸問題。我們今天所要探討的就是在分類和回歸問題中所用到的一種非常基本的方法,叫決策樹。決策樹也是重要的標籤學習方法。這篇文章裡面的部分內容來自於 AI 慕課學院的《機器學習理論與實戰高級特訓班》課程筆記。
  • 機器學習-決策樹(ID3算法)
    決策樹(decision tree)是一種基本的分類與回歸方法。這裡討論用於分類的決策樹。
  • 從決策樹到隨機森林:樹型算法的原理與實現
    基於樹(Tree based)的學習算法在數據科學競賽中是相當常見的。這些算法給預測模型賦予了準確性、穩定性以及易解釋性。和線性模型不同,它們對非線性關係也能進行很好的映射。常見的基於樹的模型有:決策樹(decision trees)、隨機森林(random forest)和提升樹(boosted trees)。
  • 進化決策樹:當機器學習從生物學中汲取靈感時
    圖1-日本的高速鐵路,新幹線,來源生物學知識也可以成為機器學習中靈感的來源。內容本文重點關注的一個例子是進化決策樹。這類分類器使用進化算法來構建魯棒性更強,性能更好的決策樹。進化算法依賴於生物進化啟發的機制。決策樹是什麼?如何根據進化算法搭建決策樹?與其它分類器相比,進化決策樹的表現如何?
  • 機器學習實戰:決策樹原來這麼簡單
    上一篇:機器學習實戰-監督學習、無監督學習上一篇的文章中,我們主要對監督學習與無監督學習進行了講解,其實還有一個半監督學習,這個可以自行百度,也是比較簡單。這一篇中,我們來講解監督學習中經常用到的算法,決策樹。
  • 使用Scikit-Learn了解決策樹分類
    在這篇文章中,我將介紹-以基尼雜質為標準的決策樹算法拆分原則。決策樹在現實生活數據分類中的應用。創建一個管道,並使用GridSearchCV為分類任務選擇最佳參數。決策樹決策樹(以下簡稱DT)算法的思想是學習一組if/else問題來進行決策。決策樹可以組合數值數據和分類數據。一些用於決策樹的術語如下圖所示在這裡,我們看到了如何根據節點在DT中的位置劃分節點。
  • 決策樹,回歸樹,自動分類,三種自動化學習方法
    關於自動化機器學習的研究一直很火爆,隨著人工智慧的發展,越來越多的人對它感興趣,我也是希望對機器學習感興趣的人關注我的專欄,探索機器學習相關知識。自動機器學習,將統計學、機器學習、深度學習結合到一起,從而可以讓神經網絡能夠應用於各種不同數據類型。
  • 機器學習之決策樹在sklearn中的實現
    小夥伴們大家好~o( ̄▽ ̄)ブ,首先聲明一下,我的開發環境是Jupyter lab,所用的庫和版本大家參考:Python 3.7.1(你的版本至少要3.4以上Scikit-learn 0.20.0 (你的版本至少要0.20Graphviz 0.8.4 (沒有畫不出決策樹哦,安裝代碼conda install python-graphviz
  • 機器學習|決策樹的生成過程是怎樣?(一)
    本文筆者將用具體例子講述決策樹的構建過程,分析:決策樹生成過程中有什麼樣的問題?一、基本概念決策樹的定義:首先,決策樹是一種有監督的分類算法——即給定X,Y值,構建X,Y的映射關係。不同於線性回歸等是多項式,決策樹是一種樹形的結構,一般由根節點、父節點、子節點、葉子節點構成如圖所示。
  • 以鳶尾花數據集為例,用Python對決策樹進行分類
    同時決策樹也存在劣勢,容易出現過度擬合就是其中之一。本教程主要介紹了用於分類的決策樹,也稱為分類樹。此外,本教程還將涵蓋:· 分類樹的解剖結構(樹的深度、根節點、決策節點、葉節點/終端節點)。同樣,算法選擇也會為不純節點選擇最佳分類點(我們將在下一節中介紹數學方法)在上圖中,樹的最大深度為2。樹深度可以衡量在進行預測之前可以進行多少次分裂。這個過程可以繼續進行更多分裂,直到樹儘可能純淨。分裂過程中的大量重複可能會導致形成擁有很多節點的分類樹。通常會導致訓練數據集過度擬合。幸運的是,實現大多數分類樹支持預剪枝來控制樹的最大深度,從而減少過度擬合。
  • 基於Python的決策樹分類器與剪枝
    決策樹很適合處理不同數據類型的變量。決策樹算法在決定每個節點的拆分時考慮了所有可能的變量,可以獲得最大加權不純度增益的變量被用作特定節點的決策變量。在上面的例子中,使用「性別」作為決策變量的加權不純度增益是0.4,但是,假設使用「年級」作為決策變量,加權不純度增益0.56,算法將使用「年級」作為創建第一個分割的決策變量。
  • 樹模型(一)——樹的構造
    從樹結構的概念可以得出樹結構結點數和層級的關係大體如下:樹總結點數等於所有結點的度數加1;度為n的樹中,根結點是第1層,則第i層上最多有n(i-1)個結點。決策樹樹結構是一種常見的決策方式。在日常生活中應用很廣泛。在決策的過程中,把影響該事件的過程進行層層拆解,將最重要的因素排在前面,層層決策,最後得到結論。
  • Python機器學習sklearn模塊——決策樹
    決策樹可以用來解決分類與回歸問題,是一種非線性模型;一課決策樹一般包含一個根節點、若干個內部節點和若干個葉節點;生產決策樹最關鍵的是如何選擇最優劃分屬性,我們希望分支節點所包含的樣本近可能的屬於同一類別,即節點的「純度」越來越高;而評估樣本集合純度的常用指標有信息增益、增益率和基尼指數;決策樹容易出現過擬合狀況,因為它們可以通過精確的描述每個訓練樣本的 特徵而構建出複雜的決策樹
  • 決策樹分析,讓你的風險應對更專業
    又或者在多個應對方案中不知道重點在哪?本文將通過決策樹分析法開啟一些風險應對的「靈感」。  初 識  所謂的決策樹分析,是在不確定因素的背景下,對可能出現的風險定量分析,用來作出有利決策的一個工具。通過在若干備選方案中對不同分支事件的產生的發展路徑分析發生概率及產生的風險(包括威脅和機會),計算每條路徑淨值,根據預期收益選出最優路徑。
  • 童話故事中的樹,現實中有嗎
    如果提到會走路的樹可能很多人對於這件事,第一時間會想起以前的童話故事,裡面的樹仿佛有了生命,可以任意走動,但是在現實生活中,樹是不能走路的,是一直固定著的。那麼現實生活中是否有例外呢?今天我們要給大家說的是,在世界上的一種會走路的樹。我們都知道,動物是會走路的,植物是不會走路的。今天來給大家說的這種樹,就是一種會走路的樹。你是否相信他真的會走路?
  • 深度神經決策樹:深度神經網絡和樹模型結合的新模型
    ——深度神經決策樹(Deep Neural Decision Trees, DNDT)。深度神經網絡在計算機視覺、語音識別和語言模型等很多領域取得了成功,但作為缺乏可解釋性的黑箱模型,限制了它在模型必須求證因果領域的應用,在這些領域中我們需要明確決策是如何產生的以便評測驗證整個決策過程。除此之外,在類似於商業智能等領域,知曉每一個因素是如何影響最終決策比決策本身有時候更為重要。
  • 美團技術解析:自動駕駛中的決策規划算法概述
    自動駕駛系統中的決策規劃模塊分層結構,引用自[2] 如圖1所示,典型的決策規劃模塊可以分為三個層次。這一過程類似於我們生活中經常用到的「導航」功能,區別在於自動駕駛中使用的高精地圖與我們常見的地圖不太一樣,在高精地圖中包含了每條車道在內的更多信息。常見的全局路徑規划算法包括Dijkstra和A算法,以及在這兩種算法基礎上的多種改進。Dijkstra算法[3]和A*算法[4]也是在許多規劃問題中應用最為廣泛的兩種搜索算法。
  • SKlearn實現鳶尾花分類:決策樹
    決策樹簡介決策樹是一種特殊的樹形結構,一般由節點和有向邊組成。其中,節點表示特徵、屬性或者一個類。而有向邊包含有判斷條件。如圖所示,決策樹從根節點開始延伸,經過不同的判斷條件後,到達不同的子節點。而上層子節點又可以作為父節點被進一步劃分為下層子節點。
  • 《算法》筆記 11 - 最小生成樹
    貪心算法切分定理是所有解決最小生成樹問題算法的基礎,這些算法都是一種貪心算法的特殊情況,貪心算法是一類在每一步選擇中都採取在當前狀態下最好或最優的選擇,從而希望導致結果是最好或最優的算法。解決最小生成樹問題時,會使用切分定理找到最小生成樹的一條邊,不斷重複直到找到最小生成樹的所有邊。
  • 《小王子》中的猴麵包樹竟然真的存在,現實中的它原來長這樣
    大家好,這裡是小禾悟生活,跟著小禾,帶你領略不一樣的遠方。在《小王子》中,有這樣一段情節,關於猴麵包樹的故事,而在我們的現實世界上,竟然也有這猴麵包樹,那它是什麼樣的呢?在《小王子》中,猴麵包樹這種植物是一種可怕的種子,只要它一有機會,便會瘋狂地滋長,最後覆蓋整個B612星球,如果星球上的樹根過多的話,這些植物就會撐爆這個星球。在《小王子》這個故事中,猴麵包樹有著負面含義的象徵,而在我們現實世界中的猴麵包樹又是怎樣的呢?