算法在某个集合中找个一个或者多个的和等于某个固定值_当一个数学家走进一片树林中.........

话说有个数学家走进一片森林中,先看到一棵树,然后看到一片树,再看到一排树,最后看到草丛中的蜘蛛网。而在他的思维中却涌现了四个词:决策树、随机森林、梯度下降树、神经网络。本文将简单介绍这四个算法的原理和其优缺点等。

决策树:

决策树的生成算法有ID3, C4.5和CART等。决策树是一种树形结构,其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶节点代表一种分类结果。决策树是一种贪心算法策略,只考虑当前数据特征的最好分割方式,不能回溯操作。

86bfa5fb84941c5dc4af542eba7d4314.png

纯度的定义:

度量随机变量的不确定性,因此我们引入熵、基尼系数这两个概念。以下为熵的公式:

9066eb9c28495ca228fa872e8c761509.png

熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。

(1)ID3算法:划分前样本集合D的熵是一定的 ,entroy(前),使用某个特征A划分数据集D,计算划分后的数据子集的熵 entroy(后),公式如下:

信息增益 = entroy(前) - entroy(后)

5ad0f01fad6f02c6c5381cf479f17c95.png

做法:计算使用所有特征划分数据集D,得到多个特征划分数据集D的信息增益,从这些信息增益中选择最大的,因而当前结点的划分特征便是使信息增益最大的划分所使用的特征。

信息增益的理解:

对于待划分的数据集D,其 entroy(前)是一定的,但是划分之后的熵 entroy(后)是不定的,entroy(后)越小说明使用此特征划分得到的子集的不确定性越小(也就是纯度越高),因此 entroy(前) - entroy(后)差异越大,说明使用当前特征划分数据集D的话,其纯度上升的更快。而我们在构建最优的决策树的时候总希望能更快速到达纯度更高的集合,这一点可以参考优化算法中的梯度下降算法,每一步沿着负梯度方法最小化损失函数的原因就是负梯度方向是函数值减小最快的方向。同理:在决策树构建的过程中我们总是希望集合往最快到达纯度更高的子集合方向发展,因此我们总是选择使得信息增益最大的特征来划分当前数据集D。

缺点:信息增益偏向取值较多的特征

原因:当特征的取值较多时,根据此特征划分更容易得到纯度更高的子集,因此划分之后的熵更低,由于划分前的熵是一定的,因此信息增益更大,因此信息增益比较 偏向取值较多的特征。

(2)C4.5算法:为了解决ID3算法的缺陷我们在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。公式如下:

信息增益比 = 惩罚参数 * 信息增益

632c93146c408ebf8c3442841b01ebe0.png

惩罚参数:数据集D以特征A作为随机变量的熵的倒数,即:将特征A取值相同的样本划分到同一个子集中(之前所说数据集的熵是依据类别进行划分的)

1120b999c8a00425bf3112e64e68cf00.png

缺点:信息增益比偏向取值较少的特征

原因:当特征取值较少时HA(D)的值较小,因此其倒数较大,因而信息增益比较大。因而偏向取值较少的特征。

使用信息增益比:基于以上缺点,并不是直接选择信息增益率最大的特征,而是现在候选特征中找出信息增益高于平均水平的特征,然后在这些特征中再选择信息增益率最高的特征。

(3)CART算法:

定义:基尼指数(基尼不纯度):表示在样本集合中一个随机选中的样本被分错的概率。

注意:Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯。

基尼指数(基尼不纯度)= 样本被选中的概率 * 样本被分错的概率

012b9b862fb049f7fb62af42bed3fc3f.png

CART是个二叉树,也就是当使用某个特征划分样本集合只有两个集合:1. 等于给定的特征值的样本集合D1 , 2.不等于给定的特征值 的样本集合D2

决策树构建有以下三步骤:

1.将所有的特征看成一个一个的节点

2.遍历所有特征,遍历到其中某一个特征时:遍历当前特征的所有分割方式,找到最好的分割点,将数据划分为不同的子节点,计算划分后子节点的纯度信息

3.在遍历的所有特征中,比较寻找最优的特征以及最优特征的最优划分方式,纯度越高,则对当前数据集进行分割操作

4.对新的子节点继续执行2-3步,直到每个最终的子节点都足够纯

决策树算法构建的停止条件:
1.当子节点中只有一种类型的时候停止构建(条件苛刻可能产生过拟合)
2.当前节点种样本数小于某个值,同时迭代次数达到指定值,停止构建,此时使用该节点中出现最多的类别样本数据作为对应值(常用)

随机森林:

以上所说的决策树是一颗树的构建算法,而随机森林是用随机的方式建立一个森林,森林里面有很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。在得到森林之后,当有一个新的输入样本进入的时候,就让森林中的每一棵决策树分别进行一下判断,看看这个样本应该属于哪一类(对于分类算法),然后看看哪一类被选择最多,就预测这个样本为那一类。

6ded6341c880f786072f7474eb24636e.png

随机森林采样方式:分为行采样和列采样

(1)行采样使用使用bagging中的Bootstrap aggregating方法。采用有放回的方式,也就是在采样得到的样本集合中,可能有重复的样本。假设输入样本为N个,那么采样的样本也为N个。

(2)列采样从M个feature中,选择m个(m << M)。之后就是对采样之后的数据使用完全分裂的方式建立出决策树。

特点如下:

•随机选取训练样本集

•随机选取分裂属性集

•每棵树任其生长,不进行剪枝

影响因素:

•单棵树的分类强度:每棵树分类强度越大,随机森林分类性能越好

