屬性選擇
屬性的感覺就是最大限度的增加樣本的純度,并且不要產生產生樣本數少的分枝。
屬性選擇標準有信息增益(Information Gain)和Gini系數
信息增益作為標準時,選擇信息增益大的作為分裂點
Gini是一種不純度函數,衡量數據關于類別的純度,數據均勻分布于各個類別時,不純度就很大
大小規模合適的樹
- 樹停止生長的條件(最小劃分實例數,劃分閾值,最大樹深度)
- 對完全生長的樹進行剪枝(評估子樹,如去掉性能更好,則進行剪枝)
ID3
思想:選信息增益大的屬性建立分支,遞歸選取知道子樹只包含一個類別的數據
自頂向下的貪婪的搜索算法,構造出與訓練數據一致的決策樹
用信息增益作為屬性選擇的標準,使劃分后的數據集的信息熵最小
ID3的問題
- 只能處理屬性數據,無法處理連續型數據
- 屬性的每個取值都會產生一個對應分支,會有許多小的子集,過小的子集會導致統計特征不充分,使算法停止
- 信息增益在類別值多的屬性上計算結果,大于類別值少的屬性,導致算法天生偏向選擇分支多的屬性,會導致過度擬合
C4.5
- 能處理連續性和離散型屬性
- 能處理有缺失值的數據
- 信息增益作為決策樹屬性選擇標準
- 對生成樹進行剪枝處理
- 決策樹到規則自動生成
不同于ID3
C4.5不是直接衡量信息增益,是用的信息增益率來衡量屬性的
ID3中的信息增益是根據所屬類別(y)來計算的,C4.5以信息增益率為標準,引入分裂信息的概念,考慮了獲取增益的代價,克服了ID3偏心多屬性特征的缺點
分裂信息用來衡量屬性分裂數據的廣度和均勻,公式如下
Paste_Image.png
屬性值越多,分布越平均的分裂信息越大,對應的信息增益率則越小
對于連續值的求解
Paste_Image.png
處理缺失值,這個ID3也沒有
- 直接拋棄
- 平均數或者眾數
- C4.5中用概率的方法,為每個可能的賦值都設置一個概率
剪枝
不用預剪枝是因為預剪枝對不同數據的表現很不一樣
后剪枝方法
- 從葉節點開始,檢查每個非葉節點
- 如果以某個葉節點(或其子節點中使用頻率最高的子節點),替換該非葉節點
- 整個決策樹的誤差率降低就剪去改節點
預剪枝方法
- 限制樹的最大深度
- 限制葉節點最小記錄數
C4.5后剪枝
針對每個節點,以其中的類別眾數作為預測類別
利用每個節點的錯誤率,根據假設正態分布對真實誤差進行估計
悲觀誤差剪枝
CART樹
改進ID3的3個方面
- 不純度計算用GINI指數,取最小最為分裂點,就是差異損失最大的點(Gini父-Gini子最大的)
- 特征雙化(towing),二元分類樹
- 輸出為離散時為分類樹,為連續時為回歸樹
特征雙化
構建二叉樹,雙化時盡量時2個類別的輸出差異性的和,保持最小,就是純度最大。
具體操作就是窮舉法,對每對都計算Gini系數(帶全局的權重),然后選擇Gini系數最大的呢一組,這種感覺就是選最不純的一組,用你的下限去和別的屬性競爭,以達到全局的最優