更加智能的決策樹:回歸樹
03-03
樹回歸:可以對複雜和非線性的數據進行建模;適用數值型和標稱型數據。
1、 CART:classification and regression trees(分類回歸樹)。每個葉節點上運用各自的均值做預測二元切割:每次把數據集切成兩份,如果等於切分所要求的值進入左子樹,否則進入右子樹。CART使用二元切分來處理連續型變數。
回歸樹(連續型)分類樹(離散型):回歸樹:假設葉節點是常數值,這種策略認為數據中的複雜關係可以用樹結構來概括。
度量數據的一致性:在給定節點時計算數據的混亂度。首先計算所有數據的均值,然後計算每條數據的值到均值的差值(求其絕對值或平方),這裡是總方差。用該誤差計算準則,去構建數據集上的回歸樹。
實現choosebestsplit的切分:用最佳方式切分數據集,生成對應的葉節點,即切分後誤差最小。其實現偽代碼如下:對每個特徵進行: 對每個特徵值:將數據集切分成兩份 計算切分的誤差 如果當前誤差小於當前最小誤差,則將當前切分作
為最佳切分,並更新最小誤差,返回最佳切分的特徵和閾值。
如果切分不降低原有的誤差,則不再切分;如果剩餘特徵值只有一個值則不需要再切
分;如果誤差減小不夠大,則也直接創建葉節點。如果某個子集的大小小於用戶定義的
參數tolN,也不應切分。
模型過擬合:剪枝 pruning 提前中止的條件設定為預剪枝。
後剪枝:在測試集上進行 合併兩個葉節點,並計算誤差,計算不合併的誤差,如果合併後誤差減小,則進行剪枝。2、 模型樹:需要在每個葉節點上構建出一個線性模型。
把葉節點設定為分段線性函數,piecewise linear 是指由多個線性片段組成。也就是先分類,確定在什麼地方進行分段,從而在不同的段內部使用不同的線性模型去擬合數據。對於給定的數據集,應先用線性的模型進行擬合,然後計算真實的目標值與預測值的差值,求和得到誤差。
3、 決策樹:是一種貪心演算法,不關心全局是否最優。ID3需事先將連續型轉換為離散型數據,每次選取當前最佳特徵來分割數據並按照該特徵所有可能取值來切分。計算相關係數R2,corrcoef(yHat,y,rowvar=0) yhat是預測值,y是目標變數的實際值。
越接近1說明擬合程度越高。推薦閱讀:
※R 包 `ezdf`的講解
※Kaggle Titanic 生存預測(Top1.4%)完整代碼分享
※牢地基築高樓,美林數據在電力和製造業穩紮穩打
※2017年歷史文章匯總|機器學習
※通俗易懂說數據挖掘十大經典演算法