CART树 python小样例

时间:2022-04-15 23:10:20

决策树不断将数据切分成小数据集,直到所有目标变量完全相同,或者数据不能再切分为止,决策时是一种贪心算法,它要在给定的时间内做出最佳选择,但并不关心能否达到最优

树回归

优点:可以对复杂和非线性的数据建模

缺点:结果不易理解

适用数据类型:数值型和标称型数据

实现CART算法和回归树,回归树和分类树的思路类似,但叶节点的数据类型不是离散型,而是连续型

树回归的一般方法

(1)收集数据:采用任意方法收集数据。

(2)准备数据:需要数值型的数据,标称型数据应该映射成二值型数据

(3)分析数据:绘出数据的二维可视化显示结果,以字典方式生成树

(4)训练算法:大部分时间都花费在叶节点树模型的构建上

(5)测试算法:使用测试数据上的R2值来分析模型的效果

(6)使用算法:使用训练出的树做预测,预测结果还可以用来做很多事情

CART算法只做二元切分,所以这里可以固定树的数据结构。

创建树的伪代码:

找到最佳的待切分特征:

  如果该节点不能再分,将该节点存为叶节点

  执行二元切分

  在右子树调用createTree()方法

  在左子树调用createTree()方法

CATRT算法可以用于构建二元树并处理离散型或连续型数据的切分。若使用不同的误差准则,就可以通过CART算法构建模型树和回归树。该算法构建出的树会倾向于对数据的过拟合。一颗拟合的树常常十分复杂,剪枝技术的出现就是为了解决这个问题。两种剪枝方法分别使预剪枝和后剪枝。