主要内容
决策树
背景
生成过程
集成学习
Boosting
Bagging
主要内容本周作者主要是看了一些关于分类的方法 在本文中将对一部分比较关键的计算公式做出推到 本文中的推导将以二分类为例
决策树是在机器学习中一种比较常用的方法。
我们在做出一件事物的判断的时候一半都是根据某些特征 逐一判断之后决定这个是一个什么样的事物 在西瓜书中最常用的例子 我们在判断一个西瓜的好坏的时候需要判断 西瓜的 色泽 根蒂 敲声 特征。
生成过程决策树的生成过程是一个递归的过程 将原有属性不断细分 直到不可再分 或者 达到预期效果提前返回。
然后这个地方我们看一下划分的选择 如何选择属性进行划分 在这里选择属性的时候是通过属性的信息熵。
这里信息熵公式应该如何理解可以参考信息熵是什么 - 知乎 这个公式非常巧秒都说明了信息量如何转换成数字 一件必然事件其信息量就非常的低 例如太阳从东方升起 这一件事情的信息熵的值就是0。
信息增益越 则意味着信息相对越有效 这个时候我们可以优先通过这个特征就行判断 然后再通过次一级的进行判断 逐渐形成树形结构。但是这并不是唯一的方法 还可以通过增益率
其中
IV表示固有值
CART决策树则是使用基尼指数来进行选择属性 在这里的纯度可以用基妮值来进行度量
属性a的基尼指数则定义为
如此一来就获得了属性的选取 然后就定与真实值进行逼近即可构造出决策树 但此时会出现了一个问题就是会出现过拟合的情况 我们可以限制树的高度 或者进行预简直和后剪纸。我们知道当参数过多的时候 参数会对原有的训练集的特征描述的过分详细 造成当面对从未见过的数据无法做出一个合理的描述。
在面临连续性的数据的时候其做法也是类似于离散型设置切分点 数据的左侧为-1 右侧为-1 以此往复进行。
集成学习这个地方的话本来应该先进行简单介绍一下支持向量机、贝叶斯、神经网络等 这些都是相对独立学习器 这里我们可以将其都集成起来形成更加有效的学习器
集成学习的本质目的是将弱学习器整合形成一个强的学习器。其中弱学习器的定义是在二分类中略高于50%的分类器。这点有点像三个臭皮匠顶个诸葛亮。集成学习就是为了让臭皮匠能胜过诸葛亮产生的。 这个例子是来源于周志华教授的西瓜书里面的例子
这里的做法就是少数服从多数的方法 这里可以很直观的看出来 这种集成方法并不一定能够使效果得到提升。
那么假设我们提升学习器的个数呢 这样子是否会得到更好的效果呢
我们做出这样的定义eplison作为错误率 hi作为第i个学习器的结果 这个学习器可以是决策树的结果 f x 作为真实值。
其中sign函数是一个计算个数的如果累计和超过一半的时候就输出1否则为-1 顾就可以直观的看出来这是一个学习器的集成。
这个地方采用的二分类的方法 顾也就是伯努利分布 这个分布的均值
这里我们就可以继续做出计算其错误率
然后在这个地方使用Hoeffding不等式最后可以得到结果
通过这个结果我们可以看出随着个体分类器T个数的增加 集成错误率也将呈现指数级别的下降 最终趋于0 但这也是一种理论上模式 在真实数据的情况会有差异。 然后在这个地方就有两种集成的方式
一种前面学习器的输出是后面的输入 也就是串型
第二种就是并行的方式进行的。这两种情况的典型代表分别是Boostin 和 随机森林
这里我们先简单介绍一下Boostin算法
BoostingBoosting是一系列算法 我们这个地方就介绍一下AdaBoost 这是一种基于加性模型的
其中alpha就是ht学习器的权重 H x)就是我们得到的加性模型。要做对此做出优化提出了一个最小化指数损失函数
其中数据是符合D分布的。那么为什么要符合指数损失函数呢
以这里二分类为例{-1 1}分类结果只有正负两种情况 如果f与 H同标签的话则 f x H x 为正数损失函数就会往指数的负方向去走 如果H x 值越大就说明里面的学习器判断正确的越多 信心越足 损失函数就会越小 符号相反时同理。
我们对损失函数H(x)求偏导
其中g(x)表示为示性函数
由于f(xi)为这特征对数据真实标签顾我们这个地方采用下面的写法
这个地方我们就得到了需要最大化的值在这个地方我们进行往回带入 我们所想要需要迭代的就是权重和训练器
epilson表示的是错误率
这个地方对损失函数进行求导
在这里f(x) 和h(x)的值由于是二分类的问题顾只能是{-1,1}平方之后均为1
顾可以得到理想的学习器
然后就是其假设的分布情况也是可以根据迭代的方式实现残差逼近
Bagging这种方式主要是通过多个基学习的结果逆行投票得到的结果 这种实现的方法会比较简单。



