日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

最常用的决策树算法(一):ID3、C4.5、CART

發(fā)布時(shí)間:2025/3/8 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最常用的决策树算法(一):ID3、C4.5、CART 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

決策樹是一個(gè)非常常見并且優(yōu)秀的機(jī)器學(xué)習(xí)算法,它易于理解、可解釋性強(qiáng),其可作為分類算法,也可用于回歸模型。本文將分三篇介紹決策樹,第一篇介紹基本樹(包括 ID3、C4.5、CART),第二篇介紹 Random Forest、Adaboost、GBDT,第三篇介紹 Xgboost 和 LightGBM。

第一篇:基本樹(包括 ID3、C4.5、CART)

對于基本樹我將大致從以下四個(gè)方面介紹每一個(gè)算法:思想、劃分標(biāo)準(zhǔn)、剪枝策略,優(yōu)缺點(diǎn)。

ID3

ID3 算法是建立在奧卡姆剃刀(用較少的東西,同樣可以做好事情)的基礎(chǔ)上:越是小型的決策樹越優(yōu)于大的決策樹。

1.1 思想

從信息論的知識中我們知道:期望信息越小,信息熵越大,從而樣本純度越低。ID3 算法的核心思想就是以信息增益來度量特征選擇,選擇信息增益最大的特征進(jìn)行分裂。算法采用自頂向下的貪婪搜索遍歷可能的決策樹空間(C4.5 也是貪婪搜索)。

