決策樹decision tree
?什么是決策樹
?輸入:學習集
?輸出:分類觃則(決策樹)
- 算法的核心問題
該按什么樣的次序來選擇變量(屬性)?
最佳分離點(連續的情形)在哪兒?
ID3算法
image.png
例子
image.png
C4.5算法
image.png
例子
image.png
CART算法
image.png
image.png
代價復雜度剪枝
http://blog.csdn.net/tianguokaka/article/details/9018933
C4.5的悲觀剪枝法
http://blog.csdn.net/tianguokaka/article/details/9018933
R語言實現決策樹:rpart擴展包
image.png
怎樣評估分類器效能?
image.png
提升分類器準確率的組合方法
image.png
- 組合算法的優勢
能明顯提升判別準確率
對誤差和噪音更加魯棒性
一定程度抵消過度擬合
適合并行化計算
裝袋算法
image.png
- 袋裝算法的優勢
準確率明顯高于組合中任何單個的分類器
對于較大的噪音,表現丌至于很差,并且具有魯棒性
不容易過度擬合
提升(boosting)算法思想
訓練集中的元組被分配權重
權重影響抽樣,權重越大,越可能被抽取
迭代訓練若干個分類器,在前一個分類器中被錯誤分類的元組,會被提高權重,使到它在后面建立的分類器里被更加“關注”
最后分類也是由所有分類器一起投票,投票權重取決于分類器的準確率
- Adaboost算法
image.png
image.png
- 提升算法的優缺點
可以獲得比bagging更高的準確率
容易過度擬合
隨機森林(Random Forest)算法
由很多決策樹分類器組合而成(因而稱為“森林”)
單個的決策樹分類器用隨機方法構成。首先,學習集是從原訓練集中通過有放回抽樣得到的自助樣本。其次,參不構建該決策樹的變量也是隨機抽出,參不變量數通常大大小于可用變量數。
單個決策樹在產生學習集和確定參不變量后,使用CART算法計算,丌剪枝
最后分類結果取決于各個決策樹分類器簡單多數選舉
- 隨機森林算法優點
準確率可以和Adaboost媲美
對錯誤和離群點更加魯棒性
決策樹容易過度擬合的問題會隨著森林觃模而削弱
在大數據情況下速度快,性能好
- R的randomForest包