決策樹常見的面試點整理

  • 談談自己對決策樹的理解?
    決策樹算法,無論是哪種,其目的都是爲了讓模型的不確定性降低的越快越好,基於其評價指標的不同,主要是ID3算法,C4.5算法和CART算法,其中ID3算法的評價指標是信息增益,C4.5算法的評價指標是信息增益率,CART算法的評價指標是基尼係數。
  • 談談對信息增益和信息增益率的理解?
    • 要理解信息增益,首先要理解熵這個概念。從概率統計的角度看,熵是對隨機變量不確定性的度量,也可以說是對隨機變量的概率分佈的一個衡量。熵越大,隨機變量的不確定性就越大。對同一個隨機變量,當他的概率分佈爲均勻分佈時,不確定性最大,熵也最大。對有相同概率分佈的不同的隨機變量,取值越多的隨機變量熵越大其次,要理解條件熵的概念。正如熵是對隨機變量不確定性的度量一樣,條件熵是指,有相關的兩個隨機變量X和Y,在已知隨機變量X的條件下,隨機變量Y的不確定性。當熵和條件熵中概率由數據估計(特別是極大似然估計)得到時,所對應的熵與條件熵分別爲經驗熵經驗條件熵
    • 所謂信息增益,也叫互信息,就是指集合D的經驗熵H(D)H(D)與特徵A給定條件下D的經驗條件熵H(DA)H(D|A)之差。ID3算法在每一次對決策樹進行分叉選取最優特徵時,會選取信息增益最高的特徵來作爲分裂特徵。
    • 信息增益準則的問題(ID3算法存在的問題)?
      信息增益準則對那些特徵的取值比較多的特徵有所偏好,也就是說,採用信息增益作爲判定方法,會傾向於去選擇特徵取值比較多的特徵作爲最優特徵。那麼,選擇取值多的特徵爲甚就不好呢?參考這篇博文
    • 採用信息增益率的算法C4.5爲什麼可以解決ID3算法中存在的問題呢?
      信息增益率的公式如下:
      gR(D,A)=g(D,A)HA(D)g_R(D,A) = \frac{g(D,A)}{H_A(D)}
      其中,HA(D)=i=1nDiDlog2DiDH_A(D) = -\sum_{i=1}^n\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|},n是特徵AA取值的個數。HA(D)H_A(D)表示的就是特徵AA的純度,如果AA只含有少量的取值的話,那麼AA的純度就比較高,HA(D)H_A(D)就比較小;相反,如果AA取值越多的話,那麼AA的純度就越低,HA(D)H_A(D)就比較大。這樣就可以解決ID3算法中存在的問題了。
  • 決策樹出現過擬合的原因及其解決辦法?
    對訓練數據預測效果很好,但是測試數據預測效果較差的現象稱爲過擬合。
    • 原因:
      • 在決策樹構建的過程中,對決策樹的生長沒有進行合理的限制(剪枝);
      • 樣本中有一些噪聲數據,沒有對噪聲數據進行有效的剔除;
      • 在構建決策樹過程中使用了較多的輸出變量,變量較多也容易產生過擬合(該原因待解釋!!!)。
    • 解決辦法
      • 選擇合理的參數進行剪枝,可以分爲預剪枝和後剪枝,我們一般採用後剪枝的方法;
      • 利用KfoldsK-folds交叉驗證,將訓練集分爲KK份,然後進行KK次交叉驗證,每次使用K1K-1份作爲訓練樣本數據集,另外一份作爲測試集;
      • 減少特徵,計算每一個特徵和響應變量的相關性,常見得爲皮爾遜相關係數,將相關性較小的變量剔除(待解釋!!!);當然還有一些其他的方法來進行特徵篩選,比如基於決策樹的特徵篩選,通過正則化的方式來進行特徵選取等(決策的正則化,例如,L1和L2正則,具體是對誰的正則呢?怎樣正則的呢?)。面試官順便會問L1和L2,一定要搞明白
  • 簡單解釋一下預剪枝和後剪枝,以及剪枝過程中可以參考的參數有哪些?
    • 預剪枝:在決策樹生成初期就已經設置了決策樹的參數,決策樹構建過程中,滿足參數條件就提前停止決策樹的生成。
    • 後剪枝:後剪枝是一種全局的優化方法,它是在決策樹完全建立之後再返回去對決策樹進行剪枝。
    • 參數:樹的高度、葉子節點的數目、最大葉子節點數、限制不純度。
  • 決策樹的優缺點
    • 優點:
      • 計算簡單、速度快
      • 可解釋性強
      • 比較適合處理有缺失屬性的樣本
    • 缺點:
      • 容易發生過擬合(隨機森林可以很大程度上減少過擬合);
      • 忽略了數據之間的相關性
      • 對於那些各類別樣本數量不一致的數據,在決策樹當中,信息增益的結果偏向於那些具有更多數值的特徵(只要是使用了信息增益,都有這個缺點,如RF)。對應的案例如下:有這麼一個場景,在一個樣本集中,其中有100個樣本屬於A,9900個樣本屬於B,用決策樹算法實現對AB樣本進行區分的時候,會發生欠擬合的現象。因爲在這個樣本集中,AB樣本屬於嚴重失衡狀態,在建立決策樹算法的過程中,模型會更多的偏倚到B樣本的性質,對A樣本的性質訓練較差,不能很好的反映樣本集的特徵。(待解釋!!!)。
  • 決策樹是如何處理缺失值的?
    推薦一篇博文,決策樹(decision tree)(四)——缺失值處理,該博文對下述需處理缺失值的三種情況有詳細的描述:
    • 如何在訓練樣本屬性缺失的情況下進行劃分屬性的選擇?
    • 給定劃分屬性,若樣本在該屬性上的值是缺失的,那麼該如何對這個樣本進行劃分?
    • 如何解決測試樣本中屬性有缺失值的情況?
  • 決策樹與邏輯迴歸的區別?
    • 對於擁有缺失值的數據,決策樹可以應對,而邏輯迴歸需要挖掘人員預先對缺失數據進行處理;
    • 邏輯迴歸對數據整體結構的分析優於決策樹,而決策樹對局部結構的分析優於邏輯迴歸;(決策樹由於採用分割的方法,所以能夠深入數據內部,但同時失去了對全局的把握。一個分層一旦形成,它和別的層面或節點的關係就被切斷了,以後的挖掘只能在局部中進行。同時由於切分,樣本數量不斷萎縮,所以無法支持對多變量的同時檢驗。而邏輯迴歸,始終着眼整個數據的擬合,所以對全局把握較好。但無法兼顧局部數據,或者說缺乏探查局部結構的內在機制。)
    • 邏輯迴歸擅長分析線性關係,而決策樹對線性關係的把握較差。線性關係在實踐中有很多優點:簡潔,易理解,可以在一定程度上防止對數據的過度擬合。(我自己對線性的理解:1,邏輯迴歸應用的是樣本數據線性可分的場景,輸出結果是概率,即,輸出結果和樣本數據之間不存在直接的線性關係;2,線性迴歸應用的是樣本數據和輸出結果之間存在線性關係的場景,即,自變量和因變量之間存在線性關係。)
    • 邏輯迴歸對極值比較敏感,容易受極端值的影響,而決策樹在這方面表現較好。
    • 應用上的區別:決策樹的結果和邏輯迴歸相比略顯粗糙。邏輯迴歸原則上可以提供數據中每個觀察點的概率,而決策樹只能把挖掘對象分爲有限的概率組羣。比如決策樹確定17個節點,全部數據就只能有17個概率,在應用上受到一定限制。就操作來說,決策樹比較容易上手,需要的數據預處理較少,而邏輯迴歸則要去一定的訓練和技巧。
    • 執行速度上:當數據量很大的時候,邏輯迴歸的執行速度非常慢,而決策樹的運行速度明顯快於邏輯迴歸。
  • 常用的算法模型評估指標有哪些?
  • 擴展隨機森林、GDBT等問題

參考資料:
https://www.cnblogs.com/liuyingjun/p/10590095.html
https://www.jianshu.com/p/fb97b21aeb1d
https://blog.csdn.net/u012328159/article/details/79413610
https://blog.csdn.net/ogghanxi/article/details/38496287

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章