其大致步驟為:

  • 初始化特征集合和數(shù)據(jù)集合;

  • 計(jì)算數(shù)據(jù)集合信息熵和所有特征的條件熵,選擇信息增益最大的特征作為當(dāng)前決策節(jié)點(diǎn);

  • 更新數(shù)據(jù)集合和特征集合(刪除上一步使用的特征,并按照特征值來劃分不同分支的數(shù)據(jù)集合);

  • 重復(fù) 2,3 兩步,若子集值包含單一特征,則為分支葉子節(jié)點(diǎn)。

  • 1.2 劃分標(biāo)準(zhǔn)

    ID3 使用的分類標(biāo)準(zhǔn)是信息增益,它表示得知特征 A 的信息而使得樣本集合不確定性減少的程度。

    數(shù)據(jù)集的信息熵:

    其中??表示集合 D 中屬于第 k 類樣本的樣本子集。

    針對某個(gè)特征 A,對于數(shù)據(jù)集 D 的條件熵 H(D|A) 為:

    其中??表示 D 中特征 A 取第 i 個(gè)值的樣本子集,?表示??中屬于第 k 類的樣本子集。

    信息增益 = 信息熵 - 條件熵:

    信息增益越大表示使用特征 A 來劃分所獲得的“純度提升越大”。

    1.3 缺點(diǎn)

    • ID3 沒有剪枝策略,容易過擬合;

    • 信息增益準(zhǔn)則對可取值數(shù)目較多的特征有所偏好,類似“編號”的特征其信息增益接近于 1;

    • 只能用于處理離散分布的特征;

    • 沒有考慮缺失值。

    C4.5

    C4.5 算法最大的特點(diǎn)是克服了 ID3 對特征數(shù)目的偏重這一缺點(diǎn),引入信息增益率來作為分類標(biāo)準(zhǔn)。

    2.1 思想

    C4.5 相對于 ID3 的缺點(diǎn)對應(yīng)有以下改進(jìn)方式:

    • 引入悲觀剪枝策略進(jìn)行后剪枝;

    • 引入信息增益率作為劃分標(biāo)準(zhǔn);

    • 將連續(xù)特征離散化,假設(shè) n 個(gè)樣本的連續(xù)特征 A 有 m 個(gè)取值,C4.5 將其排序并取相鄰兩樣本值的平均數(shù)共 m-1 個(gè)劃分點(diǎn),分別計(jì)算以該劃分點(diǎn)作為二元分類點(diǎn)時(shí)的信息增益,并選擇信息增益最大的點(diǎn)作為該連續(xù)特征的二元離散分類點(diǎn);

    • 對于缺失值的處理可以分為兩個(gè)子問題:1. 在特征值缺失的情況下進(jìn)行劃分特征的選擇?(即如何計(jì)算特征的信息增益率)2. 選定該劃分特征,對于缺失該特征值的樣本如何處理?(即到底把這個(gè)樣本劃分到哪個(gè)結(jié)點(diǎn)里)

      • 針對問題一,C4.5 的做法是:對于具有缺失值特征,用沒有缺失的樣本子集所占比重來折算;

      • 針對問題二,C4.5 的做法是:將樣本同時(shí)劃分到所有子節(jié)點(diǎn),不過要調(diào)整樣本的權(quán)重值,其實(shí)也就是以不同概率劃分到不同節(jié)點(diǎn)中。

    2.2 劃分標(biāo)準(zhǔn)

    利用信息增益率可以克服信息增益的缺點(diǎn),其公式為

    ?稱為特征 A 的固有值。

    這里需要注意,信息增益率對可取值較少的特征有所偏好(分母越小,整體越大),因此 C4.5 并不是直接用增益率最大的特征進(jìn)行劃分,而是使用一個(gè)啟發(fā)式方法:先從候選劃分特征中找到信息增益高于平均值的特征,再從中選擇增益率最高的。

    2.3 剪枝策略

    為什么要剪枝:過擬合的樹在泛化能力的表現(xiàn)非常差。

    2.3.1 預(yù)剪枝

    在節(jié)點(diǎn)劃分前來確定是否繼續(xù)增長,及早停止增長的主要方法有:

    • 節(jié)點(diǎn)內(nèi)數(shù)據(jù)樣本低于某一閾值;

    • 所有節(jié)點(diǎn)特征都已分裂;

    • 節(jié)點(diǎn)劃分前準(zhǔn)確率比劃分后準(zhǔn)確率高。

    預(yù)剪枝不僅可以降低過擬合的風(fēng)險(xiǎn)而且還可以減少訓(xùn)練時(shí)間,但另一方面它是基于“貪心”策略,會(huì)帶來欠擬合風(fēng)險(xiǎn)。

    2.3.2 后剪枝

    在已經(jīng)生成的決策樹上進(jìn)行剪枝,從而得到簡化版的剪枝決策樹。

    C4.5 采用的悲觀剪枝方法,用遞歸的方式從低往上針對每一個(gè)非葉子節(jié)點(diǎn),評估用一個(gè)最佳葉子節(jié)點(diǎn)去代替這課子樹是否有益。如果剪枝后與剪枝前相比其錯(cuò)誤率是保持或者下降,則這棵子樹就可以被替換掉。C4.5 通過訓(xùn)練數(shù)據(jù)集上的錯(cuò)誤分類數(shù)量來估算未知樣本上的錯(cuò)誤率。

    后剪枝決策樹的欠擬合風(fēng)險(xiǎn)很小,泛化性能往往優(yōu)于預(yù)剪枝決策樹。但同時(shí)其訓(xùn)練時(shí)間會(huì)大的多。

    2.4 缺點(diǎn)

    • 剪枝策略可以再優(yōu)化;

    • C4.5 用的是多叉樹,用二叉樹效率更高;

    • C4.5 只能用于分類;

    • C4.5 使用的熵模型擁有大量耗時(shí)的對數(shù)運(yùn)算,連續(xù)值還有排序運(yùn)算;

    • C4.5 在構(gòu)造樹的過程中,對數(shù)值屬性值需要按照其大小進(jìn)行排序,從中選擇一個(gè)分割點(diǎn),所以只適合于能夠駐留于內(nèi)存的數(shù)據(jù)集,當(dāng)訓(xùn)練集大得無法在內(nèi)存容納時(shí),程序無法運(yùn)行。

    CART

    ID3 和 C4.5 雖然在對訓(xùn)練樣本集的學(xué)習(xí)中可以盡可能多地挖掘信息,但是其生成的決策樹分支、規(guī)模都比較大,CART 算法的二分法可以簡化決策樹的規(guī)模,提高生成決策樹的效率。

    3.1 思想

    CART 包含的基本過程有分裂,剪枝和樹選擇。

    • 分裂:分裂過程是一個(gè)二叉遞歸劃分過程,其輸入和預(yù)測特征既可以是連續(xù)型的也可以是離散型的,CART 沒有停止準(zhǔn)則,會(huì)一直生長下去;

    • 剪枝:采用代價(jià)復(fù)雜度剪枝,從最大樹開始,每次選擇訓(xùn)練數(shù)據(jù)熵對整體性能貢獻(xiàn)最小的那個(gè)分裂節(jié)點(diǎn)作為下一個(gè)剪枝對象,直到只剩下根節(jié)點(diǎn)。CART 會(huì)產(chǎn)生一系列嵌套的剪枝樹,需要從中選出一顆最優(yōu)的決策樹;

    • 樹選擇:用單獨(dú)的測試集評估每棵剪枝樹的預(yù)測性能(也可以用交叉驗(yàn)證)。

    CART 在 C4.5 的基礎(chǔ)上進(jìn)行了很多提升。

    • C4.5 為多叉樹,運(yùn)算速度慢,CART 為二叉樹,運(yùn)算速度快;

    • C4.5 只能分類,CART 既可以分類也可以回歸;

    • CART 使用 Gini 系數(shù)作為變量的不純度量,減少了大量的對數(shù)運(yùn)算;

    • CART 采用代理測試來估計(jì)缺失值,而 C4.5 以不同概率劃分到不同節(jié)點(diǎn)中;

    • CART 采用“基于代價(jià)復(fù)雜度剪枝”方法進(jìn)行剪枝,而 C4.5 采用悲觀剪枝方法。

    3.2 劃分標(biāo)準(zhǔn)

    熵模型擁有大量耗時(shí)的對數(shù)運(yùn)算,基尼指數(shù)在簡化模型的同時(shí)還保留了熵模型的優(yōu)點(diǎn)。基尼指數(shù)代表了模型的不純度,基尼系數(shù)越小,不純度越低,特征越好。這和信息增益(率)正好相反。

    其中 k 代表類別。

    基尼指數(shù)反映了從數(shù)據(jù)集中隨機(jī)抽取兩個(gè)樣本,其類別標(biāo)記不一致的概率。因此基尼指數(shù)越小,則數(shù)據(jù)集純度越高。基尼指數(shù)偏向于特征值較多的特征,類似信息增益。基尼指數(shù)可以用來度量任何不均勻分布,是介于 0~1 之間的數(shù),0 是完全相等,1 是完全不相等,

    此外,當(dāng) CART 為二分類,其表達(dá)式為:

    我們可以看到在平方運(yùn)算和二分類的情況下,其運(yùn)算更加簡單。當(dāng)然其性能也與熵模型非常接近。

    3.3 缺失值處理

    上文說到,模型對于缺失值的處理會(huì)分為兩個(gè)子問題:1. 在特征值缺失的情況下進(jìn)行劃分特征的選擇?2. 選定該劃分特征,對于缺失該特征值的樣本如何處理?

    對于問題 1,CART 一開始嚴(yán)格要求分裂特征評估時(shí)只能使用在該特征上沒有缺失值的那部分?jǐn)?shù)據(jù),在后續(xù)版本中,CART 算法使用了一種懲罰機(jī)制來抑制提升值,從而反映出缺失值的影響(例如,如果一個(gè)特征在節(jié)點(diǎn)的 20% 的記錄是缺失的,那么這個(gè)特征就會(huì)減少 20% 或者其他數(shù)值)。

    對于問題 2,CART 算法的機(jī)制是為樹的每個(gè)節(jié)點(diǎn)都找到代理分裂器,無論在訓(xùn)練數(shù)據(jù)上得到的樹是否有缺失值都會(huì)這樣做。在代理分裂器中,特征的分值必須超過默認(rèn)規(guī)則的性能才有資格作為代理(即代理就是代替缺失值特征作為劃分特征的特征),當(dāng) CART 樹中遇到缺失值時(shí),這個(gè)實(shí)例劃分到左邊還是右邊是決定于其排名最高的代理,如果這個(gè)代理的值也缺失了,那么就使用排名第二的代理,以此類推,如果所有代理值都缺失,那么默認(rèn)規(guī)則就是把樣本劃分到較大的那個(gè)子節(jié)點(diǎn)。代理分裂器可以確保無缺失訓(xùn)練數(shù)據(jù)上得到的樹可以用來處理包含確實(shí)值的新數(shù)據(jù)。

    3.4 剪枝策略

    采用一種“基于代價(jià)復(fù)雜度的剪枝”方法進(jìn)行后剪枝,這種方法會(huì)生成一系列樹,每個(gè)樹都是通過將前面的樹的某個(gè)或某些子樹替換成一個(gè)葉節(jié)點(diǎn)而得到的,這一系列樹中的最后一棵樹僅含一個(gè)用來預(yù)測類別的葉節(jié)點(diǎn)。然后用一種成本復(fù)雜度的度量準(zhǔn)則來判斷哪棵子樹應(yīng)該被一個(gè)預(yù)測類別值的葉節(jié)點(diǎn)所代替。這種方法需要使用一個(gè)單獨(dú)的測試數(shù)據(jù)集來評估所有的樹,根據(jù)它們在測試數(shù)據(jù)集熵的分類性能選出最佳的樹。

    我們來看具體看一下代價(jià)復(fù)雜度剪枝算法:

    首先我們將最大樹稱為?,我們希望減少樹的大小來防止過擬合,但又擔(dān)心去掉節(jié)點(diǎn)后預(yù)測誤差會(huì)增大,所以我們定義了一個(gè)損失函數(shù)來達(dá)到這兩個(gè)變量之間的平衡。損失函數(shù)定義如下:

    T 為任意子樹,?為預(yù)測誤差,?為子樹 T 的葉子節(jié)點(diǎn)個(gè)數(shù),?是參數(shù),?衡量訓(xùn)練數(shù)據(jù)的擬合程度,?衡量樹的復(fù)雜度,?權(quán)衡擬合程度與樹的復(fù)雜度。

    那么如何找到合適的??來使得復(fù)雜度和擬合度達(dá)到最好的平衡點(diǎn)呢,最好的辦法就是另??從 0 取到正無窮,對于每一個(gè)固定的?,我們都可以找到使得??最小的最優(yōu)子樹?。當(dāng)??很小的時(shí)候,?是最優(yōu)子樹;當(dāng)??最大時(shí),單獨(dú)的根節(jié)點(diǎn)是這樣的最優(yōu)子樹。隨著??增大,我們可以得到一個(gè)這樣的子樹序列:,這里的子樹??生成是根據(jù)前一個(gè)子樹??剪掉某一個(gè)內(nèi)部節(jié)點(diǎn)生成的。

    Breiman 證明:將??從小增大,,在每個(gè)區(qū)間?中,子樹??是這個(gè)區(qū)間里最優(yōu)的。

    這是代價(jià)復(fù)雜度剪枝的核心思想。

    我們每次剪枝都是針對某個(gè)非葉節(jié)點(diǎn),其他節(jié)點(diǎn)不變,所以我們只需要計(jì)算該節(jié)點(diǎn)剪枝前和剪枝后的損失函數(shù)即可。

    對于任意內(nèi)部節(jié)點(diǎn) t,剪枝前的狀態(tài),有??個(gè)葉子節(jié)點(diǎn),預(yù)測誤差是?;剪枝后的狀態(tài):只有本身一個(gè)葉子節(jié)點(diǎn),預(yù)測誤差是?。

    因此剪枝前以 t 節(jié)點(diǎn)為根節(jié)點(diǎn)的子樹的損失函數(shù)是:

    剪枝后的損失函數(shù)是

    通過 Breiman 證明我們知道一定存在一個(gè)??使得?,使得這個(gè)值為;

    ?的意義在于,?中,子樹??是這個(gè)區(qū)間里最優(yōu)的。當(dāng)??大于這個(gè)值是,一定有?,也就是剪掉這個(gè)節(jié)點(diǎn)后都比不剪掉要更優(yōu)。所以每個(gè)最優(yōu)子樹對應(yīng)的是一個(gè)區(qū)間,在這個(gè)區(qū)間內(nèi)都是最優(yōu)的。

    然后我們對??中的每個(gè)內(nèi)部節(jié)點(diǎn) t 都計(jì)算:

    ?表示閾值,故我們每次都會(huì)減去最小的?。

    3.5 類別不平衡

    CART 的一大優(yōu)勢在于:無論訓(xùn)練數(shù)據(jù)集有多失衡,它都可以將其子凍消除不需要建模人員采取其他操作。

    CART 使用了一種先驗(yàn)機(jī)制,其作用相當(dāng)于對類別進(jìn)行加權(quán)。這種先驗(yàn)機(jī)制嵌入于 CART 算法判斷分裂優(yōu)劣的運(yùn)算里,在 CART 默認(rèn)的分類模式中,總是要計(jì)算每個(gè)節(jié)點(diǎn)關(guān)于根節(jié)點(diǎn)的類別頻率的比值,這就相當(dāng)于對數(shù)據(jù)自動(dòng)重加權(quán),對類別進(jìn)行均衡。

    對于一個(gè)二分類問題,節(jié)點(diǎn) node 被分成類別 1 當(dāng)且僅當(dāng):

    比如二分類,根節(jié)點(diǎn)屬于 1 類和 0 類的分別有 20 和 80 個(gè)。在子節(jié)點(diǎn)上有 30 個(gè)樣本,其中屬于 1 類和 0 類的分別是 10 和 20 個(gè)。如果 10/20>20/80,該節(jié)點(diǎn)就屬于 1 類。

    通過這種計(jì)算方式就無需管理數(shù)據(jù)真實(shí)的類別分布。假設(shè)有 K 個(gè)目標(biāo)類別,就可以確保根節(jié)點(diǎn)中每個(gè)類別的概率都是 1/K。這種默認(rèn)的模式被稱為“先驗(yàn)相等”。

    先驗(yàn)設(shè)置和加權(quán)不同之處在于先驗(yàn)不影響每個(gè)節(jié)點(diǎn)中的各類別樣本的數(shù)量或者份額。先驗(yàn)影響的是每個(gè)節(jié)點(diǎn)的類別賦值和樹生長過程中分裂的選擇。

    3.6 回歸樹

    CART(Classification and Regression Tree,分類回歸樹),從名字就可以看出其不僅可以用于分類,也可以應(yīng)用于回歸。其回歸樹的建立算法上與分類樹部分相似,這里簡單介紹下不同之處。

    3.6.1 連續(xù)值處理

    對于連續(xù)值的處理,CART 分類樹采用基尼系數(shù)的大小來度量特征的各個(gè)劃分點(diǎn)。在回歸模型中,我們使用常見的和方差度量方式,對于任意劃分特征 A,對應(yīng)的任意劃分點(diǎn) s 兩邊劃分成的數(shù)據(jù)集??和?,求出使??和??各自集合的均方差最小,同時(shí)??和 ??的均方差之和最小所對應(yīng)的特征和特征值劃分點(diǎn)。表達(dá)式為:

    其中,?為??數(shù)據(jù)集的樣本輸出均值,?為 ??數(shù)據(jù)集的樣本輸出均值。

    3.6.2 預(yù)測方式

    對于決策樹建立后做預(yù)測的方式,上面講到了 CART 分類樹采用葉子節(jié)點(diǎn)里概率最大的類別作為當(dāng)前節(jié)點(diǎn)的預(yù)測類別。而回歸樹輸出不是類別,它采用的是用最終葉子的均值或者中位數(shù)來預(yù)測輸出結(jié)果。

    總結(jié)

    最后通過總結(jié)的方式對比下 ID3、C4.5 和 CART 三者之間的差異。

    除了之前列出來的劃分標(biāo)準(zhǔn)、剪枝策略、連續(xù)值確實(shí)值處理方式等之外,我再介紹一些其他差異:

    • 劃分標(biāo)準(zhǔn)的差異:ID3 使用信息增益偏向特征值多的特征,C4.5 使用信息增益率克服信息增益的缺點(diǎn),偏向于特征值小的特征,CART 使用基尼指數(shù)克服 C4.5 需要求 log 的巨大計(jì)算量,偏向于特征值較多的特征。

    • 使用場景的差異:ID3 和 C4.5 都只能用于分類問題,CART 可以用于分類和回歸問題;ID3 和 C4.5 是多叉樹,速度較慢,CART 是二叉樹,計(jì)算速度很快;

    • 樣本數(shù)據(jù)的差異:ID3 只能處理離散數(shù)據(jù)且缺失值敏感,C4.5 和 CART 可以處理連續(xù)性數(shù)據(jù)且有多種方式處理缺失值;從樣本量考慮的話,小樣本建議 C4.5、大樣本建議 CART。C4.5 處理過程中需對數(shù)據(jù)集進(jìn)行多次掃描排序,處理成本耗時(shí)較高,而 CART 本身是一種大樣本的統(tǒng)計(jì)方法,小樣本處理下泛化誤差較大 ;

    • 樣本特征的差異:ID3 和 C4.5 層級之間只使用一次特征,CART 可多次重復(fù)使用特征;

    • 剪枝策略的差異:ID3 沒有剪枝策略,C4.5 是通過悲觀剪枝策略來修正樹的準(zhǔn)確性,而 CART 是通過代價(jià)復(fù)雜度剪枝。

    參考

  • 《機(jī)器學(xué)習(xí)》周志華

  • 《數(shù)據(jù)挖掘十大算法》吳信東

  • CART 樹怎么進(jìn)行剪枝?


  • 附錄:決策樹算法十問及經(jīng)典面試問題

    決策樹是機(jī)器學(xué)習(xí)最常用的算法之一,它將算法組織成一顆樹的形式。其實(shí)這就是將平時(shí)所說的if-then語句構(gòu)建成了樹的形式。這個(gè)決策樹主要包括三個(gè)部分:內(nèi)部節(jié)點(diǎn)、葉節(jié)點(diǎn)和邊。內(nèi)部節(jié)點(diǎn)是劃分的屬性,邊代表劃分的條件,葉節(jié)點(diǎn)表示類別。構(gòu)建決策樹 就是一個(gè)遞歸的選擇內(nèi)部節(jié)點(diǎn),計(jì)算劃分條件的邊,最后到達(dá)葉子節(jié)點(diǎn)的過程。

    偽代碼: 輸入: 訓(xùn)練數(shù)據(jù)集D,特征集A,閾值. 輸出: 決策樹T.

  • 如果D中所有實(shí)例屬于同一類,則置T為單結(jié)點(diǎn)樹,并將作為該結(jié)點(diǎn)的類,返回T.

  • 如果, 則置T為單結(jié)點(diǎn)樹,并將D中最多的類作為該節(jié)點(diǎn)的類,返回T.

  • 否則,根據(jù)相應(yīng)公式計(jì)算A中各個(gè)特征對D的(信息增益、信息增益比、基尼指數(shù)等),選擇最合適的特征.

  • 如果的得分小于,則置T為單結(jié)點(diǎn)樹,并將作為該結(jié)點(diǎn)的類,返回T.

  • 否則,根據(jù)特征取值,對數(shù)據(jù)D進(jìn)行劃分,繼續(xù)遞歸構(gòu)造決策樹, 返回T.

  • 核心公式

    信息熵:

    則隨機(jī)變量X的熵定義為:

    熵越大,隨機(jī)變量的不確定性就越大,當(dāng)時(shí),隨機(jī)變量的熵最大等于logn,故. 常見的決策樹由三種: ID3、C4.5、CART.其中,?,?,?.

    modelfeature select樹的類型
    ID3{分類:信息增益}多叉樹
    C4.5{分類:信息增益比}多叉樹
    CART{分類:基尼指數(shù)}二叉樹
    CART{回歸:平方誤差}二叉樹

    算法十問

    1.決策樹和條件概率分布的關(guān)系?

    決策樹可以表示成給定條件下類的條件概率分布. 決策樹中的每一條路徑都對應(yīng)是劃分的一個(gè)條件概率分布. 每一個(gè)葉子節(jié)點(diǎn)都是通過多個(gè)條件之后的劃分空間,在葉子節(jié)點(diǎn)中計(jì)算每個(gè)類的條件概率,必然會(huì)傾向于某一個(gè)類,即這個(gè)類的概率最大.

    2.ID3和C4.5算法可以處理實(shí)數(shù)特征嗎?如果可以應(yīng)該怎么處理?如果不可以請給出理由?

    ID3和C4.5使用劃分節(jié)點(diǎn)的方法分別是信息增益和信息增益比,從這個(gè)公式中我們可以看到 這是處理類別特征的方法,實(shí)數(shù)特征能夠計(jì)算信息增益嗎?我們可以定義X是實(shí)數(shù)特征的信息增益是,.其中,則. 對于每一個(gè)實(shí)數(shù)可以使用這種方式進(jìn)行分割. 除此之外,我們還可以使用特征的分桶,將實(shí)數(shù)特征映射到有限個(gè)桶中,可以直接使用ID3和C4.5算法.

    3.既然信息增益可以計(jì)算,為什么C4.5還使用信息增益比?

    在使用信息增益的時(shí)候,如果某個(gè)特征有很多取值,使用這個(gè)取值多的特征會(huì)的大的信息增益,這個(gè)問題是出現(xiàn)很多分支,將數(shù)據(jù)劃分更細(xì),模型復(fù)雜度高,出現(xiàn)過擬合的機(jī)率更大。使用信息增益比就是為了解決偏向于選擇取值較多的特征的問題. 使用信息增益比對取值多的特征加上的懲罰,對這個(gè)問題進(jìn)行了校正.

    4.基尼指數(shù)可以表示數(shù)據(jù)不確定性,信息熵也可以表示數(shù)據(jù)的不確定性. 為什么CART使用基尼指數(shù)?

    信息熵0, logK都是值越大,數(shù)據(jù)的不確定性越大. 信息熵需要計(jì)算對數(shù),計(jì)算量大;信息熵是可以處理多個(gè)類別,基尼指數(shù)就是針對兩個(gè)類計(jì)算的,由于CART樹是一個(gè)二叉樹,每次都是選擇yes or no進(jìn)行劃分,從這個(gè)角度也是應(yīng)該選擇簡單的基尼指數(shù)進(jìn)行計(jì)算.

    5.決策樹怎么剪枝?

    一般算法在構(gòu)造決策樹的都是盡可能的細(xì)分,直到數(shù)據(jù)不可劃分才會(huì)到達(dá)葉子節(jié)點(diǎn),停止劃分. 因?yàn)榻o訓(xùn)練數(shù)據(jù)巨大的信任,這種形式形式很容易造成過擬合,為了防止過擬合需要進(jìn)行決策樹剪枝. 一般分為預(yù)剪枝和后剪枝,預(yù)剪枝是在決策樹的構(gòu)建過程中加入限制,比如控制葉子節(jié)點(diǎn)最少的樣本個(gè)數(shù),提前停止. 后剪枝是在決策樹構(gòu)建完成之后,根據(jù)加上正則項(xiàng)的結(jié)構(gòu)風(fēng)險(xiǎn)最小化自下向上進(jìn)行的剪枝操作. 剪枝的目的就是防止過擬合,是模型在測試數(shù)據(jù)上變現(xiàn)良好,更加魯棒.

    6.ID3算法,為什么不選擇具有最高預(yù)測精度的屬性特征,而不是使用信息增益?

    7.為什么使用貪心和其發(fā)生搜索建立決策樹,為什么不直接使用暴力搜索建立最優(yōu)的決策樹?

    決策樹目的是構(gòu)建一個(gè)與訓(xùn)練數(shù)據(jù)擬合很好,并且復(fù)雜度小的決策樹. 因?yàn)閺乃锌赡艿臎Q策樹中直接選擇最優(yōu)的決策樹是NP完全問題,在使用中一般使用啟發(fā)式方法學(xué)習(xí)相對最優(yōu)的決策樹.

    8.如果特征很多,決策樹中最后沒有用到的特征一定是無用嗎?

    不是無用的,從兩個(gè)角度考慮,一是特征替代性,如果可以已經(jīng)使用的特征A和特征B可以提點(diǎn)特征C,特征C可能就沒有被使用,但是如果把特征C單獨(dú)拿出來進(jìn)行訓(xùn)練,依然有效. 其二,決策樹的每一條路徑就是計(jì)算條件概率的條件,前面的條件如果包含了后面的條件,只是這個(gè)條件在這棵樹中是無用的,如果把這個(gè)條件拿出來也是可以幫助分析數(shù)據(jù).

    9.決策樹的優(yōu)點(diǎn)?

    優(yōu)點(diǎn): 決策樹模型可讀性好,具有描述性,有助于人工分析;效率高,決策樹只需要一次性構(gòu)建,反復(fù)使用,每一次預(yù)測的最大計(jì)算次數(shù)不超過決策樹的深度。缺點(diǎn): 對中間值的缺失敏感;可能產(chǎn)生過度匹配的問題,即過擬合。

    10.基尼系數(shù)存在的問題?

    基尼指數(shù)偏向于多值屬性;當(dāng)類數(shù)較大時(shí),基尼指數(shù)求解比較困難;基尼指數(shù)傾向于支持在兩個(gè)分區(qū)中生成大小相同的測試。

    面試真題

  • 決策樹如何防止過擬合?

  • 信息增益比相對信息增益有什么好處?

  • 如果由異常值或者數(shù)據(jù)分布不均勻,會(huì)對決策樹有什么影響?

  • 手動(dòng)構(gòu)建CART的回歸樹的前兩個(gè)節(jié)點(diǎn),給出公式每一步的公式推到?

  • 決策樹和其他模型相比有什么優(yōu)點(diǎn)?

  • 決策樹的目標(biāo)函數(shù)是什么?

  • 往期精彩回顧

    • 那些年做的學(xué)術(shù)公益-你不是一個(gè)人在戰(zhàn)斗

    • 適合初學(xué)者入門人工智能的路線及資料下載

    • 吳恩達(dá)機(jī)器學(xué)習(xí)課程筆記及資源(github標(biāo)星12000+,提供百度云鏡像)

    • 吳恩達(dá)深度學(xué)習(xí)筆記及視頻等資源(github標(biāo)星8500+,提供百度云鏡像)

    • 《統(tǒng)計(jì)學(xué)習(xí)方法》的python代碼實(shí)現(xiàn)(github標(biāo)星7200+)

    • 機(jī)器學(xué)習(xí)的數(shù)學(xué)精華(在線閱讀版)

    備注:加入本站微信群或者qq群,請回復(fù)“加群

    加入知識星球(4300+用戶,ID:92416895),請回復(fù)“知識星球

    總結(jié)

    以上是生活随笔為你收集整理的最常用的决策树算法(一):ID3、C4.5、CART的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。