这部分主要是介绍回归树和组合:
回归树(cart)
1、回归树(也可以叫做分类回归树),加入gbdt是回归树,但是根据最终的回归结果给一个阈值,也可以做分类。
(1)与决策树的决策规则是一样的。对于cart回归,主要是保证MSE最小来确定分裂点
(2)在每一个叶子节点都会有一个值,也就是回归结果。
如上面的图所示:输入年龄,性别等特征,来预测叶子节点的值。
组合回归树
如下面的图所示,这个组合由两个回归树构成。
预测的结果就是每棵树预测结果的和
注意:这两棵树是串行的。
组合树方法
1、非常广泛的用在梯度提升机,随机森林等场景。。。
多半的数据挖掘竞赛的获胜者都是采用组合方法的一些变换形式。
2、对于输入的缩放比例具有不变性,所以你不需要很仔细的去做特征归一化。
3、能够学习特征间更高阶的相互作用,树是有层级的,下一层是基于上一层的,他们之间是有制约关系的,多棵树,就会形成高阶影响关系。
4、很稳定,用于工业生产
放入上下文:模型和参数
1、假设我们有k棵树,然后将这k个树进行组合。回归树就是从属性到分数的映射。
2、参数:
(1)包含每棵树的结构以及叶子节点的分数
(2)之前我们是学习权重,现在我们需要学习树
在只有一个变量的情况下学习一棵树
1、我们怎么学习函数呢?
2、定义目标函数(loss和正则),并且对他们优化
举个例子
(1)假设输入为t(时间)上的回归树
(2)我想预测在特定的时间t,我是否喜欢流行音乐
从下面的图可以看出来,这有两个时间点,一个是2011.3.1,一个是2010.3.20,所以分为三个区间:
(1)2010.3.20之前:喜欢音乐的分数是0.2
(2)2010.3.20-2011.3.1:分数是1.2,原因是遇到女朋友,喜欢浪漫音乐
(3)2011.3.20之后:分数是1.0
学习一个阶跃函数
1、我们需要进行学习的部分
(1)分裂点
(2)每段的值
2、单变量回归树的损失函数
(1)训练loss:重点关注的是拟合这些点
(2)正则化:重点关注这个函数的复杂度,比如说分裂点的个数,每段值的L2范数等等。
学习阶跃函数
我们看着四幅图能看出什么呢?
(1)第一张图是我的训练数据,我就是要拟合它
(2)第二张图是分裂点很多,这样对训练集拟合的很好,但是呢,模型也太复杂了,在测试集上表现不一定好哦方差大
(3)第三张图发现分裂点找的有点偏了,导致拟合的不准,这样MSE就会变大的,偏差大
(4)在损失和复杂度上达到了平衡
回过头来:组合树的目标函数
1、模型:假设k棵树,用加法模型来表示
2、目标函数:包括两个部分,训练loss和树的复杂度
3、定义复杂度的可能形式:
(1)树的节点数目,树的深度
(2)叶子节点权重的L2范数
(3)后面会更加详细的介绍
目标函数以及启发性学习
1、当讨论决策树的时候,往往是启发式的:
(1)根据信息增益找分裂点
(2)剪枝
(3)最大树深度
(4)叶子值的平滑度
2、大部分启发式都会对目标函数进行良好的映射:
(1)信息增益--训练loss
(2)剪枝--节点的正则化
(3)最大深度--确定函数复杂空间
(4)叶子值得平滑度--叶子权重的L2正则化
补充:啥是启发式学习?
通俗的说:启发式算法是指在一个随机的群体寻优过程中,个体能够利用自身或者全局的经验来制定各自的搜索策略。
回归树不仅仅是为了回归
1、回归树组合定义了如何预测分数,它可以被用于分类、回归、排名等等
2、取决于你怎么去定义目标函数
(1)对于MSE ---GBDT --- 回归
(2)logloss ---logitboost----分类
网友评论