AI產(chǎn)品經(jīng)理必懂算法:決策樹(shù)

6 評(píng)論 11661 瀏覽 92 收藏 10 分鐘

決策樹(shù)(Decision Tree)是一種以樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)展示決策規(guī)則和分類(lèi)結(jié)果的模型,它是將看似無(wú)序、雜亂的已知實(shí)例,通過(guò)某種技術(shù)手段將它們轉(zhuǎn)化成可以預(yù)測(cè)未知實(shí)例的樹(shù)狀模型。

時(shí)隔半月,已近年關(guān)。AI產(chǎn)品經(jīng)理必懂算法的第三篇終于來(lái)了,今天想和大家聊的是決策樹(shù),閑言少敘,切入正題。

先上定義,決策樹(shù)(Decision Tree),又稱(chēng)判斷樹(shù),它是一種以樹(shù)形數(shù)據(jù)結(jié)構(gòu)來(lái)展示決策規(guī)則和分類(lèi)結(jié)果的模型,作為一種歸納學(xué)習(xí)算法,其重點(diǎn)是將看似無(wú)序、雜亂的已知實(shí)例,通過(guò)某種技術(shù)手段將它們轉(zhuǎn)化成可以預(yù)測(cè)未知實(shí)例的樹(shù)狀模型,每一條從根結(jié)點(diǎn)(對(duì)最終分類(lèi)結(jié)果貢獻(xiàn)最大的屬性)到葉子結(jié)點(diǎn)(最終分類(lèi)結(jié)果)的路徑都代表一條決策的規(guī)則。

說(shuō)完了拗口的定義,老規(guī)矩,我們還是用比較通俗易懂的例子,來(lái)講述決策樹(shù)算法的原理。

決策樹(shù)也是一種監(jiān)督學(xué)習(xí)分類(lèi)算法,要求輸入標(biāo)注好類(lèi)別的訓(xùn)練樣本集,每個(gè)訓(xùn)練樣本由若干個(gè)用于分類(lèi)的特征來(lái)表示。決策樹(shù)算法的訓(xùn)練目的在于構(gòu)建決策樹(shù),希望能夠得到一顆可以將訓(xùn)練樣本按其類(lèi)別進(jìn)行劃分的決策樹(shù)。

案例:假設(shè)現(xiàn)在我們想預(yù)測(cè)的是,女性到底想要嫁什么樣的人?我們現(xiàn)在手里擁有一些未婚男性的數(shù)據(jù),其中包括了收入、房產(chǎn)、樣貌、學(xué)歷等字段。

提示:在構(gòu)建決策樹(shù)時(shí),每次都要選擇區(qū)分度最高的特征,使用其特征值對(duì)數(shù)據(jù)進(jìn)行劃分,每次消耗一個(gè)特征,不斷迭代,直到所有特征均被使用為止。

  • 如果還未使用全部特征,剩下的訓(xùn)練樣本就已經(jīng)具有相同類(lèi)別了,則決策樹(shù)的構(gòu)建可以提前完成。
  • 如果使用全部特征后,剩下的訓(xùn)練樣本中仍然包含一個(gè)以上的類(lèi)別,則選擇剩下的訓(xùn)練樣本中占比最大的類(lèi)別作為這批訓(xùn)練樣本的類(lèi)別。

利用決策樹(shù)的思想,首先我們要考慮的是,上述哪些條件在女性選擇男友時(shí)最重要的考量指標(biāo)?好了,假設(shè)我就比較在意收入、比較在意物質(zhì)好了,那么我構(gòu)建的決策樹(shù)應(yīng)該是什么樣的呢?來(lái)張圖大家就明白了。

釋義:這張圖想表達(dá)的意思就是說(shuō),我們從如下幾個(gè)方面去判斷,是否要嫁?首先,看其收入是否達(dá)到1w元,未達(dá)標(biāo)的不嫁,從已經(jīng)合格的人群中繼續(xù)挑選,是否有房產(chǎn),沒(méi)有的不行,以此類(lèi)推,我們將所有的重要指標(biāo)都過(guò)濾一遍以后,就構(gòu)建出一個(gè)完整的決策樹(shù)了,在此之后,有任何男青年放在這兒,我們都能通過(guò)決策樹(shù),輕松預(yù)測(cè)出,此人是否可嫁?

