中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

機器學習與數(shù)據(jù)科學決策樹指南

2018-12-31    來源:raincent

容器云強勢上線!快速搭建集群,上萬Linux鏡像隨意使用

還在為如何抉擇而感到糾結嗎?快采用決策樹(Decision Tree)算法幫你做出決定吧。決策樹是一類非常強大的機器學習模型,具有高度可解釋的同時,在許多任務中也有很高的精度。決策樹在機器學習模型領域的特殊之處在于其信息表示的很清楚,而不像一些機器學習方法是個黑匣子,這是因為決策樹通過訓練學到的“知識”直接形成層次結構,該結構以這樣的方式保存和顯示學到的知識,即使是非專業(yè)人士也可以容易地弄明白。

 

 

現(xiàn)實生活中的決策樹

在現(xiàn)實生活中,我們常常用過類似于決策樹的方式來決定自己的生活。例如,決定周末安排什么樣的活動。采取怎樣的活動可能取決于一些因素,比如是否愿意和朋友一起出去或獨自度過周末、周末的天氣如何等。假設就這兩個因素影響你做出決定的話,如果天氣晴朗,并且你的朋友可以一起參與,那么你可能想踢足球。如果是下雨天,可能會一起去看電影。如果朋友有事無法參加,那么無論天氣如何,可能會去看會書、玩會電子游戲。

 

 

這就是現(xiàn)實中的一個明顯的決策樹例子,上述已經構建了一個樹來模擬一組順序的、層次化的決策,最終得到一個結果。這里,為了保持樹的小巧,還選擇了相當“高級”的決策。例如,如果為天氣設置了許多可能的選項,例如晴天(25度)、下雨(25度)、晴天(26度)、下雨(26度)、晴天(27度)...... 等等,這樣會使得樹尺寸會很大,這種精確的溫度對于最后做出的決策沒有太相關的關系,因為只是想知道是外界是否下雨,根據(jù)下雨的情況決定是否外出,而溫度的高低對其影響很小。當然,極寒極熱天氣還是在家比較舒服。

機器學習中的決策樹的概念和上面的思想是相同的,需要構建一個具有一組分層決策的樹,最終給出決策結果,即分類或回歸預測。盡可能使得決策樹尺寸較小,同時要實現(xiàn)高分類/回歸準確性。

機器學習中的決策樹

決策樹模型的構建一般分為兩個步驟:歸納(induction)和修剪(pruning)。歸納是實際構建樹的步驟,即根據(jù)我們的數(shù)據(jù)設置所有的分層決策邊界。但由于訓練決策樹的性質,樹模型可能容易出現(xiàn)嚴重的過擬合現(xiàn)象。這個時候就需要采用修剪處理,修剪就是從決策樹中刪除不必要的分支結構的過程,有效地降低了對抗過擬合的復雜性,并使其更容易解釋。

歸納|Induction

從高層次來看,決策樹歸納需要經過4個主要步驟:

訓練數(shù)據(jù)集應具有一些特征變量、分類或回歸輸出;

確定數(shù)據(jù)集中的“最佳特征”以分割數(shù)據(jù);

將數(shù)據(jù)拆分為包含此最佳特征的可能值的子集,這種分裂基本上定義了樹上的節(jié)點,即每個節(jié)點是基于數(shù)據(jù)中的某個特征的分裂點;

使用從步驟3創(chuàng)建的數(shù)據(jù)子集遞歸地生成新的樹節(jié)點,保持分裂直到達到一個優(yōu)化點,在該點已經通過某種度量優(yōu)化了最大精度,同時最小化了分裂/節(jié)點的數(shù)量。

第1步很簡單,只需好好分析數(shù)據(jù)集。對于步驟2,通常使用貪婪算法來選擇要使用的特征和特定分割,以最小化代價函數(shù)。構建決策樹時執(zhí)行的拆分相當于劃分特征空間。我們將迭代地嘗試不同的分割點,最后選擇成本最低的分割點。也可以只在數(shù)據(jù)集中的值范圍內進行拆分,這將使得我們免于浪費計算來測試那些表現(xiàn)差的分裂點。

對于回歸樹,可以使用簡單的平方誤差作為模型的代價函數(shù):

 

 

其中,Y是期望輸出,Y-hat是預測值,對數(shù)據(jù)集中的所有樣本求和以獲得總誤差。對于分類,使用的是基尼指數(shù)函數(shù)(Gini Index Function):

 

 

其中pk是特定預測節(jié)點中第k類的訓練實例樣本的比例。理想情況下, 節(jié)點的錯誤值應為零,這意味著每個拆分輸出的類正是我們想要的,一旦到達那個特定的決策節(jié)點,無論處于決策邊界的這一邊還是另一邊,其輸出也確定好了。

在數(shù)據(jù)集中具有單個分類的概念被稱為信息增益。以下是舉例:

 

 

如果選擇了某種劃分,其中每個輸出根據(jù)輸入數(shù)據(jù)混合類別,這種情況實際上根本沒有獲得任何信息; 另一方面,如果采取的分割對于每個輸出的類的正確率都很高,那么已經獲得 了在具體特征變量上以特定方式分割的信息。

之后是對樹模型進行分裂,直到樹有數(shù)千個分支,但這不是一個好主意!這樣得到的決策樹將是巨大的、緩慢的,并且會過擬合訓練數(shù)據(jù)集。因此,需要設置一些預定義的停止標準來停止樹的構造。

