機器學習(5)之決策樹ID3及Python實現
微信公眾號
關鍵字全網搜索最新排名
【機器學習演算法】:排名第一
【機器學習】:排名第二
【Python】:排名第三
【演算法】:排名第四
ID3是什麼?
ID3演算法是決策樹的一種,基於
奧卡姆剃刀原理
,即用盡量用較少的東西做更多的事
。ID3演算法(Iterative Dichotomiser 3),
迭代二叉樹3代
,是Ross Quinlan發明的一種決策樹演算法,這個演算法的基礎就是上面提到的奧卡姆剃刀原理,越是小型的決策樹越優於大的決策樹,儘管如此,也不總
是生成最小的樹型結構,而是一個啟發式演算法。
在資訊理論中,期望信息越小,那麼信息增益就越大,從而純度就越高。
ID3演算法的核心思想就是以信息增益來度量屬性的選擇,選擇分裂後信息增益最大的屬性進行分裂。該演算法採用自頂向下的貪婪搜索遍歷可能的決策空間。
在1948年,香農引入了
信息熵
,將其定義為離散隨機事件出現的概率,一個系統越
有序,信息熵越低,反之越是混亂,它的信息熵越高。
所以信息熵可以被認為是系統有序化程度的一個度量。
信息增益是針對一個一個特徵而言的,就是看一個特徵,系統有它和沒有它時的信息量各是多少,兩者
的差值就是這個特徵給系統帶來的信息量,即信息增益。
計算公式如下
Python實現
源代碼下載請
加入
機器學習交流2群(634808033)
在文件區中下載或者後台回復關鍵詞:「20170711」
下載。這裡採用的是從UCI上獲得的一個名為
agaricus-lepiota
的數據集,它的屬性全都是標稱的,最終的分類效果不錯,準確率達到了99.63%
。代碼在實現決策樹節點的分枝時是用遞歸實現的。其中,遞歸的終止條件有兩種:一是無法通過分枝產生信息增益,這樣自然就不必再分枝了,二是節點本身分得的樣本數達到了下限值minNumOfInstances,這種情況不再進行分枝的目的是為了避免造成過度擬合的問題。
main.py
pre_processing.py
decision_tree.py
參考:
1. 周志華《機器學習》
2. ACdreamers的博客:http://blog.csdn.net/acdreamers/article/details/44661149
3. stridehuan的博客:http://blog.csdn.net/u012822866/article/details/42419471
招募 志願者
廣告、商業合作
請加QQ:357062955@qq.com
喜歡,別忘關注~
幫助你在AI領域更好的發展,期待與你相遇!


※獨家:Google讓機器學習賦能Play商店,使應用有好排序
※機器學習的發展還得靠「開源」
※來自華盛頓大學教授的機器學習「內功心法」
※機器學習與虛擬現實將為不久以後的生活帶來哪些改變?
※谷歌大腦實習一周年:50 篇論文看機器學習、計算機視覺趨勢
TAG:機器學習 |
※AI機器學習-決策樹-python實現CART演算法
※Andrew Ng經典機器學習課程的Python實現2
※機器學習如何從Python 2遷移到Python 3
※機器學習如何從Python 2遷移到Python 3
※第55期:Python機器學習實踐指南、Tensorflow 實戰Google深度學習框架
※Python與機器學習
※用Scratch+IBM Watson實現機器學習
※谷歌發布機器學習規則 (Rules of Machine Learning):關於機器學習工程的最佳實踐(上)
※谷歌發布機器學習規則 (Rules of Machine Learning):關於機器學習工程的最佳實踐(下)
※IBM稱旗下的Snap機器學習庫比TensorFlow快46倍
※實戰microPython(三)uPyBoard是如何控制機器人的
※基於 Python Schema 的機器學習庫——Smart Fruit
※Windows Defender ATP機器學習和AMSI:發掘基於腳本的攻擊
※Pedro Domingos總結機器學習研究的12個寶貴經驗
※機器學習基石-The Learning Problem
※使用TensorFlow,Kafka和MemSQL進行實時機器學習
※Python 機器學習 Scikit-learn 完全入門指南
※從華為P20 DxOMark的勝利來說AI與機器學習
※熱點聚焦|2018SEG 通過人工智慧與機器學習實現資產價值最大化研討會|Artificial Intelligence
※微軟機器學習Machine Learning Studio學習筆記