我們來(lái)出個(gè)題試試,某男,風(fēng)流倜儻、風(fēng)度翩翩,但是沒(méi)有獨(dú)立房產(chǎn),收入不固定、學(xué)歷本科,那么到底要不要嫁呢?

圖中的收入、房產(chǎn)、學(xué)歷等都屬于特征,每一個(gè)特征都是一個(gè)判斷的節(jié)點(diǎn),那些不可再向下延伸的就是葉子節(jié)點(diǎn)。可再分的稱(chēng)之為分支節(jié)點(diǎn)。

接下來(lái)了解下決策樹(shù)算法的演進(jìn)歷史,這其中就包含了主流的幾種決策樹(shù)算法,順便我們也可以了解一下這幾種決策樹(shù)的差別。

1. ID3(Iterative Dichotomiser 3)

J.R.Quinlan在20世紀(jì)80年代提出了ID3算法,該算法奠定了日后決策樹(shù)算法發(fā)展的基礎(chǔ)。ID3采用香濃的信息熵來(lái)計(jì)算特征的區(qū)分度選擇熵減少程度最大的特征來(lái)劃分?jǐn)?shù)據(jù),也就是“最大信息熵增益”原則。它的核心思想是以信息增益作為分裂屬性選取的依據(jù)。

存在的缺陷:該算法未考慮如何處理連續(xù)屬性、屬性缺失以及噪聲等問(wèn)題。

下面來(lái)介紹兩個(gè)與此有關(guān)的概念:

信息熵是一種信息的度量方式,表示信息的混亂程度,也就是說(shuō):信息越有序,信息熵越低。舉個(gè)列子:火柴有序放在火柴盒里,熵值很低,相反,熵值很高。它的公式如下:

信息增益: 在劃分?jǐn)?shù)據(jù)集前后信息發(fā)生的變化稱(chēng)為信息增益,信息增益越大,確定性越強(qiáng)。

2. C4.5

J.R.Quinlan針對(duì)ID3算法的不足設(shè)計(jì)了C4.5算法,引入信息增益率的概念。它克服了ID3算法無(wú)法處理屬性缺失和連續(xù)屬性的問(wèn)題,并且引入了優(yōu)化決策樹(shù)的剪枝方法,使算法更高效,適用性更強(qiáng)。

后續(xù),在1996年Mehta.M等人提出了C4.5算法的改進(jìn)算法SLIQ算法,該算法采用屬性表、分類(lèi)表、類(lèi)直方圖的策略來(lái)解決內(nèi)存溢出的問(wèn)題。

同樣介紹一下信息增益率:在決策樹(shù)分類(lèi)問(wèn)題中,即就是決策樹(shù)在進(jìn)行屬性選擇劃分前和劃分后的信息差值。

3. CART(Classification and Regression Tree)

Breiman.L.I等人在1984年提出了CART算法,即分類(lèi)回歸樹(shù)算法。CART算法用基尼指數(shù)(Gini Index)代替了信息熵,用二叉樹(shù)作為模型結(jié)構(gòu),所以不是直接通過(guò)屬性值進(jìn)行數(shù)據(jù)劃分,該算法要在所有屬性中找出最佳的二元?jiǎng)澐?。CART算法通過(guò)遞歸操作不斷地對(duì)決策屬性進(jìn)行劃分,同時(shí)利用驗(yàn)證數(shù)據(jù)對(duì)樹(shù)模型進(jìn)行優(yōu)化。

CART中用于選擇變量的不純性度量是Gini指數(shù),總體內(nèi)包含的類(lèi)別越雜亂,GINI指數(shù)就越大(跟熵的概念很相似)。

2000年Rastogi.R等人以CART算法為理論基礎(chǔ),提出了PUBLIC(A Decision Tree Classifier that Integrates Building and Pruning)算法,剪枝策略更加高效。

