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

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

基于香農熵的決策樹算法

2019-11-10 18:53:14
字體:
來源:轉載
供稿:網友

基于香農熵的決策樹算法


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

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法)推廣到實數即可。

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


決策樹代碼略


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中江县| 嵩明县| 利川市| 禹州市| 元谋县| 长沙县| 安阳市| 靖边县| 长宁区| 神木县| 静海县| 萝北县| 彭山县| 松潘县| 上思县| 长治县| 四平市| 呼伦贝尔市| 江口县| 宁海县| 交口县| 绵竹市| 行唐县| 汝州市| 涿鹿县| 获嘉县| 监利县| 镇沅| 宜兰市| 阿图什市| 宜兴市| 嫩江县| 博爱县| 唐山市| 六枝特区| 湖口县| 年辖:市辖区| 巴林左旗| 屏东市| 汝州市| 丽水市|