機器學習實戰:決策樹原來這麼簡單

目錄

決策樹介紹

信息熵是啥

決策樹與信息熵怎麼結合

決策樹的剪枝

決策樹的算法有哪些

sklearn決策樹參數介紹

決策樹實戰


上一篇:機器學習實戰-監督學習、無監督學習

上一篇的文章中,我們主要對監督學習與無監督學習進行了講解,其實還有一個半監督學習,這個可以自行百度,也是比較簡單。

這一篇中,我們來講解監督學習中經常用到的算法,決策樹。

機器學習實戰:決策樹原來這麼簡單

 

本文章節

1、決策樹介紹

2、信息熵是啥

3、決策樹與信息熵怎麼結合

4、決策樹的剪枝

5、決策樹的算法有哪些

6、sklearn決策樹參數介紹

7、決策樹實戰

決策樹介紹

決策樹是啥?用一句簡單的話來說就是:決策+樹,用一堆if else組成的樹木,就是決策樹。

機器學習實戰:決策樹原來這麼簡單

 

信息熵是啥

在決策樹裏面,有一個很重要的概念,那就是信息熵。

信息熵這個詞理解起來比較抽象,但是我們可以進行分開理解

信息:代表着我們接收到的數據,例如今天吃雞腿

熵:這個詞最早接觸是在高中的化學裏面,有這麼描述:熵在化學中是表示分子的混亂程度,分子越混亂,它的熵就越大,而若分子越有序,熵值就越小

總結:我們對於今天吃雞腿這個消息,越確定,那這個熵值就越小

好了,通過吃雞腿我們來理解了信息熵,如果不理解的話,私信我,我儘可能更加簡便來解釋這個東東。

從數學裏面來說,信息熵是有計算公式的

機器學習實戰:決策樹原來這麼簡單

 

簡單理解一下這個公式:Pi表示事件的概率,例如今晚吃雞腿的概率是90%,那就是0.9,然後就算計算logPi的累加和,這就是信息熵,不難不難,數學知道公式代表什麼意思,然後記下來妥妥的。

決策樹與信息熵怎麼結合

我們都知道,決策樹是有許多的屬性,分支組成,那在進行數據流向之前,怎麼判斷我這個數據該走向哪一條分支呢?這裏就要用到信息熵,信息熵可以對信息不確定性進行度量,也就是進行計算,我們通過對節點上的信息進行計算它的信息熵,對比熵值,熵值越小,證明信息就越確定,就選你了。

機器學習實戰:決策樹原來這麼簡單

 

決策樹的剪枝

我們在構建一顆決策樹的時候,最理想的目標是構建一顆最矮的決策樹,爲什麼是最矮的,因爲要避免過擬合的出現,什麼是過擬合,我們來看一張圖

機器學習實戰:決策樹原來這麼簡單

 

在我們的現實世界中,我們就沒有完美的數據,一個正常的數據集裏面,肯定會存在錯誤的,意料之外,奇形怪狀的數據,好比我們的那兩張圖,第一張裏面那個藍色的圖標,就妥妥的藏在紅色圖標裏面,要不要找出來?怎麼找出來?像第二張圖片一樣找出來嗎?這樣做的後果只有一個問題,那就是過擬合,導致我們的分類器只能適應我們現在的數據,對於後面的新數據一進來,妥妥的無法明確分類。

決策樹爲了防止這種情況,就用來個剪枝來處理這種過擬合,他辦到的原理其實很好理解,因爲決策樹可以給每一個給定的樣本的每一個屬性做一個精準的分類,但是如果無限制的分類下去,那就跟圖中的第二張圖一樣,這樣子的後果,數據是好看了,其實就是沒法用。

決策樹的剪枝有兩種,預剪枝與後剪枝。

預剪枝:這是一種從上往下的做法,怎麼做呢,其實就是限制這個決策樹的高度,構建的過程中達到了這個高度,就停止繼續分裂的,這就達到了最低節點了。

後剪枝:這是一種從下往上的方法,它讓決策樹全部構建完成,然後從底部開始找啊找啊,判斷哪些枝幹是可以剪掉的。

備註:小編根據現網數據,經常用的是預剪枝,因爲現網數據缺失程度大到噁心,性能上也會快一些。

決策樹的算法有哪些

目前決策樹有三種算法:ID3決策樹,C4.5決策樹,CART決策樹,這三種算法在網上介紹的比較多,包括優點及缺點,這裏不累贅,可以自行搜索。

sklearn決策樹參數介紹

sklearn給我們提供了一個決策樹的算法,我們可以直接使用,在使用之前,小編先來介紹一下它的參數代表了什麼意思,以及哪些參數是我們經常要用到或者必須設置的。

機器學習實戰:決策樹原來這麼簡單

 

這麼多參數,我們怎麼設置,有個原則:基本默認,設置4個

1、criterion:用以設置用信息熵還是基尼係數計算。

2、splitter:指定分支模式

3、max_depth:最大深度,防止過擬合

4、min_samples_leaf:限定每個節點分枝後子節點至少有多少個數據,否則就不分枝

決策樹實戰

終於到了最後的時刻,我們採用上次的數據,來進行分類

1、對數據按照2:8的比例分成兩份,一份用來訓練,一份用來測試

機器學習實戰:決策樹原來這麼簡單

 

2、加載決策樹算法,數據訓練

機器學習實戰:決策樹原來這麼簡單

 

3、預測準確率

機器學習實戰:決策樹原來這麼簡單

 

神奇的一幕出現了,準確率達到了100%,是不是數據錯誤了?沒錯的,這個數據是專門篩選過的,基本上去除了所有的噪音,所以準確率會非常高,而且,數據量太少,如果有需要,私信我拿完整的數據,你會看到不一樣的效果。

至此,決策樹完成,算是比較簡單,但是應用起來非常不錯的算法,有需要的話可以找我拿數據,實踐一下。#程序員# #互聯網寒冬#

--END--

作者:溪雲閣

原創作品,抄襲必究。

部分圖片來源網絡,如侵權請聯繫刪除,謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章