决策树做回归及从无到有的实现一个决策树_201207

概要:

  • 决策树做回归
  • 使用代码实现决策树

一,分类决策树和回归决策树的区别

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的,这个时候就必须要算法工程师自己手写,然后适配到公司的大数据运算集群,将其转换为一个多级协同任务,这个时候我们就必须知道这个算法背后的实现方式。这也是我们手写算法的必要性。

猜你喜欢

转载自blog.csdn.net/a18829292719/article/details/110841069