決策樹常用於分類問題,但是也能解決回歸問題。
在回歸問題中,決策樹只能使用cart決策樹,而cart決策樹,既可以分類,也可以回歸。
所以我們說的回歸樹就是指cart樹。
為什么只能是cart樹
1. 回想下id3,分裂后需要計算每個類別占總樣本的比例,回歸哪來的類別,c4.5也一樣
2. 回歸問題肯定是連續屬性,所以只能二划分,而cart樹是強制的二叉樹
回歸樹的分裂
分裂方法與決策樹處理連續屬性無異,分裂評價有所不同。
分類cart樹用的gini系數,回歸cart樹可以用多種評價指標
MSE
cm為葉子節點的均值
最小化L2誤差
MAE
y1-,y2-(平均)分別表示以當前屬性作為划分選擇時各自對應的集合s1和s2目標值的均值,也有取中位數的,可以自己定
最小化L1誤差
也可以嘗試其他回歸評價指標
防止過擬合
通過剪枝提高模型的泛化能力,如
SSE=SSE+γT
T表示樹的規模,如葉節點的個數,γ為懲罰系數,可以自定義,值越大樹的規模越小
示例代碼
from sklearn import tree X = [[0, 0], [1, 1], [2, 2], [6, 6], [8, 8], [10, 10]] y = [0.5, 0.8, 1, 7.5, 8.5, 9] clf = tree.DecisionTreeRegressor(max_depth=2) clf = clf.fit(X, y) print clf.predict([[1, 1.5]]) # 0.9 print clf.predict([[3, 5]]) # 0.9 print clf.predict([[10, 12]]) # 8.75
參考資料:
https://blog.csdn.net/wong2016/article/details/80727524
https://blog.csdn.net/skullFang/article/details/79107127 回歸評價指標