機器學習筆記(四)決策樹
一、背景
在上一篇文章中,我們講解了線性迴歸和邏輯迴歸的相關數學推導和Python實現,本篇文章我們將繼續下一個機器學習中一個非常重要的模型——決策樹的學習。決策樹之所以叫決策樹,是和它的原理緊密相關的,看下面這個場景,是不是很熟悉。首先看天氣情況,然後根據天氣情況做下一步決定,如果天氣好,再看游泳館是否開放,如果天氣不好,再視父母是否在家來做決定,最終會有三種選擇,或者可以認為是一個三分類問題。這就是一個典型的決策樹場景,樹的深度是3,從根節點(天氣)開始,根據每一步的條件,決策下一步的計劃(非葉子節點/內部節點),最終每條路都會走到一個葉子節點(游泳、看電視、去外婆家)。例如,今天天氣好,父母在家,我們就知道今天是要去外婆家。
上面我們已經引入了一個決策樹的背景案例,不過這個決策樹是已知的,我們只是根據這個決策樹來決定(推理/預測)最終的行為,但是這個決策樹是怎麼來的呢?這和我們的機器學習又有什麼關係呢?我們看下面一組資料,某化妝品店統計了十位顧客的屬性資訊以及是否會購買化妝品的資料,詳細如下:
列名 | 性別 | 年齡 | 是否購買 |
1 | 女 | 青年 | 是 |
2 | 女 | 中年 | 是 |
3 | 男 | 中年 | 否 |
4 | 女 | 青年 | 是 |
5 | 男 | 青年 | 否 |
6 | 女 | 青年 | 是 |
7 | 女 | 中年 | 是 |
8 | 男 | 青年 | 否 |
9 | 男 | 青年 | 否 |
10 | 女 | 中年 | 是 |
從上面這個表格中可以看出什麼規律呢?統計可以發現,從性別看,所有的女性都購買了產品,所有的男性都沒有購買,從年齡看,青年裡面3人購買,3人未購買,中年裡面3人購買,1人未購買,如果用決策樹的形式表達出來,可以有下面兩種:
如果需要構建一個決策樹模型,肯定會選擇上圖的(a),而不是(b),為什麼呢?因為根據性別就可以直接得出結果了,沒必要先判斷年齡,再判斷性別。換句話說,(a)樹的深度更淺。這就是一個非常簡單的構建決策樹模型的過程,當然實際中的資料遠比上面更復雜,比如會存在連續值資料,而接下來我們要詳細介紹的決策樹演算法就是為了要解決在複雜資料場景下,如何構建一個更加合理的決策樹模型的過程。一旦構造好了決策樹,那麼分類或者預測任務就很簡單了,只需要走一遍決策樹流程到葉子節點就ok了。
二、決策樹模型
2.1 資訊熵
在第一章中我們提到了採用性別作為第一個判決條件比年齡更好,因為採用性別一次就可以劃分所有結果,那麼有沒有一個量化值來衡量這個好壞呢?這裡就引出了一個概念——資訊熵。在介紹資訊熵之前,先看一個例子。假如有人告訴你明天太陽從東邊升起,你的感覺是什麼?這TM不是廢話嗎?因為明天太陽從東邊升起的概率可以認為是1,或者可認為是一個必然事件,所以這句話沒什麼意義。如果有人告訴你下期雙色球的中獎號碼,這還是廢話嗎?當然不是,因為這句話很有用,換句話這句話的價值很大,因為猜中雙色球的概率是百萬分之一,告訴你一個百萬分之一的概率事件,當然這句話的資訊量就很大。在資訊理論中,隨機離散事件出現的概率存在著不確定性。為了衡量這種資訊的不確定性,資訊學之父夏農引入了資訊熵的概念,並給出了計算資訊熵的數學公式:
其中,n為可能的所有類別數(例如拋硬幣正反兩種),p(xi)表示類別xi發生的概率。一個事件的不確定性越大,則資訊熵越大,反之亦然。
相關文章
- 機器學習:決策樹機器學習
- 機器學習——決策樹模型機器學習模型
- 機器學習之決策樹機器學習
- Python機器學習:決策樹001什麼是決策樹Python機器學習
- 【機器學習】--決策樹和隨機森林機器學習隨機森林
- 機器學習Sklearn系列:(三)決策樹機器學習
- 機器學習|決策樹-sklearn實現機器學習
- 機器學習西瓜書02:第四章,決策樹。機器學習
- 【Python機器學習實戰】決策樹與整合學習(四)——整合學習(2)GBDTPython機器學習
- 【Python機器學習實戰】決策樹和整合學習(二)——決策樹的實現Python機器學習
- 機器學習 Day 9 | 決策樹基礎機器學習
- 機器學習之決策樹演算法機器學習演算法
- 機器學習——決策樹模型:Python實現機器學習模型Python
- 圖解機器學習 | 決策樹模型詳解圖解機器學習模型
- 【Python機器學習實戰】決策樹和整合學習(一)Python機器學習
- 機器學習之 決策樹(Decision Tree)python實現機器學習Python
- 機器學習之使用sklearn構造決策樹模型機器學習模型
- 機器學習經典演算法之決策樹機器學習演算法
- 機器學習之決策樹原理和sklearn實踐機器學習
- 決策樹在機器學習的理論學習與實踐機器學習
- 機器學習西瓜書吃瓜筆記之(二)決策樹分類 附一鍵生成決策樹&視覺化python程式碼實現機器學習筆記視覺化Python
- 【Python機器學習實戰】決策樹與整合學習(三)——整合學習(1)Python機器學習
- 機器學習之決策樹在sklearn中的實現機器學習
- 機器學習之決策樹ID3(python實現)機器學習Python
- 《機器學習Python實現_09_02_決策樹_CART》機器學習Python
- 決策樹學習總結
- 機器學習——線性迴歸-KNN-決策樹(例項)機器學習KNN
- 機器學習 - 決策樹:技術全解與案例實戰機器學習
- 人工智慧之機器學習基礎——決策樹(Decision Tree)人工智慧機器學習
- 【機器學習】實現層面 決策樹 並用graphviz視覺化樹機器學習視覺化
- [模式識別複習筆記] 第8章 決策樹模式筆記
- 【西瓜書筆記】3. 決策樹筆記
- 通用機器學習演算法:線性迴歸+決策樹+Xgboost機器學習演算法
- 機器學習學習筆記機器學習筆記
- 機器學習筆記機器學習筆記
- 【Python機器學習實戰】決策樹與整合學習(六)——整合學習(4)XGBoost原理篇Python機器學習
- 機器學習之決策樹詳細講解及程式碼講解機器學習
- 深入淺出學習決策樹(二)