最常見的停止方法是對分配給每個葉節(jié)點的訓練樣本的數(shù)量使用最小數(shù)量。如果計數(shù)小于某個最小值,則不接受拆分,并將該節(jié)點作為最終葉節(jié)點。如果所有的葉子節(jié)點都成為最終節(jié)點,則訓練停止。較小的最小數(shù)量將提供更精細的分割和信息,但也容易過擬合訓練數(shù)據(jù)。因此,最小數(shù)量的取值通;跀(shù)據(jù)集設置,具體取決于每個類中預計有多少個示例樣本。

修剪|Pruning

由于訓練決策樹的性質,可能容易會出現(xiàn)嚴重的過擬合現(xiàn)象。為每個節(jié)點設置最小實例數(shù)的正確值可能具有挑戰(zhàn)性。大多數(shù)情況下,可能只是希望做出合適的決定,而無需最優(yōu)的決定。因此,無需使得最小值非常小獲得非常復雜的樹,且有很多分裂是多余的,并沒有提高模型的準確性。

樹修剪是一種利用修剪樹中不必要的分裂的技術。從上層開始,修剪將樹的一部分從嚴格的決策邊界壓縮為更平滑、更通用的樹,從而有效地降低樹的復雜性。決策樹的復雜性定義為樹中的分裂數(shù)。

一種簡單而高效的修剪方法是遍歷樹中的每個節(jié)點,并評估將其移除后其代價函數(shù)上的效果。如果移除后,代價函數(shù)變化不大,那就修剪掉該節(jié)點。

實例實踐

使用Scikit Lear中內置的函數(shù)來實現(xiàn)分類和回歸的決策樹是非常容易的。首先加載數(shù)據(jù)集并初始化決策樹以進行分類。

 

 

Scikit.還允許使用graphviz庫可視化構建的樹,它附帶了一些選項,這些選項將有助于可視化決策節(jié)點,并將模型學到的內容進行分割,下面根據(jù)特征名稱對節(jié)點進行著色,并顯示每個節(jié)點的類和特征信息:

 

 

 

 

也可以在Scikit Learn中為決策樹模型設置幾個參數(shù)。以下是一些有趣的嘗試以獲得更好的結果:

max_depth:樹的最大深度,類似于深度神經網絡中的最大層數(shù)。較淺會使得模型更快但不準確;更深的模型可能會使得準確性更高,但過擬合的風險也增大,且運行很慢;

min_samples_split: 拆分節(jié)點所需的最小樣本數(shù), 將其設置為合適的值將有助于減輕過擬合;

max_features:查找最佳拆分時要考慮的特征數(shù),更高可能意味著更好的結果,但訓練也需要更長的時間;

min_impurity_split:樹生長早期停止的閾值,如果節(jié)點的雜質高于閾值,則該節(jié)點將分裂,可用于權衡對抗過擬合(高值、小樹)與高精度(低值、大樹);

presort:是否預先分配數(shù)據(jù)以加快擬合中最佳分割的發(fā)現(xiàn)。如果事先對每個特征的數(shù)據(jù)進行排序,訓練算法將更容易找到合適的分裂值;

實際中應用決策樹的技巧

以下是決策樹的優(yōu)缺點總結,可以幫助讀者確定它是否適合各自的問題,以及有關如何有效應用它們的一些提示:

優(yōu)點| Pros

易于理解和解釋:在每個節(jié)點都能夠確切地看到模型做出了什么決定。在實踐中,能夠完全理解準確度和誤差來自何處,模型可以很好地處理哪種類型的數(shù)據(jù),以及輸出如何受到特征值的影響。Scikit learn的可視化工具是可視化和理解決策樹的絕佳選擇;

需要準備很少的數(shù)據(jù):許多機器學習模型可能需要大量的數(shù)據(jù)預處理,例如歸一化,并且可能需要復雜的正則化方案。另一方面,在調整了一些參數(shù)后,決策樹可以很好地做到開箱即用;

使用樹進行推理的計算成本與訓練樹的數(shù)據(jù)集呈對數(shù)關系,這是一個巨大的優(yōu)勢,意味著輸入更多的數(shù)據(jù)不一定會對推理速度產生巨大的影響;

缺點|Cons

由于訓練的性質,過擬合在決策樹中很常見。通常建議執(zhí)行某種類型的降維,例如PCA, 以便樹不必學習如此多的特征上的拆分;

出于與過擬合情況類似的原因,決策樹也容易變得偏向于在數(shù)據(jù)集中占多數(shù)的類別,對不平衡數(shù)據(jù)進行某種類平衡(例如類權重、采樣或專門的損失函數(shù))操作是一個不錯的主意。

作者信息

George Seif,機器學習和深度學習

文章原標題《A Guide to Decision Trees for Machine Learning and Data Science》,譯者:海棠

標簽: 網絡

版權申明:本站文章部分自網絡,如有侵權,請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉載文章言論不代表本站觀點!
本站所提供的圖片等素材,版權歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:11 月份最熱門的機器學習開源項目及 Reddit 討論 TOP 5

下一篇:實現(xiàn)通用人工智能還要多久?Hinton 與 AlphaGo 之父這樣回答