模型----監督學習中的分類演算法
決策樹演算法的思路:
利用樹的結構,將資料集中的特徵(屬性)劃分為樹中的分支節點
資料集中類別標籤對應樹的葉節點。
構建決策樹的三要素:
1.特徵選擇----資訊熵或資訊增益gini係數來選擇特徵
2.決策樹的生成---id3演算法(資訊增益) c4.5演算法(gini係數)
3.決策樹的剪枝---針對決策樹產生過擬合
---兩種剪枝方式:先剪枝、後剪枝
資訊熵:資訊的不確定性度量,熵越大不確定性越大,通常每種可能性相同的時候,熵最大的
結論:在構建決策樹的過程中,希望選擇資訊熵比較小的,因為資訊熵小對應的資訊純度越高
資訊的不確定性越小,確定性越大
決策樹建樹方法:
第一種方法:基於規則的就建樹
1.明確是哪個屬性或特徵是根節點或葉子節點----根據順序選取
2.隨機選擇根節點的特徵或葉子結點的特徵
3.得到葉子結點的特徵
第二種建樹的方法:基於資訊熵和資訊增益建立決策樹
資訊熵:對資訊的不確定性度量
如果每一事件發生的概率都相等(均勻分布),此時熵最大
熵最大,不確定性越大,確定性越小,資訊純度越低
熵越小,不確定性越小,確定性越大,資訊純度越高
如何根據熵建立一顆決策樹?
---選擇熵比較小的特徵或者屬性作為分支節點
---原因:因為熵小,資訊純度越高
---定義:事件的不確定性應該是單個取值的不確定性的期望 ,也叫作資訊熵,即
上述若對數的底數取值為 2,就是平常所說的資訊單位 bit(位元)
id3演算法:
資訊增益=總體的資訊熵-以某乙個特徵作為劃分標準的資訊熵
計算公式:gain(a)=i(parent)-h(a)
總體資訊熵不會改變的
目的:選擇特徵或屬性進行節點劃分
選取方式:選擇資訊增益比較大的作為分支節點
作用:通過節點來劃分樹結構獲取資訊量
例:gain(age)>gian(income)>gain(***)
選擇方式:優先選擇年齡、收入、性別
演算法原理:
輸入:資料集
輸出:決策樹
演算法:1.計算資訊增益,選擇資訊增益比較大的特徵作為當前的劃分節點
2.在已有的特徵集合中去掉已經選擇過的特徵
3.繼續在剩餘的節點中計算資訊增益比較大的,作為下乙個劃分節點
4.直到所有的節點都劃分為葉子節點
注意:計算資訊增益時候,將所有特徵或屬性的資訊增益計算出來了,只需要排序和選擇就可以。
迭代建樹的停止條件:
1.給定節點所有的樣本屬於同乙個類別
2.沒有剩餘的屬性用於劃分,只需要通過多數表決的方法決定剩餘節點
3.給定乙個資訊增益的閾值,通過該閾值判斷是否迭代停止
給定迭代次數:在python的sklearn中下屬三種情況都是引數,可以動態調整
max_depth 樹的深度
min_sample_leaf根據葉子結點所包含的元素個數決定是否迭代停止
min_sample_split根據分支節點含有的樣本數決定是否迭代停止
c4.5演算法:
在id3演算法的基礎上增加了資訊增益率作為劃分節點的依據
優勢:規避掉資訊增益比較大或小的時候會傾向於屬性多的情形
對連續值處理非常好的
對決策樹通過剪枝減小複雜度(過擬合)
能夠對不完整資料進行處理
cart樹演算法:選擇劃分的節點是根據gini係數劃分
在python的sklearn中預設使用gini係數作為劃分的準則
屬於一種貪心演算法
決策樹演算法極易產生過擬合的情況:
解決辦法:剪枝技術
分類技術:先剪枝(預剪枝)和後剪枝
為什麼需要進行剪枝?
答:決策樹很容易產生過擬合,需要進行剪枝降低決策樹的複雜程度
根據剪枝前後的分類誤差率的變化決定是否進行剪枝
先剪枝:
實際生產中比較常見的一種手段。
在建立決策樹的過程中進行剪枝
通過選擇不同的資訊不純度的閾值(資訊增益)
(1)如果閾值設定的過大,容易產生欠擬合(決策樹沒有生產完全)
(2)如果閾值設定的過小,容易產生過擬合(近似於未剪枝技術)
選取的過程更多的是靠經驗
後剪枝:
決策樹已經形成之後,進行剪枝的一種技術
如果乙個節點能夠替換一顆子樹,根據分類的誤差率時候減少來進行評判
通過充分生長的一棵樹中自底向上的進行樹的剪枝
(1)用新的葉子結點替換原來的子樹
新的葉子節點的類別根據資料集中少數服從多數的原則選取
(2)用子樹中最常見的分支節點代替子樹
**如何評判剪枝效果?mep最小錯誤率剪枝技術
**選擇子樹或節點的時候,需要產生若干顆子樹或節點計算所有子樹或節點的錯誤率,從中選擇錯誤率較小的那個量
兩種剪枝技術如何選擇?
現在工業界中通常選擇先剪枝技術,計算複雜度較小,容易實現
在理論上如果模型的泛化效能好的話,建議採用後剪枝技術,但是會帶來複雜度的提公升
決策樹的特點:
優點:直觀、便於理解
執行效率高,執行一次可以多次使用
缺點:對連續值處理不好(cart樹中提供了二分的方法)
實際分類中往往只能處理乙個字段
決策樹學習筆記
一 什麼是決策樹 決策樹是一種基於規則的方法,它用一組巢狀的規則進行 在樹的每個決策節點處,根據判斷結果進入乙個分之,反覆執行這種操作直到到達葉子節點,得到 結果。這些規則是通過訓練得到的,而不是認為設定的。規則是每一次 時的閥值。二 樹形成決策的過程 為便於用程式實現,一般將決策樹設計成二叉樹。與...
決策樹學習筆記
決策樹是一種有監督機器學習方法。熵 entropy 是表示隨機變數不確定性的度量。設x是乙個取有限個值的離散隨機變數,其概率分布為 則其隨機變數的資訊熵為 熵越大,則隨機變數的不確定性越大。決策樹的目的就是讓資訊熵越來越小,分類則越來越明確。資訊增益表示得知特徵a的資訊而使得總樣本d的資訊的不確定性...
決策樹學習筆記
熵是表示隨機變數不確定性的度量,越小越好 資訊增益 表示特徵x使得類y的不確定性減少的程度。先計算y的熵值為原始熵值,再計算 增益 原始熵值 id3 資訊增益 id熵值小,增益大,但是對結果的影響基本沒有 c4.5 資訊增益率 解決id3,考慮自身熵 cart 使用gini係數來當做衡量標準 gin...