ID3算法的核心思想
以信息熵的下降速度作爲選取測試屬性的標準,所選的測試屬性是從根節點到當前節點的路徑上尚未被考慮的具有最高信息增益的屬性。
維基百科上對ID3算法有比較詳細的介紹:ID3維基
計算過程相關公式
x 是一個離散型的隨機變量,其概率分佈爲
p(x)=P(X=x),x∈X
則X的熵爲
H(X)=−∑i=0np(xi)log2p(xi)
約定0log20=0 。
n 表示有多少個分類,可以理解爲所選測試屬性下有多少個不同值,H越大,信息的不確定性越大,H越小,信息的不確定性越小,H等於0時最具確定性,這種情況是所有元素都歸爲同一類,每個值的發生都有相同的概率。參考至信息論中的信道的數學模型 ,有
U=[u1,u2,u3,...,ur] ,信源所發消息,離散隨機變量;
V=[v1,v2,v3,...,vq] ,新宿所收消息,離散隨機變量;
P(V|U) :轉移概率表示發生爲U,接收爲V的概率,存在
∑(vj|ui)=1,i=1,2,...,r;j=1,2,...,q P(V|U) 可以這樣理解,當一個屬性中取值爲U 時,對另一個屬性取值
爲V 的影響程度先驗概率
P(U) :信源發送消息前,U 的概率分佈。其實就是上面的p(x) 。- 後驗概率
P(U|vj) : 信宿端收到消息vj 後,U的概率分佈。 - 後驗熵:信宿端收到
vj 後,關於U的平均不確定性爲:
H(U|vj)=−∑i=0rP(ui|vj)log2P(ui|vj),j=1,2,...,q - 條件熵:
H(U|V)=−∑j=0q∑i=0rP(ui|vj)log2P(ui|vj)
條件熵即信道疑異度,對後驗熵在輸出V 集合中求期望值,表示在信宿端收到全部輸出v 後,對信源端U 尚存在的不確定性。 H(U|V)<H(U) - 信息增益:衡量通過信道傳輸進行通信後所消除的不確定性的大小,定義爲:
I(U,V)=H(U)−H(U|V)
表示收到V 後獲得關於U 的信息量,是不確定性的消除是信宿端所獲得的信息量,其中:
H(U)=−∑i=0rP(ui)log2P(ui)
H(U|V)=−∑j=0q∑i=0rP(ui|vj)log2P(ui|vj)
ID3算法步驟
計算各屬性的信息增益,找出最大者爲根節點
1. 先驗熵:沒有接收到其他屬性時的平均不確定性
2. 後驗熵:接收到輸出符號Vj時關於信源的不確定性
3. 條件熵:對後驗熵在輸出符號集V中求期望,接收到全部符號後對信源的不確定性
4. 信息增益:先驗熵與條件熵的差,是信宿端所獲得信息量
對剩餘屬性重複上述步驟。遞歸思想。
例子後續補充