模型树M5'算法

1.简介

模型树是一种在叶节点采用线性回归函数的决策树。这种技术在预测连续值方面很成功。它可以通过采用一个把分类问题转换为函数优化问题的标准方法,来实现分类。模型树表示一种分段线性函数。同典型的回归方程一样,它通过一系列的独立变量(称为属性)来预测一个变量的值(称为类)。以表的形式表示的训练数据可以直接用来构造决策树。在数据表中,每一行(样本)表示为(x1,x2,…,xN,y),其中xi表示第i 个属性的值,y 是类值(目标值)。对给定的数据集,典型的线性回归算法只能给出单一的回归等式, 但模型树将样本空间分为边缘相互平行的长方形区域,对每个分区确定一个相应的回归模型。

模型树在每个内部节点测试某个特定属性的值, 在每个叶节点预测类值。给定一个新的样本,来预测其类值,树从根节点开始解释。在每个内部节点,根据样本某一特定属性值来选择左
枝或右枝,当选择的节点是叶节点时,则由叶节点的模型预测输出。

模型树的结构是递归产生的,由整个训练样本集开始。在模型树的每一层,选择最有识别力的属性作为子树的根节点,到达此节点的样本根据其节点属性的值,被分为若干子集。从技术上说, 能最大限度地减少目标属性集合的方差的属性是最有识别力的。M5 采用方差(Variance)诱导作为启发方法,在叶节点填充常数值作为模型。对离散属性来说,内部节点的每一分枝表示父节点的属性的一种可能取值。对连续的属性,算法将确定分段点,以离散化属性值。对模型树的每个子树,都递归地调用这种构造算法。当到达某节点的样本的类属性集合的方差或样本个数足够小时,树的构造算法停止,此节点为叶结点。

模型树算法是用一系列分段线性模型组合起来的全局模型,为处理问题带来了所需的非线性。它与单纯的线性回归的区别在于,对输入空间的分割是由算法自动进行的。它具有效率高、鲁棒性好的优点,可以进行有效的学习,可以处理输入属性高达几百维的问题。模型树的结果简单易懂,是一种有广阔应用前景的数值预测算法。

2.算法流程

输入数据为训练样本矩阵Data, 矩阵的每一行为一个样本(instance),每一列为样本的一个属性(attribute),最后一列为样本的类属性(class-attribute),即目标值的属性,矩阵的大小为N 行M 列。具体算法流程如下:

Step1. 数据预处理;
Step1.1 删除Data 矩阵中丢失类属性值的样本;
Step1.2 对除类属性外的Data 矩阵的其余属性, 如果某一样本的某一属性缺值,则根据这一属性存在值的其余样本填补缺值;
Step1.3 如样本中存在标称norminal 属性(取值为离散值的属性),有k 个可能的取值,则将其转换为k-1 个二进制属性;

Step2. 分裂(Split),建立基本的决策树;
Step2.1 根据公式(5-11)计算样本矩阵Data 的类属性值的
方差Deviation。从根节点开始分裂;

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值