日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】决策树知识点小结

發布時間:2023/12/20 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】决策树知识点小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

決策樹原理簡述

決策樹是一類常見的機器學習方法,它是基于樹的結構進行決策的。每次做決策時選擇最優劃分屬性,一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支節點所包含的樣本盡可能屬于同一個類別,即節點的“純度”(purity)越來越高。

決策樹學習算法包含特征選擇、決策樹的生成與剪枝過程。決策樹的學習算法通常是遞歸地選擇最優特征,并用最優特征對數據集進行分割。開始時,構建根節點,選擇最優特征,該特征有幾種值就分割為幾個子集,每個子集分別遞歸調用此方法,返回節點,返回的節點就是上一層的子節點。直到達到終止條件。(預剪枝條件等)

關于各種熵的介紹見各類熵總結

常用的決策樹算法有ID3,C4.5和CART。(還有一個C5.0不過是商用版本,在C4.5的基礎上做了很多改進。)

  • ID3:以信息增益為準則來選擇劃分屬性。
  • C4.5:使用信息增益率來進行屬性的選擇。
  • CART:使用基尼系數來選擇劃分屬性。

各類決策樹的具體的算法流程見ID3,C4.5,CART決策樹

信息增益率的優缺點

優點:ID3使用信息增益去對決策樹進行劃分,經常偏向于分支較多的特征分裂,因為具有較多屬性值的特征,分裂后其信息增益通常較大。此時就會有較大的概率出現每個分支節點只包含一個樣本這種情況,此時分支節點的純度達到最大,但顯然這種決策樹是不具備泛化能力的,無法對新樣本進行有效的預測。總結一下:信息增益對可取屬性數目較多的特征有所偏好,而信息增益率減少了這種偏好可能帶來的不利影響。

缺點:信息增益率偏向取值較少的特征,當特征取值較少時信息增益率求解公式分母較小,因而信息增益率比較大。所以它偏向取值較少的特征。

綜合其優缺點:我們在使用信息增益率時,通常也并不是直接使用。而是先在候選特征中找出信息增益高于平均水平的特征,然后在這些特征中再選擇信息增益率最高的特征。

決策樹的剪枝策略

樹的剪枝策略分為兩種,一種為在樹生成過程中的預剪枝策略,另一種為樹在生成之后的后剪枝策略。具體參見之前寫的文章樹的剪枝策略。

樹的剪枝主要是為了防止樹的過擬合,提高樹模型的泛化能力。(剪枝之后的分類誤差不能相差太大。)

C4.5對ID3做了哪些改進

ID3算法是采用信息增益作為評價標準進行分支的決策樹算法。

