国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

基于香農熵的決策樹算法

2019-11-10 19:56:48
字體:
來源:轉載
供稿:網友

基于香農熵的決策樹算法


《機器學習實戰》一書中有介紹構造決策樹的算法。 所謂決策樹就是已知一些項特征的信息和項最終分類,求通過特征判斷項最終分類的遞歸決策樹。例如書中的例子是判斷一個動物是不是魚類,下面為一個數據集。

def createDataSet(): dataSet = [/ [1, 1, 'yes'], [1, 1, 'yes'], [1, 0, 'no'], [0, 1, 'no'], [0, 1, 'no']] labels = ['no surfacing', 'fl書里舉的另一個例子是隱形眼鏡的問題。書里提供了繪圖引擎用于繪制決策樹。


算法大致流程是: 1.獲得數據集 2.找到一個好的特征劃分數據集為兩部分 3.遞歸這一過程直到數據集內全部為同種類 4.打印由上述劃分確定的樹狀結構


那么如何劃分數據集,也就是如何確定最佳劃分狀態?當然是信息量大的劃分。信息量可以用香農熵刻畫。 U(s)=?Σ(pi?logpi2),其中P(s=si)=pi,且{si}為s的一個劃分

具體嚴格的數學推導我覺得可以用性質刻畫定義(數學上很多函數都是先給出性質再解函數方程獲得唯一定義,于是干脆用性質代替定義)。 顯然U(s)有性質信息量等于各部分信息量之和:U(s)=ΣU(si) 并定義初值條件U(B(1,12))=1(bit) 那么,只需要求出U(s_i)即可,下面假設f(P(si))=U(si),只需要求出f(x)(0<x<1)表達式即可

先考慮一個簡單的問題,p=12k時,2k個狀態信息量之和為U=2kf(p)=k(bit),因為由定義1bit信息可以解決一個二分問題。那么f(p)=k2k=?p?logp2,當然這僅僅解決了1p=2k情形。

然后利用相同手法可以得到性質(函數方程)f(x)x+f(f)y=f(x+y)x+y且有初值條件f(12)=12和連續條件

這就是一個中規中規中矩的函數方程了,依次解決1p是整數,有理數情況,最后用連續條件(Cauchy法)推廣到實數即可。

可以得到信息量的表示方法,也就是香農熵,注意與熱力學熵推導過程一模一樣,除了常數不同。


決策樹代碼略


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 龙口市| 合作市| 泰州市| 永昌县| 石渠县| 中牟县| 长泰县| 乡宁县| 尖扎县| 汨罗市| 故城县| 休宁县| 萨嘎县| 永靖县| 金川县| 昭觉县| 广水市| 怀宁县| 阜城县| 孝感市| 周口市| 任丘市| 呈贡县| 陇南市| 夏津县| 高陵县| 巴彦淖尔市| 乐平市| 商南县| 金沙县| 桂阳县| 祁门县| 阿拉善盟| 富民县| 威海市| 嘉禾县| 大渡口区| 伊春市| 岚皋县| 曲水县| 芒康县|