決策樹簡單理解小記(入門級)
1.核心思想
從數據集中找到一個最優特徵,再從這個最優特徵的所有取值中找到一個最優取值,根據這個最優取值將數據集分成兩個子集,不斷重複以上操作,直到滿足指定條件為止。
a.最優特徵選擇的方法:信息增益、信息增益率、Gini指數、卡方檢驗
b.最優取值的作用:減少敏感度,減少出錯
c.停止條件:控制葉節點、樹的最大深度、葉節點純度、分裂次數、最大特徵數
決策樹的構建是一種貪婪演算法,屬於局部最優
2.
(1)ID3演算法:
由信息增益(給定的特徵,對數據集不確定性減少的程度)選擇最優特徵
缺點:a.偏向於選擇取值種類很多的特徵作為最優特徵
b.只能處理類別型的特徵
c.不能處理缺失值
(2)C4.5演算法:
由信息增益率( )選擇最優特徵
優點:a.可以處理類別型的特徵和連續型的特徵(原理:先對連續值進行排序,再選取一個點將連續值分成兩部分,並且分裂前後的信息增益率要最大)
b.可以處理缺失值(原理:用特徵所有取值的概率表示缺失值的可能取值)
缺點:時間花費長
(3)CART演算法
分類由基尼指數gini(表示一件事物的不確定性,基尼指數越大不確定性越大)選擇最優特徵
回歸由均方差mse選擇最優特徵
生成的一定是二叉樹
對缺失值:找一個替代數據填充
3.防止過擬合
(1)剪枝
(2)K-Fold
(3)正則化
(4)隨機森林
from sklearn import RandomForestClassifier(分類)
from sklearn import RandomForestRegressor(回歸)
調參:(詳見http://blog.csdn.net/CherDW/article/details/54971771)
1.Bagging框架參數:
主要是n_estimators:表示森林裡樹的個數。
2.決策樹參數:
主要有5個
a. max_features:劃分時選擇的最大特徵數
回歸問題:max_features=n_features;分類問題:max_features=sqrt(n_features)
b. max_depth:決策樹的最大深度,常用的可以取值10-100之間
c. min_samples_split:內部節點再劃分所需的最小樣本數,小於這個值則不會再劃分
d. min_samples_leaf:葉子節點最小樣本數,小於這個值則會被剪枝
步驟:
a.先確定n_estimators
b.再對max_depth和min_samples_split聯合調參,確定max_depth
c.然後對min_samples_split和min_samples_leaf聯合調參
d.最後對max_features調參
推薦閱讀: