概要:
- 决策树做回归
- 使用代码实现决策树
一,分类决策树和回归决策树的区别
Classification And Regression Tree(CART)是决策树的一种,CART算法既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Regression Tree),两者在建树的过程稍有差异。
回归树:
选择均方差最小的切分点
CART回归树是假设树为二叉树,通过不断将特征进行分裂。比如当前树结点是基于第j个特征值进行分裂的,设该特征值小于s的样本划分为左子树,大于s的样本划分为右子树。
而CART回归树实质上就是在该特征维度对样本空间进行划分,而这种空间划分的优化是一种NP难问题,因此,在决策树模型中是使用启发式方法解决。典型CART回归树产生的目标函数为:
因此,当我们为了求解最优的切分特征j和最优的切分点s,就转化为求解这么一个目标函数:
所以我们只要遍历所有特征的的所有切分点,就能找到最优的切分特征和切分点。最终得到一棵回归树。
启发式方法:贪心的遍历方法
分类树和回归树的区别与联系:
联系是,都是使用贪心遍历的求解方式,不同是分类使用基尼系数,回归使用MSE。
二.从无到有实现一个决策树
实现的demo在个人资源管理中,可以从下面链接进行下载
https://download.csdn.net/download/a18829292719/13508322
demo中的补充:
在公司中数据量小于100万的时候,如果服务器性能还不错,可以使用pandas.dataframe加载到内存中,然后使用numpy,sklearn进行计算,而不用转化为分布式计算。
每个算法在公司中都会遇到瓶颈,数据量非常大,是没办法只加载到一台计算机内存然后调用sklearn的,这个时候就必须要算法工程师自己手写,然后适配到公司的大数据运算集群,将其转换为一个多级协同任务,这个时候我们就必须知道这个算法背后的实现方式。这也是我们手写算法的必要性。