ID3的缺點

  • 對于具有很多值的屬性它是非常敏感的,例如,如果我們數據集中的某個屬性值對不同的樣本基本上是不相同的,甚至更極端點,對于每個樣本都是唯一的,如果我們用這個屬性來劃分數據集,它會得到很大的信息增益,但是,這樣的結果并不是我們想要的。
  • ID3算法不能處理具有連續值的屬性。
  • ID3算法不能處理屬性具有缺失值的樣本。
  • 由于按照上面的算法會生成很深的樹,所以容易產生過擬合現象。
  • C4.5算法主要對ID3作出了以下方面的改進:

  • 用信息增益率來選擇屬性,克服了用信息增益來選擇屬性時偏向選擇值多的屬性的不足。
  • 可以處理連續數值型屬性。
  • 使用了PEP的后剪枝策略。
  • 缺失值的處理。處理的方式通常有三種:
  • 賦上該屬性最常見的值或者取均值;
  • 丟棄有缺失值的樣本;
  • 根據節點的樣例上該屬性值出現的情況賦一個概率,比如該節點上有10個樣本,其中屬性A的取值有6個為“高”,4個為“低”。那么對該節點上缺失的屬性A,以0.6的概率設為“高”,0.4的概率設為“低”。
  • C4.5的缺點:

  • 算法低效,在構造樹的過程中,需要對數據集進行多次的順序掃描和排序(主要在于對連續特征的處理上),因而導致算法的低效。
  • 內存受限,適合于能夠駐留于內存的數據集,當訓練集大得無法在內存容納時程序無法運行。
  • 無論是ID3還是C4.5最好在小數據集上使用,決策樹分類一般只適用于小數據。當屬性取值很多時最好選擇C4.5算法,ID3得出的效果會非常差。

    ?

    C4.5如何處理連續數值型特征

    C4.5既可以處理離散型特征,也可以處理連續型特征。對于連續分布的特征,其處理方法是:先把連續特征轉換為離散特征再進行處理。雖然本質上特征的取值是連續的,但對于有限的采樣數據它是離散的,如果有N個樣本,那么我們就有N-1種離散化的方法。(離散屬性的離散化通常是分兩類,小于等于某一個分割點的為一類,大于某一個分割點的為一類。)具體分割點的選擇是根據計算信息增益,選擇有最大信息增益的分割點。另外,在分割之前,我們還需要對連續屬性進行排序(升序),這樣可以大大減少運算量。經證明,在決定連續特征的分界點時采用信息增益這個指標,而選擇屬性的時候才使用信息增益率這個指標能選擇出最佳分類特征。

    具體步驟如下:

  • 對特征的取值進行升序排序
  • 兩個特征取值之間的中點作為可能的分裂點,將數據集分成兩部分,計算每個可能的分裂點的信息增益。優化算法就是只計算分類屬性發生改變(對于升序排序的特征取值而言,對每一個分裂點都進行計算未免太過耗時,實踐證明,取那些夾在相同分類屬性之間的分裂點必不會時全局最小。)的那些特征取值。
  • 選擇修正后信息增益最大的分裂點作為該特征的最佳分裂點。
  • 計算最佳分裂點的信息增益率作為特征的信息增益率。
  • 分裂點的信息增益修正方法:

    將信息增益減去得到修正后的信息增益。其中N是連續特征的取值個數,D是訓練數據數目。此修正的原因在于:當離散特征與連續特征并存時,C4.5算法傾向于選擇連續特征做最佳樹分裂點。

    C4.5與CART的區別

    兩者都是決策樹,但CART既可以做分類,又可以做回歸,而C4.5只是用于分類。

    C4.5是構造決策樹來發現數據中蘊含的分類規則,是一種通過劃分特征空間逼近離散函數值的方法。C4.5是基于ID3的改進算法。使用信息增益率作為劃分依據。分類規則是互斥并且完備的。所謂互斥即每一條樣本記錄不會同時匹配上兩條分類規則,所謂完備即每條樣本記錄都在決策樹中都能匹配上一條規則。

    CART本質是對特征空間進行二元劃分(即CART生成的決策樹是一顆二叉樹),并能夠對標量特征與連續特征進行分裂。在對標量特征進行劃分時,分為等于某個特征屬性和不等于;對連續特征進行劃分時,分為大于和小于等于。并且在分類的時候是采用GINI系數作為衡量標準,而不是信息增益了;在回歸時,是使用最小均方誤差作為評價。

    CART對于特征的利用是可以重復的,而作為分類的C4.5則是不能重復利用特征。

    分類樹和回歸樹聯系區別

    分類樹

    以C4.5分類樹為例,C4.5分類樹在每次分枝時,是窮舉每一個feature的每一個閾值,找到使得按照feature<=閾值,和feature>閾值分成的兩個分枝的集合信息熵最小的閾值,按照該標準分枝得到兩個新節點,用同樣方法繼續分枝直到得到類別唯一的葉子節點,或達到預設的終止條件,若最終葉子節點中的性別不唯一,則以占有最多數的類別作為該葉子節點的最終分類類別。

    回歸樹

    回歸樹總體流程也是類似,區別在于,回歸樹的每個節點(不一定是葉子節點)都會得一個預測值,以年齡為例,該預測值等于屬于這個節點的所有人年齡的平均值。分枝時窮舉每一個feature的每個閾值找最好的分割點,但衡量最好的標準不再是信息熵(信息增益),而是最小化均方誤差即(每個人的年齡-預測年齡)^2 的總和 / N。也就是被預測出錯的人數越多,錯的越離譜,均方差就越大,通過最小化均方差能夠找到最可靠的分枝依據。分枝直到每個葉子節點上人的年齡都唯一或者達到預設的終止條件(如葉子個數上限),若最終葉子節點上人的年齡不唯一,則以該節點上所有人的平均年齡做為該葉子節點的預測年齡。

    總結

  • 分類樹使用信息增益或增益比率來劃分節點;每個節點樣本的類別情況投票決定測試樣本的類別。
  • 回歸樹使用最小均方誤差劃分節點;每個節點樣本的均值作為測試樣本的回歸預測值。
  • CART樹對離散特征取值數目>=3對特征如何處理

    因為CART樹是二叉樹,所以對于樣本離散特征有N>=3個取值時的處理也只能有兩個分支,這就要通過人為組合創建二取值序列并取GiniGain最小者作為樹分叉的決策點。如某特征值具有[‘young’,’middle’,’old’]三個取值,那么二分序列會有如下3種可能性(空集和滿集在CART分類中沒有意義):?[((‘young’,), (‘middle’, ‘old’)), ((‘middle’,), (‘young’, ‘old’)), ((‘old’,), (‘young’, ‘middle’))]。

    采用CART算法,就需要分別計算按照上述List中的二分序列做分叉時的Gini系數,然后選取產生最小的GINIGain的二分序列做該特征的分叉二值序列參與樹構建的遞歸。如果某特征取值有4個,那么二分序列組合就有7種,5個取值就有15種組合。

    因此CART不適用于離散特征有過多取值可能的場景。此時,若一定要使用CART,則最好預先人為的將離散特征的取值縮減。?

    那么對于二分后的左右分支,如果特征取值tuple中元素多于2個,該特征一般還是需要繼續參與到子數據集的分割中去。這在一定程度上有助于提升模型的精度(一定意義上改進了C4.5完全的貪心算法,使得模型有一定的全局(局部)特征考量的性質)。

    決策樹對缺失值的處理方法

    缺失值問題可以從四個方面來考慮

    1.在進入模型開始訓練之前,我們可以對缺失值做上一定的處理。

  • 為缺失值賦上該屬性最常見的值或者取均值;
  • 丟棄有缺失值的樣本;
  • 根據節點的樣例上該屬性值出現的情況賦一個概率,比如該節點上有10個樣本,其中屬性A的取值有6個為“高”,4個為“低”。那么對該節點上缺失的屬性A,以0.6的概率設為“高”,0.4的概率設為“低”。
  • 2. 在選擇分裂屬性的時候,訓練樣本存在缺失值,如何處理?(計算分裂損失減少值時,忽略特征缺失的樣本,最終計算的值乘以比例(實際參與計算的樣本數除以總的樣本數))

    假如你使用ID3算法,那么選擇分類特征時,就要計算所有特征的熵減(信息增益,Gain)。假設10個樣本,特征是a,b,c。在計算a特征熵時發現,第10個樣本的a特征缺失,那么就把第10個樣本去掉,前9個樣本組成新的樣本集,在新樣本集上按正常方法計算a特征的熵減。然后結果乘0.9(未缺失樣本的比例),就是a特征分裂最終的熵。

    3. 分類特征選擇完成,對訓練樣本分類,發現樣本特征缺失怎么辦?(將該樣本分配到所有子節點中,權重由1變為具有特征a的樣本被劃分成的子集樣本個數的相對比率,計算錯誤率的時候,需要考慮到樣本權重)

  • 單獨為屬性缺失的樣本劃分一個分支子集。
  • 比如該節點是根據a特征劃分,但是待分類樣本a特征缺失,怎么辦呢?假設a特征離散,有1,2兩種取值,那么就把該樣本分配到兩個子節點中去,但是權重由1變為相應離散值個數占樣本的比例。然后計算錯誤率的時候,注意,不是每個樣本都是權重為1,存在分數。
  • 4. 訓練完成,給測試集樣本分類,有缺失值怎么辦?(分類時,如果待分類樣本有缺失變量,而決策樹決策過程中沒有用到這些變量,則決策過程和沒有缺失的數據一樣;否則,如果決策要用到缺失變量,決策樹也可以在當前節點做多數投票來決定(選擇樣本數最多的特征值方向)。)

  • 如果有單獨的缺失分支,使用此分支。
  • 把待分類的樣本的特征a值分配一個最常出現的a的屬性值,然后進行分支預測。
  • 根據其他特征為該待分類樣本填充一個特征a值,然后進行分支處理。
  • 在決策樹中特征a節點的分支上,遍歷特征a節點的所有分支,探索可能所有的分類結果,然后把這些分類結果結合起來一起考慮,按照概率決定一個分類。
  • 待分類樣本在到達特征a節點時就終止分類,然后根據此時a節點所覆蓋的葉子節點類別狀況為其分配一個發生概率最高的類。
  • 如果決策樹屬性用完了仍未對決策樹完成劃分應該怎么辦

    當訓練集很大以及特征數量并不是很多的情況下,這種狀況很容易發生。此時的解決方法一般有兩種:

  • 一種即退出模型,做特征組合、交叉等操作擴充特征。當有了足夠多的特征后,便可以有效改善這種情況。但在一般情況下,樹模型如果特征過多,相當容易過擬合。
  • 另一種方法便是直接對葉子節點采用“多數表決”,即使用節點中出現最多的類別作為該節點的標簽。
  • 決策樹需要進行歸一化處理嗎?

    在之前的文章中有講過類似的問題,這里再重復一遍。決策樹是概率模型,為什么是概率模型呢,不要以為那些有貝葉斯公式、類條件概率、后驗概率的模型才是概率模型。決策樹其實是一種簡單高效并且具有強解釋性的概率模型,是給定特征條件下類的條件概率分布的一種退化表示(并不求解概率密度函數但依據訓練樣本可以得到類頻率代替概率)。

    概率模型是不需要歸一化的,因為它們不關心變量的值,而是關心變量的分布和變量之間的條件概率。數值縮放不會影響決策樹的分裂點位置。

    二叉決策樹與多叉決策樹相比各有什么特點

    二叉決策樹不像多叉樹那樣會形成過多的數據碎片,而二叉決策樹可能會得到更深的最終決策樹。

    決策樹構建過程中較為耗時的步驟

    確定最佳分割點,在該步驟中需要對特征值進行排序,計算信息增益等,非常耗時。

    決策樹算法主要應用于非線性模型,若已知數據集是滿足線性假設的,那么我們可以直接用一個線性模型取得比較好的預測結果

    決策樹特征的重復選擇

    決策樹中一個特征被選擇過后依然是有可能被選擇為分裂特征的。

    • 若特征為離散特征,如果決策樹為二叉樹,則可以在分類的子區間繼續劃分,如果決策樹為多叉樹,通常進行一次劃分。
    • 若特征為連續特征,則可能在決策樹中多次被選擇。

    決策樹模型的優缺點

    優點

  • 易于理解,決策樹易于理解和實現。人們在通過解釋后都有能力去理解決策樹所表達的意義。
  • 數據處理簡單,對缺失值不敏感。對于決策樹,數據的準備往往是簡單或者不必要的。其他的算法模型往往要求先把數據一般化,比如去掉多余的或者空白的屬性。
  • 能夠同時處理數據型變量和類別變量。其他的技術往往要求特征是單一類型的。
  • 是一個白盒模型,如果給定一個觀察的模型,那么根據所產生的決策樹很容易推出相應的邏輯表達式。
  • 易于通過靜態測試來對模型進行評測。表示有可能測量該模型的可信度。
  • 在相對短的時間內能夠對大型數據源做出可行且效果良好的結果。
  • 如果有不相關的 feature,沒什么干擾,如果數據中有不相關的 feature,頂多這個 feature 不出現在樹的節點里。邏輯回歸和 SVM 沒有這樣的天然特性(但是有相應的補救措施,比如邏輯回歸里的 L1 正則化)。
  • 缺點

  • 很容易在訓練數據中生成復雜的樹結構,造成過擬合。剪枝可以緩解過擬合。
  • 不適合處理高維數據,當屬性數量過大的時候,部分決策樹就不太適用了。
  • 對異常值(Outlier)過于敏感,很容易導致樹的結構巨大的變換。
  • 模型的更新比較復雜,每當有新的樣本進來時,樹的結構很有可能會發生大的改變。
  • 采用的貪心策略無法考慮到全局的特性。
  • 樹模型的應用場景

    模型應用場景可參考如下:

    • 如果不強調模型的解釋度,盡量避免單棵決策樹,用集成樹模型
    • 在集成樹模型中,優先推薦使用xgboost
    • 在中小數據集上,優先選擇集成樹模型。大數據集上推薦神經網絡
    • 在需要模型解釋度的項目上,優先使用樹模型
    • 在項目時間較短的項目上,如果數據質量低(大量缺失值、噪音等),優先使用集成樹模型
    • 在硬件條件有限及機器學習知識有限的前提下,優先選擇樹模型

    ?

    https://www.cnblogs.com/end/p/3328379.html

    ?

    ?

    總結

    以上是生活随笔為你收集整理的【机器学习】决策树知识点小结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。