基于决策树系列算法(ID3, C4.5, CART, Random Forest, GBDT)的分类和回归探讨
2016-07-22 17:18
507 查看
现在的r或者spark集成的机器学习包里面,基于决策树的算法都分回归或者分类。而实际这些回归可能和我们平常的理解存在一些偏差,因此写下此文一起探讨!
决策树常见算法有以下几种:
ID3算法主要思想是根据信息增益来进行节点分裂时的特征选择。即贪心的选取信息增益最大的特征来作为分裂依据。
C4.5算法是ID3算法的改进版,用信息增益率来进行feature选择,利用二分方式处理连续值,同时增加了对决策树的剪枝。
CART是基于Gini系数进行分裂。
随机森林其核心思想就是训练多棵决策树,来共同决策。
GBRT是回归树,不是分类树。其核心就在于,每一棵树是从之前所有树的残差中来学习的
分类:常用机器学习包里提供的基于决策树的分类算法很好理解就是利用特征将样本层层分到各叶子节点。
回归:而用基于决策树的算法做回归又分为两种情况:
1.回归树:利用每个叶子节点各自的均值做为预测值。所以利用回归树做回归可以发现,回归出来的值的个数与叶子节点的个数相同。
这意味着:训练数据的标签值虽然是连续的,但回归树的预测值却只能是离散的。所以回归树实质是多分类
机器学习包中提供的回归基本都是这种类型,所以在调用包进行学习,即使输入是连续分布的,输出仍是不联系的有限个值
2.模型树:真正意义的基于树的回归,每个叶子节点都是一个分段回归模型。目前CART提供这种真正意义的回归。显然这种方法数次更符合回归的真正需求,代价就是训练时间长
决策树常见算法有以下几种:
ID3算法主要思想是根据信息增益来进行节点分裂时的特征选择。即贪心的选取信息增益最大的特征来作为分裂依据。
C4.5算法是ID3算法的改进版,用信息增益率来进行feature选择,利用二分方式处理连续值,同时增加了对决策树的剪枝。
CART是基于Gini系数进行分裂。
随机森林其核心思想就是训练多棵决策树,来共同决策。
GBRT是回归树,不是分类树。其核心就在于,每一棵树是从之前所有树的残差中来学习的
分类:常用机器学习包里提供的基于决策树的分类算法很好理解就是利用特征将样本层层分到各叶子节点。
回归:而用基于决策树的算法做回归又分为两种情况:
1.回归树:利用每个叶子节点各自的均值做为预测值。所以利用回归树做回归可以发现,回归出来的值的个数与叶子节点的个数相同。
这意味着:训练数据的标签值虽然是连续的,但回归树的预测值却只能是离散的。所以回归树实质是多分类
机器学习包中提供的回归基本都是这种类型,所以在调用包进行学习,即使输入是连续分布的,输出仍是不联系的有限个值
2.模型树:真正意义的基于树的回归,每个叶子节点都是一个分段回归模型。目前CART提供这种真正意义的回归。显然这种方法数次更符合回归的真正需求,代价就是训练时间长
相关文章推荐
- 书评:《算法之美( Algorithms to Live By )》
- 动易2006序列号破解算法公布
- C#递归算法之分而治之策略
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- C#算法之大牛生小牛的问题高效解决方法
- C#算法函数:获取一个字符串中的最大长度的数字
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- 经典排序算法之冒泡排序(Bubble sort)代码
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法