機器學習-演算法-決策樹回歸樹(DecisionTreeRegressor)

DecisionTreeRegressor

1
2
3
4
class sklearn.tree.DecisionTreeRegressor(criterion=’mse’, splitter=’best’, 
max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0,
max_features=None, random_state=None, max_leaf_nodes=None, min_impurity_decrease=0.0,
min_impurity_split=None, presort=False)
  • 幾乎所有參數、屬性、接口都和分類樹相同
  • 回歸樹沒有標籤分佈是否均衡的問題
    • 因此沒有class_weight這樣的參數

重要參數

criterion

回歸樹衡量分枝質量的指標,支持的標準有三種

  • "mse": 使用均方誤差(mean squared error)
    • 父節點和葉子節點之間均方誤差之差額被用作特徵選擇的標準
    • 使用葉子節點的平均值來最小化L2損失
  • "friedman_mse":費爾德曼均方誤差
    • 對潛在分枝問題進行改進的另一種計算均方誤差的方法
  • "mae":使用絕對平均誤差(mean absolute error)
    • 使用葉子節點的中位數來最小化L1損失

Mean Squared Error(MSE)

  • $f_i$:是模型回歸出的數值
  • $y_i$:是樣本點$i$實際的數值標籤

重要接口

score

回歸樹中恆量指標,返回的是$R^2$,並不是MSE

  • $R^2$範圍為1至負無窮大

tips

  • 在回歸樹中,MSE是分枝質量衡量指標
  • 在回歸樹中,MSE是最常使用回歸質量衡量指標
  • 使用交叉驗證(cross_validation)時,通常選擇均方誤差作為評估
    • cross_val_score(regressor,data,target,cv=10,scoring="neg_mean_squared_error")
      • scoring不指定的話,預設返回的是$R^2$
  • 在回歸模型中,MSE越小越好

結論

如果樹的最大深度(max_depth)設置得太高,決策樹會學習的太精細

  • 從訓練數據中學了太多細節(包括noise)
  • 使模型偏離真實欲表達得曲線,變成過擬合

Reference

  1. http://www.peixun.net/view/1281.html