簡介和 演算法
決策樹是機器學習最常用的演算法之一,它將演算法組織成一顆樹的形式。其實這就是將平時所說的if-then語句構建成了樹的形式。這個決策樹主要包括三個部分:內部節點、葉節點和邊。內部節點是劃分的屬性,邊代表劃分的條件,葉節點表示類別。構建決策樹 就是乙個遞迴的選擇內部節點,計算劃分條件的邊,最後到達葉子節點的過程。
偽**: 輸入: 訓練資料集d,特徵集a,閾值. 輸出: 決策樹t.
如果d中所有例項屬於同一類,則置t為單結點樹,並將作為該結點的類,返回t.
如果, 則置t為單結點樹,並將d中最多的類作為該節點的類,返回t.
否則,根據相應公式計算a中各個特徵對d的(資訊增益、資訊增益比、基尼指數等),選擇最合適的特徵.
如果的得分小於,則置t為單結點樹,並將作為該結點的類,返回t.
否則,根據特徵取值,對資料d進行劃分,繼續遞迴構造決策樹, 返回t.
核心公式
資訊熵:
則隨機變數x的熵定義為:熵越大,隨機變數的不確定性就越大,當時,隨機變數的熵最大等於logn,故. 常見的決策樹由三種: id3、c4.5、cart. 其中, , ,
modelfeature select樹的型別id3多叉樹c4.5多叉樹cart二叉樹cart二叉樹
演算法十問
1.決策樹和條件概率分布的關係?
決策樹可以表示成給定條件下類的條件概率分布. 決策樹中的每一條路徑都對應是劃分的乙個條件概率分布. 每乙個葉子節點都是通過多個條件之後的劃分空間,在葉子節點中計算每個類的條件概率,必然會傾向於某乙個類,即這個類的概率最大.
2.id3和c4.5演算法可以處理實數特徵嗎?如果可以應該怎麼處理?如果不可以請給出理由?
id3和c4.5使用劃分節點的方法分別是資訊增益和資訊增益比,從這個公式中我們可以看到 這是處理類別特徵的方法,實數特徵能夠計算資訊增益嗎?我們可以定義x是實數特徵的資訊增益是,.其中,則. 對於每乙個實數可以使用這種方式進行分割. 除此之外,我們還可以使用特徵的分桶,將實數特徵對映到有限個桶中,可以直接使用id3和c4.5演算法.
3.既然資訊增益可以計算,為什麼c4.5還使用資訊增益比?
在使用資訊增益的時候,如果某個特徵有很多取值,使用這個取值多的特徵會的大的資訊增益,這個問題是出現很多分支,將資料劃分更細,模型複雜度高,出現過擬合的機率更大。使用資訊增益比就是為了解決偏向於選擇取值較多的特徵的問題. 使用資訊增益比對取值多的特徵加上的懲罰,對這個問題進行了校正.
4.基尼指數可以表示資料不確定性,資訊熵也可以表示資料的不確定性. 為什麼cart使用基尼指數?
資訊熵0, logk都是值越大,資料的不確定性越大. 資訊熵需要計算對數,計算量大;資訊熵是可以處理多個類別,基尼指數就是針對兩個類計算的,由於cart樹是乙個二叉樹,每次都是選擇yes or no進行劃分,從這個角度也是應該選擇簡單的基尼指數進行計算.
5.決策樹怎麼剪枝?
一般演算法在構造決策樹的都是盡可能的細分,直到資料不可劃分才會到達葉子節點,停止劃分. 因為給訓練資料巨大的信任,這種形式形式很容易造成過擬合,為了防止過擬合需要進行決策樹剪枝. 一般分為預剪枝和後剪枝,預剪枝是在決策樹的構建過程中加入限制,比如控制葉子節點最少的樣本個數,提前停止. 後剪枝是在決策樹構建完成之後,根據加上正則項的結構風險最小化自下向上進行的剪枝操作. 剪枝的目的就是防止過擬合,是模型在測試資料上變現良好,更加魯棒.
6.id3演算法,為什麼不選擇具有最高**精度的屬性特徵,而不是使用資訊增益?
7.為什麼使用貪心和其發生搜尋建立決策樹,為什麼不直接使用暴力搜尋建立最優的決策樹?
決策樹目的是構建乙個與訓練資料擬合很好,並且複雜度小的決策樹. 因為從所有可能的決策樹中直接選擇最優的決策樹是np完全問題,在使用中一般使用啟發式方法學習相對最優的決策樹.
8.如果特徵很多,決策樹中最後沒有用到的特徵一定是無用嗎?
不是無用的,從兩個角度考慮,一是特徵替代性,如果可以已經使用的特徵a和特徵b可以提點特徵c,特徵c可能就沒有被使用,但是如果把特徵c單獨拿出來進行訓練,依然有效. 其二,決策樹的每一條路徑就是計算條件概率的條件,前面的條件如果包含了後面的條件,只是這個條件在這棵樹中是無用的,如果把這個條件拿出來也是可以幫助分析資料.
9.決策樹的優點?
優點: 決策樹模型可讀性好,具有描述性,有助於人工分析;效率高,決策樹只需要一次性構建,反覆使用,每一次**的最大計算次數不超過決策樹的深度。缺點: 對中間值的缺失敏感;可能產生過度匹配的問題,即過擬合。
10.基尼係數存在的問題?
基尼指數偏向於多值屬性;當類數較大時,基尼指數求解比較困難;基尼指數傾向於支援在兩個分割槽中生成大小相同的測試。
面試真題
決策樹如何防止過擬合?
資訊增益比相對資訊增益有什麼好處?
如果由異常值或者資料分布不均勻,會對決策樹有什麼影響?
手動構建cart的回歸樹的前兩個節點,給出公式每一步的公式推到?
決策樹和其他模型相比有什麼優點?
決策樹的目標函式是什麼?
決策樹演算法 擬合優化
常用的演算法是 cart 和 id3 演算法。cart 演算法採用gini係數最小的來決定使用哪種特徵來進行 id3演算法採用資訊增益最大的特徵來決定使用哪種特徵來進行 這次的資料集使用稍微複雜一點的鐵達尼號 生死的資料。重複的 不囉嗦,直接上 import numpy as np import p...
十大演算法 決策樹
一 什麼是熵 假設符號xi的資訊定義為 則熵定義為資訊的期望值,為了計算熵,我們需要計算所有類別所有可能值包含的資訊期望值,計算方式如下 熵愈大,不穩定性愈高,即在決策樹中乙個樣本可選擇的分支會愈多。從公式來理解是 假如每個p xi 愈少,則i值愈大,即資訊量愈大,就是有可以有很多中分類。同時,h是...
決策樹演算法
決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...