树回归(源码实现)
#coding=utf-8'''
Created on Feb 4, 2011
Tree-Based Regression Methods
@author: Peter Harrington樹回歸分類回歸樹CART
策樹是一種貪心算法,它要在給定時間內(nèi)做出最佳選擇,但
并不關心能否達到全局最優(yōu)。
優(yōu)點:可以時復雜和非線性的數(shù)據(jù)建模。
缺點:結(jié)果不易理解。
適用數(shù)據(jù)類型:數(shù)值型和標稱型數(shù)據(jù)。第3章使用的樹構建算法是ID3 o ID3的做法是每次選取當前最佳的特征來分割數(shù)據(jù),并按照
該特征的所有可能取值來切分。也就是說,如果一個特征有4種取值,那么數(shù)據(jù)將被切成4份。一‘
旦按某特征切分后,該特征在之后的算法執(zhí)行過程中將不會再起作用,所以有觀點認為這種切分
方式過于迅速。另外一種方法是二元切分法,即每次把數(shù)據(jù)集切成兩份。如果數(shù)據(jù)的某特征值等
于切分所要求的值,那么這些數(shù)據(jù)就進人樹的左子樹,反之則進人樹的右子樹。除了切分過于迅速外,ID3算法還存在另一個問題,它不能直接處理連續(xù)型特征。只有事先
將連續(xù)型特征轉(zhuǎn)換成離散型,才能在ID3算法中使用。但這種轉(zhuǎn)換過程會破壞連續(xù)型變量的內(nèi)在
性質(zhì)。而使用二元切分法則易于對樹構建過程進行調(diào)整以處理連續(xù)型特征。具體的處理方法是:
如果特征值大于給定值就走左子樹,否則就走右子樹。另外,二元切分法也節(jié)省了樹的構建時間,
但這點意義也不是特別大,因為這些樹構建一般是離線完成,時間并非需要重點關注的因素。樹回歸的一般方法
(1)收集數(shù)據(jù):采用任意方法收集數(shù)據(jù)。
(2)準備數(shù)據(jù):需要數(shù)值型的數(shù)據(jù),標稱型數(shù)據(jù)應該映射成二值型數(shù)據(jù)。
(3)分析數(shù)據(jù):繪出數(shù)據(jù)的二維可視化顯示結(jié)果,以字典方式生成樹。
(4)訓練算法:大部分時間都花費在葉節(jié)點樹模型的構建上。
($)測試算法:使用測試數(shù)據(jù)上的R2值來分
總結(jié)
- 上一篇: java.lang.Unsatisfie
- 下一篇: 使用FP-growth算法发现频繁项集