當(dāng)我們了解了決策樹(shù)的大概情況之后,接下來(lái)就學(xué)習(xí)一下,如何構(gòu)造決策樹(shù)?

第一步:特征選擇;第二步:決策樹(shù)的生成;第三步:決策樹(shù)的剪枝。

我們來(lái)著重介紹一下剪枝。

剪枝的目的:決策樹(shù)是充分考慮了所有的數(shù)據(jù)點(diǎn)而生成的復(fù)雜樹(shù),有可能出現(xiàn)過(guò)擬合的情況,決策樹(shù)越復(fù)雜,過(guò)擬合的程度會(huì)越高??紤]極端的情況,如果我們令所有的葉子節(jié)點(diǎn)都只含有一個(gè)數(shù)據(jù)點(diǎn),那么我們能夠保證所有的訓(xùn)練數(shù)據(jù)都能準(zhǔn)確分類(lèi),但是很有可能得到高的預(yù)測(cè)誤差,原因是將訓(xùn)練數(shù)據(jù)中所有的噪聲數(shù)據(jù)都”準(zhǔn)確劃分”了,強(qiáng)化了噪聲數(shù)據(jù)的作用。剪枝修剪分裂前后分類(lèi)誤差相差不大的子樹(shù),能夠降低決策樹(shù)的復(fù)雜度,降低過(guò)擬合出現(xiàn)的概率。

如何剪枝?

  • 先剪枝:當(dāng)熵減少的數(shù)量小于某一個(gè)閾值時(shí),就停止分支的創(chuàng)建。這是一種貪心算法。
  • 后剪枝:先創(chuàng)建完整的決策樹(shù),然后再?lài)L試消除多余的節(jié)點(diǎn),也就是采用減枝的方法。

注意事項(xiàng):

決策樹(shù)的生成對(duì)應(yīng)模型的局部選擇,決策樹(shù)的剪枝對(duì)應(yīng)于模型的全局選擇。決策樹(shù)的生成只考慮局部最優(yōu),決策樹(shù)的剪枝則考慮全局最優(yōu)。

說(shuō)了這么多,我們來(lái)總結(jié)一下決策樹(shù)算法的優(yōu)、缺點(diǎn),以便了解的更為深入。

優(yōu)點(diǎn):

  1. 決策樹(shù)易于理解和實(shí)現(xiàn).人們?cè)谕ㄟ^(guò)解釋后都有能力去理解決策樹(shù)所表達(dá)的意義。
  2. 計(jì)算復(fù)雜度不高,輸出結(jié)果易于理解,數(shù)據(jù)缺失不敏感,可以處理不相關(guān)特征。

缺點(diǎn):

  1. 容易過(guò)擬合。
  2. 對(duì)于各類(lèi)別樣本數(shù)量不一致的數(shù)據(jù),在決策樹(shù)當(dāng)中信息增益的結(jié)果偏向于那些具有更多數(shù)值的特征。

 

本文由 @燕然未勒 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash ,基于 CC0 協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 太好了,將常用算法進(jìn)行了總結(jié),支持續(xù)更

    來(lái)自廣東 回復(fù)
  2. 這種決策有瑕疵,最后產(chǎn)生的是矛盾化。解決方法還是要根據(jù)事態(tài)性質(zhì)來(lái)偏向化的。

    回復(fù)
  3. 我想知道某男是否可嫁?
    “某男,風(fēng)流倜儻、風(fēng)度翩翩,但是沒(méi)有獨(dú)立房產(chǎn),收入不固定、學(xué)歷本科,那么到底要不要嫁呢?”

    來(lái)自廣西 回復(fù)
    1. 到?jīng)]房子的地方,就被“卡”了,sorry,一個(gè)悲傷的故事 ?

      來(lái)自北京 回復(fù)
    2. 那就只有所有條件都滿(mǎn)足才能嫁了?這樣的決策樹(shù)如何體現(xiàn)出AI?

      來(lái)自湖南 回復(fù)
  4. 看不懂!

    來(lái)自廣東 回復(fù)