機器學習按資料的使用方式來說可以分為有監督學習、無監督學習、半監督學習、強化學習等,機器學習中的演算法還有另外一種劃分方式:分類、聚類、回歸。但我更喜歡分為兩種:廣義的分類(分類+聚類)和回歸,這裡是按照**的結果是離散資料還是連續資料來劃分的。今天要介紹的決策樹就是分類演算法中的一種。
在介紹機器學習和深度學習方法時,筆者將按照以下順序來介紹相關理論:1.主要概念的定義 2.模型工作原理 3.最優化策略 4.模型訓練方法 5.優缺點評估 6.應用(在第二篇介紹)
1主要概念
決策樹:決策樹是一種樹形結構,其中每個內部節點表示乙個例項在乙個屬性上的測試,每個分支代表乙個例項測試輸出的結果,每個葉節點代表一種類別。
剪枝:將決策樹的一顆樹的子節點全部刪掉,根節點作為葉子結點,其目的在於避免過擬合。
資訊熵:由資訊理論之父香濃提出,表示資訊的不確定性,計算公式為
在這裡,p指的是例項屬於某種類別的概率,n是類別的總數。這個公式所蘊含的意思就是分類越多,資訊熵越大,這裡資訊熵的值本身是沒有任何意義的,其存在的意義在於有乙個可以比較的尺度,當需要比較兩個資訊誰更混亂時,這裡資訊熵才有了用武之地!
2決策樹的工作原理
對於乙個訓練好的決策樹來說,當有乙個新資料需要**其分類時,首先以根節點的屬性查詢例項對應的值,然後決策應該選擇哪個分支,在選定分支後按照下乙個節點對應
的屬性繼續查詢例項對應屬性的值,然後決策此節點應該選的分支,依次類推,得到葉子結點,葉子結點所對應的類別就是決策樹**的例項所屬分類。
3決策樹的最優化策略
在構建決策樹的過程中,當我們需要選取某個屬性作為分支的判斷條件時,我們需要知道在眾多的屬性中應該選擇哪乙個最好。這時,我們需要有乙個可以衡量的指標,根據這個指標來選擇屬性。決策樹模型有比較多的指標可供我們選擇,這裡介紹3種。
3.1資訊增益(id3演算法)
資訊增益是id3演算法所使用的最優化策略,在這裡就用到了資訊熵的概念。
當我們為某個節點擊擇屬性時,首先衡量選擇屬性之前的資訊熵h,然後遍歷所有屬性,分別求選擇對應屬性後的資訊熵hi,這時,資訊增益可以表示為gain(a)=h-hi,a表示所選的屬性。
3.2資訊增益率(c4.5演算法)
使用資訊增益選擇屬性時,這種方法往往傾向於選擇屬性值較多的屬性。舉個極端的例子,所有例項在屬性a上的屬性值都不重複,那麼在使用這個屬性決策時如果將每個資料自成乙個分支,那麼直接得到分類結果,此時資訊熵為直接變為0,資訊增益最大,但顯然這種方法是不合理的,至少會發生過擬合。這裡可以引入乙個懲罰因子,那麼可以認為資訊增益率=懲罰因子*資訊增益,這裡
其中d代表資料集,di代表資料集按照值的劃分,相同的值的資料在同乙個劃分中,否則不在。資訊增益率的缺點與資訊增益恰恰相反,這種方法傾向於選擇取值較少的特徵。。。
基於以上缺點,並不是直接選擇資訊增益率最大的特徵,而是現在候選特徵中找出資訊增益高於平均水平的特徵,然後在這些特徵中再選擇資訊增益率最高的特徵。
3.3基尼指數(cart演算法)
定義:基尼指數(基尼不純度):表示在樣本集合中乙個隨機選中的樣本被分錯的概率。
決策樹(cart)構建的基本步驟如下:
1. 開始,所有記錄看作乙個節點
2. 遍歷每個變數(屬性)的每一種分割方式,找到最好的分割點
3. 分割成兩個節點n1和n2
4. 對n1和n2分別繼續執行2-3步,直到每個節點足夠「純」或者沒有變數(屬性)可以劃分節點為止
5決策樹的優缺點
優點:1速度快,計算量相對較小,比較容易轉化成規則
2便於理解,可以很清晰的顯示出哪些屬性比較重要
缺點:1缺乏伸縮性,由於進行深度優先搜尋,所以非常吃記憶體,難於處理大資料集
2連續型字段難於處理
3當類別太多時,錯誤可能會增加的比較快
決策樹和CART決策樹
首先簡單介紹下決策樹 說到決策樹肯定離不開資訊熵 什麼是資訊熵 不要被這名字唬住,其實很簡單 乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說 今天早上太陽公升起 資訊量是很少的,以至於沒有必要傳送。但另一條訊息說 今天早上日食 資訊量就很豐富。概率越大資訊量就越少,與...
決策樹(二)決策樹回歸
回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...
決策樹01 決策樹的原理
此筆記根據 machine learning in action 和周志華教授的 機器學習 所作。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型 machine learning in action if so return 類標籤 else 尋找劃分資料集的最好特徵 劃分資料集 建立分...