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

機(jī)器學(xué)習(xí)與數(shù)據(jù)科學(xué)決策樹(shù)指南

2018-12-31    來(lái)源:raincent

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

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

 

 

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

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

 

 

這就是現(xiàn)實(shí)中的一個(gè)明顯的決策樹(shù)例子,上述已經(jīng)構(gòu)建了一個(gè)樹(shù)來(lái)模擬一組順序的、層次化的決策,最終得到一個(gè)結(jié)果。這里,為了保持樹(shù)的小巧,還選擇了相當(dāng)“高級(jí)”的決策。例如,如果為天氣設(shè)置了許多可能的選項(xiàng),例如晴天(25度)、下雨(25度)、晴天(26度)、下雨(26度)、晴天(27度)...... 等等,這樣會(huì)使得樹(shù)尺寸會(huì)很大,這種精確的溫度對(duì)于最后做出的決策沒(méi)有太相關(guān)的關(guān)系,因?yàn)橹皇窍胫朗峭饨缡欠裣掠辏鶕?jù)下雨的情況決定是否外出,而溫度的高低對(duì)其影響很小。當(dāng)然,極寒極熱天氣還是在家比較舒服。

機(jī)器學(xué)習(xí)中的決策樹(shù)的概念和上面的思想是相同的,需要構(gòu)建一個(gè)具有一組分層決策的樹(shù),最終給出決策結(jié)果,即分類或回歸預(yù)測(cè)。盡可能使得決策樹(shù)尺寸較小,同時(shí)要實(shí)現(xiàn)高分類/回歸準(zhǔn)確性。

機(jī)器學(xué)習(xí)中的決策樹(shù)

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

歸納|Induction

從高層次來(lái)看,決策樹(shù)歸納需要經(jīng)過(guò)4個(gè)主要步驟:

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

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

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

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

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

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

 

 

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

 

 

其中pk是特定預(yù)測(cè)節(jié)點(diǎn)中第k類的訓(xùn)練實(shí)例樣本的比例。理想情況下, 節(jié)點(diǎn)的錯(cuò)誤值應(yīng)為零,這意味著每個(gè)拆分輸出的類正是我們想要的,一旦到達(dá)那個(gè)特定的決策節(jié)點(diǎn),無(wú)論處于決策邊界的這一邊還是另一邊,其輸出也確定好了。

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

 

 

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

之后是對(duì)樹(shù)模型進(jìn)行分裂,直到樹(shù)有數(shù)千個(gè)分支,但這不是一個(gè)好主意!這樣得到的決策樹(shù)將是巨大的、緩慢的,并且會(huì)過(guò)擬合訓(xùn)練數(shù)據(jù)集。因此,需要設(shè)置一些預(yù)定義的停止標(biāo)準(zhǔn)來(lái)停止樹(shù)的構(gòu)造。

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

修剪|Pruning

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

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

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

實(shí)例實(shí)踐

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

 

 

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

 

 

 

 

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

max_depth:樹(shù)的最大深度,類似于深度神經(jīng)網(wǎng)絡(luò)中的最大層數(shù)。較淺會(huì)使得模型更快但不準(zhǔn)確;更深的模型可能會(huì)使得準(zhǔn)確性更高,但過(guò)擬合的風(fēng)險(xiǎn)也增大,且運(yùn)行很慢;

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

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

min_impurity_split:樹(shù)生長(zhǎng)早期停止的閾值,如果節(jié)點(diǎn)的雜質(zhì)高于閾值,則該節(jié)點(diǎn)將分裂,可用于權(quán)衡對(duì)抗過(guò)擬合(高值、小樹(shù))與高精度(低值、大樹(shù));

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

實(shí)際中應(yīng)用決策樹(shù)的技巧

以下是決策樹(shù)的優(yōu)缺點(diǎn)總結(jié),可以幫助讀者確定它是否適合各自的問(wèn)題,以及有關(guān)如何有效應(yīng)用它們的一些提示:

優(yōu)點(diǎn)| Pros

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

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

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

缺點(diǎn)|Cons

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

出于與過(guò)擬合情況類似的原因,決策樹(shù)也容易變得偏向于在數(shù)據(jù)集中占多數(shù)的類別,對(duì)不平衡數(shù)據(jù)進(jìn)行某種類平衡(例如類權(quán)重、采樣或?qū)iT(mén)的損失函數(shù))操作是一個(gè)不錯(cuò)的主意。

作者信息

George Seif,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)

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

標(biāo)簽: 網(wǎng)絡(luò)

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

上一篇:11 月份最熱門(mén)的機(jī)器學(xué)習(xí)開(kāi)源項(xiàng)目及 Reddit 討論 TOP 5

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