•森林中树之间的相关度:树之间的相关度越大,则随机森林的分类性能越差

调参步骤:

第一部分是Bagging框架的参数,第二部分是CART决策树的参数。

随机森林相比决策树的优点:

(1)通常情况下随机森林要比单个决策树更准确

树木未被修剪。虽然像CART这样的单个决策树经常被修剪,但随机林的树完全成长并且未经过修剪,因此,自然地,特征空间被分成更多和更小的区域。

树木多种多样。在随机样本上学习每个随机林的树,并且在每个节点处,考虑用于分裂的随机特征集。

(2)过拟合处理:单一决策树方法需要修剪以避免过度拟合,而随机森林的精妙之处,每棵树选择的特征集是不同的,也就是从不同角度分割样本边界。

梯度下降树:

决策树是一颗树而随机森林是一群树,那么梯度下降树就是一排树。梯度下降树(GBDT)的每一个树学习的结论是之前所有树结论和的残差(负梯度)。我们举一个通俗的例子:假如有个人30岁,我们首先用20岁去拟合,发现损失有10岁,这时我们用6岁去拟合剩下的损失,发现差距还有4岁,第三轮我们用3岁拟合剩下的差距,差距就只有1岁了。如果我们的迭代轮数还没有完,可以继续迭代下面,每一轮迭代,拟合的岁数误差都会减小。最后将每次拟合的岁数加起来便是模型输出的结果。

42f9469876d2bb3c4d380e94b82c1d8b.png

另外GBDT使用Boosting方法,在训练基分类器时采用串行的方式,各个基分类器之间有依赖。它的基本思路是将基分类器层层叠加,每一层在训练的时候,对前一层基分类器分错的样本,给予更高的权重。测试时,根据各层分类器的结果的加权得到最终结果。

Bagging与Boosting的串行训练方式不同,Bagging方法在训练过程中,各基分类器之间无强依赖,可以进行并行训练。

调参步骤:

第一部分是Boosting框架的参数确定树的棵树,第二部分是CART决策树的参数,之后在选择较小的学习率进行细调。

GBDT算法优点:

(1)预测阶段的计算速度快,树与树之间可并行化计算。

(2)在分布稠密的数据集上,泛化能力和表达能力都很好,这使得GBDT在Kaggle的众多竞赛中,经常名列榜首。

(3)采用决策树作为弱分类器使得GBDT模型具有较好的解释性和鲁棒性,能够自动发现特征间的高阶关系,并且也不需要对数据进行特殊的预处理如归一化等。

GBDT局限性:

(1)GBDT在高维稀疏的数据集上,表现不如支持向量机或者神经网络。

(2)GBDT在处理文本分类特征问题上,相对其他模型的优势不如它在处理数值特征时明显。

(3)训练过程需要串行训练,只能在决策树内部采用一些局部并行的手段提高训练速度。

随机森林与梯度下降树之间的区别与联系

相同点:都是由多棵树组成,最终的结果都是由多棵树一起决定。

不同点:

  • 组成随机森林的树可以分类树也可以是回归树,而GBDT只由回归树组成
  • 组成随机森林的树可以并行生成,而GBDT是串行生成
  • 随机森林的结果是多数表决表决的,而GBDT则是多棵树累加之和
  • 随机森林对异常值不敏感,而GBDT对异常值比较敏感
  • 随机森林是减少模型的方差,而GBDT是减少模型的偏差
  • 随机森林不需要进行特征归一化。而GBDT则需要进行特征归一化

神经网络

神经网络提供了针对图像识别,语音识别和自然语言处理领域诸多问题的最佳解决方案。传统的编程方法中,我们告诉计算机如何去做,将大问题划分为许多小问题,精确地定义了计算机很容易执行的任务。而神经网络不需要我们告诉计算机如何处理问题,而是通过从观测数据中学习,计算出他自己的解决方案。

44ab6a26063b9570f561360e39ae4772.png

让我们来看一个经典的神经网络。这是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。

74a2a375ed15b8cfb883f2f90c1f19c9.png

下面介绍一下神经网络常用的种类:

(1)BP神经网络:其由输入层、中间层、输出层组成的阶层型神经网络,中间层可扩展为多层。BP神经网络最主要的优点是具有极强的非线性映射能力。理论上,对于一个三层和三层以上的BP网络,只要隐层神经元数目足够多,该网络就能以任意精度逼近一个非线性函数。主要功能是用于文件压缩传输。

(2)RBF(径向基)神经网络:具有单隐层的三层前馈网络,由于它模拟了人脑中局部调整、相互覆盖接收域(或称感受野-Receptive Field)的神经网络结构,因此,RBF网络是一种局部逼近网络,它能够以任意精度逼近任意连续函数,特别适合于解决分类问题。主要功能是:图像处理,语音识别,时间系列预测,雷达原点定位,医疗诊断,错误处理检测,模式识别等。RBF网络用得最多之处是用于分类,在分类之中,最广的还是模式识别问题,次之是时间序列分析问题。

(3)CNN卷积神经网络:跟其它类型的神经网络大有不同,对于局部共线性类型数据有很好的处理能力,它们主要用于处理图像数据任务。

360756f418f2f25880e03940e1c763b0.png

4)LSTM长短期记忆神经网络:LSTM是一个逻辑回路,其设计受到了计算机内存单元设计的启发。与只存储两个状态的循环神经元相比,LSTM可以存储四个状态:输出值的当前和先前值,记忆神经元状态的当前值和先前值。它们都有三个门:输入门,输出门,遗忘门,同时,它们也还有常规的输入。主要功能应用于时间序列模型分析、情感分析等。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值