@spiritnotes
2016-03-14T04:54:50.000000Z
字数 1074
阅读 3366
机器学习
算法
决策树是不断将数据切分成小数据集,直到所有目标变量完全相同,或者数据不能再切分为止。决策树是一种贪心算法,在给定时间内作出最佳选择,并不关心能否达到全局最优。
CART算法使用二元切分来处理连续型变量。对CART稍作修改就可以处理回归问题。
构建算法:
回归树假设叶节点是常数值,这种策略认为数据中的复杂关系可以用树结构来概括。
通过降低决策树的复杂度来避免过拟合的过程称为剪枝。
除了可以把叶节点设置为常数值外,还可以将叶节点设置为分段线性函数(piecewise linear),所谓的分段线性是指模型由多个线性片段组成。
叶节点产生为函数
def model_leaf(dataset):
ws, x, y = linesolve(dataset)
return ws
def model_error(dataset):
ws, x, y = linesolve(dataset)
yhat = x*ws
return sum(power(y - yhat, 2)
回归判断哪个模型好:用y与预测y计算相关性进行判断, corrcoef
Github: https://github.com/spiritwiki/codes/tree/master/decidetree_cart
coding.net:https://coding.net/u/spiritwiki/p/codes/git/tree/master/decidetree_cart