一、基本术语
1.特征向量:一个数据集中的每条记录是关于一个事件或对象的描述,称为一个示例,也叫一个特 征向量。
2.训练数据:训练过程中使用的数据称为训练数据,其中每个样本称为一个“训练样本”
3.
二、监督学习的常见模型
2.1 决策树
优点:① 可解释性
② 能处理数值类和类别类的特征
缺点:① 不稳定,易受数据中噪音影响;
② 复杂的决策树会引起过拟合(解决:精简树)
③ 不容易并行处理
2.1.1 随机森林
随机森林可以看做是bagging的一种,只是在以决策树为基学习器构建bagging集成的基础上,进一步在决策树训练过程中加入了属性随机选择,这也就是随机森林性能往往要比bagging好的原因,在前面的集成学习(ensemble learning)基础知识里介绍了bagging一般只做了样本的随机扰动,而随机森林不光有样本的随机扰动,还加入了属性的随机扰动(属性随机选择),这样就使得基学习器之间差异程度更大,因此集成后的泛化性能更加强大。
2.1.2 梯度提升决策树
2.2 线性模型
2.3 核方法
2.4 神经网络
三、集成学习
集成学习基础知识见以下博客:
将多个个体学习器以某种方式组合起来就是集成学习,分为同质(个体学习器类型一样)和异质。
要想获得较好的集成性能,基分类器需要满足两个基本条件:
* 基分类器要有一定的性能,至少不差于随机猜测的性能,即基分类器准确率不低于50%。
* 基学习器要具有多样性,即基学习器间要有差异性,不能像上图(b)中那样,三个基分类器都一样。提升集成学习性能主要通过这一条“多样性”来做,因为第一条很容易满足。
(一)集成学习方法分类
3.1 Bagging
Bagging的主要思想:首先从数据集中采样出T个数据集,然后基于这T个数据集,每个训练出一个基分类器,再讲这些基分类器进行组合做出预测。Bagging在做预测时,对于分类任务,使用简单的投票法。对于回归任务使用简单平均法。若分类预测时出现两个类票数一样时,则随机选择一个。
从上面的图中也能够看出,Bagging非常适合并行处理,这对于大数据量下非常有好处。关于从原始数据集里采样出m个数据集,这里要说下,我们希望能够产生m个不同的子集,因为这样训练出来的基分类器具有比较大的差异,满足开头所说的“多样性”,有助于提高集成算法最终的性能。但是呢,又不能让基分类器性能太差,比如我们采样时,采样出来的子集每个都完全不相同,这样训练出来的基分类器性能就比较差,因为每个基分类器相当于只用了一小部分数据去训练。因此,Bagging中采样自助采样法(bootstrap sampling)。
自助采样法(bootstrap sampling)
这个其实就是有放回的采样,每个采样出来的样本集都和原始数据集一样大。假如给定包含m个样本的数据集,我们先随机取出一个样本放入采样集中,然后再把该样本放回去,使得下次这个样本还有可能被选中,这样经过m次随机采样,我们得到包含m个样本的采样集,原始数据集中有的样本在采样集多次出现,有的则未出现。采样集中大约包含63.2%的原始数据,因为每个样本被抽到的概率为1/m。
3.2 Boosting
与Bagging能够并行处理不同,Boosting由于各基学习器之间存在强依赖关系,因此只能串行处理,也就是说Boosting实际上是个迭代学习的过程。Boosting的工作机制为:先从初始训练集中训练出一个基学习器,再根据基学习器的表现对训练样本分布进行调整(比如增大被误分样本的权重,减小被正确分类样本的权重),使得先前基学习器做错的样本在后续的训练过程中受到更多关注,然后基于调整后的样本分布来训练下一个基学习器,如此重复,直到基学习器数目达到事先自定的值T,然后将这T个基学习器进行加权结合(比如错误率小的基学习器权重大,错误率大的基学习器权重小,这样做决策时,错误率小的基本学习器影响更大)。Boosting算法的典型代表有AdaBoost和XGBoost。
3.3 Stacking
Stacking方法是先从初始数据集训练出初级学习器,然后“生成”一个新的数据集用于训练次级学习器。在这个新的数据集中,初级学习器的输出被当做样例输入特征,而初始样本的标记仍然被当做样例标记。