随机森林和提升

随机森林和提升

作者:樱花猪

摘要:

本文为七月算法(julyedu.com)12月机器学习第十一次次课在线笔记。随机森林和提升都是机器学习将弱分类器融合成强分类器的方法。和我们熟悉的另一种机器学习模型SVM相比,这种方法更适合于大数据并且它的计算速度要比SVM快许多。

引言

因为最近做的事情需要用到随机森林故非常仔细的看了一遍。结合我目前研究的图像领域,似乎随机森林、Boosting这些比较受广大研究者的热爱,而曾经红得半边天的SVM不再那么主流。仔细一看,实际上随机森林我们可以认为是把SVM这种分类器多次得到的结果组合成起来成为一个更加可信的估计,这种具有鲁棒性的算法可能就是被广大研究者喜爱的原因吧。然而,刚刚学习机器学习,这种总结也许不太正确,会再日后的深入学习中加深印象。

本次课程从我们熟悉的决策树开始,然后我们会谈到Bagging策略,通过Bagging策略我们再牵引到随机森林和提升(boosting),最后我们还会讲一讲投票策略。

预备知识

熵;概率论

一、决策树(Decision Tree)

1、概述:

决策树是一种树型结构,其中每个内部结点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶结点代表一种类别。决策树学习是以实例为基础的归纳学习。

2、基本思想

决策树学习采用的是自顶向下的递归方法, 其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类。

3、算法特点

决策树学习算法的最大优点是,它可以自学习。在学习的过程中,不需要使用者了解过多背景知识,只需要对训练实例进行较好的标注,就能够进行学习。 显然,决策树属于有监督学习。从一类无序、无规则的事物(概念)中推理出决策树表示的分类规则。

4、生成算法

建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,建立决策树主要有一下三种算法。ID3、C4.5、CART

5、信息增益

概念:当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。

信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。

定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D 的经验条件熵H(D|A)之差,即: g(D,A)=H(D)–H(D|A) (即为训练数据集D和特征A的互信息)

计算方法:计算数据集D的经验熵

6、选择分裂点的方法

遍历所有特征,对于特征A:

a. 计算特征A对数据集D的经验条件熵H(D|A)

b. 计算特征A的信息增益:g(D,A)=H(D)–H(D|A)

c. 选择信息增益最大的特征作为当前的分裂特征

注意:经验条件熵

(设训练集为D,|D|表示样本的个数。设有K个类为属于类的样本个数;设特诊A有n个不同的取值,根据特征A的取值将D划分为n个子集为样本个数。记子集中属于类的样本集合为,为样本个数。)

7、三种决策树学习算法

ID3:使用信息增益/互信息g(D,A)进行特征选择。

C4.5:信息增益率 gr(D,A) = g(D,A) / H(A)。

CART:基尼指数

一个属性的信息增益(率)/gini指数越大,表明属性 对样本的熵减少的能力更强,这个属性使得数据由不确定性变成确定性的能力越强

二、决策树的拟合过程

DTree(examples, attributes)

If 所有样本属于同一分类 then 返回标号为概分类的叶结点

Else if 属性值为空 then  返回标号为最普通分类的叶结点

Else 取一个属性,A作为根节点;

For A的每一个可能值Vi

令examples i 为具有A=Vi的样本子集;

从根节点出发增加分支(A=Vi);

If examples i为空 then 创建标号为最普通分类的叶结点

Else

递归创建子树DTree(examples i, attributes-{A});

三、解决过拟合方法

1、剪枝

由完全树T0开始,剪枝部分结点得到T1,再次剪枝部分结点得到T2…直到仅剩树根的树Tk;

在验证数据集上对这k个树分别评价,选择损失函数最小的树Tα

2、随机森林

从样本集中用Bootstrap采样选出n个样本;

n 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;

n 重复以上两步m次,即建立了m棵CART决策树

n这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类

Bootstrap采样采用一种有放回重采样方式,既假设有N个样本,每次取一个样本统计后再放回,重复n次。这种方法有时候会导致某些样本取了不知一次而有些样本一次也取不到。

四、提升

1、概念

提升是一个机器学习技术,可以用于回归和分类问题,它每一步产生一个弱预测模型(如决策树),并加权累加到总模型中;

2、梯度提升

如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gradient boosting)。

梯度提升算法首先给定一个目标损失函数,它的定义域是所有可行的弱函数集合(基函数);提升算法通过迭代的选择一个负梯度方向上的基函数来逐渐逼近局部极小值。这种在函数域的梯度提升观点对机器学习的很多领域有深刻影响。

提升的理论意义:如果一个问题存在弱分类器,则可以通过提升的办法得到强分类器。

3、Adaboost

AdaBoost算法可以看做是采用指数损失函数的提升方法,其每个基函数的学习算法为前向分步算法;

AdaBoost的训练误差是以指数速率下降的;

AdaBoost算法不需要事先知道下界γ,具有自适应性(Adaptive),它能自适应弱分类器的训练误差率。

详情请参考:http://blog.csdn.net/v_JULY_v/article/details/40718799

来自为知笔记(Wiz)

时间: 2024-11-13 06:35:31

随机森林和提升的相关文章

七月算法--12月机器学习在线班-第十一次课笔记—随机森林和提升

七月算法--12月机器学习在线班-第十一次课笔记-随机森林和提升 七月算法(julyedu.com)12月机器学习在线班学习笔记http://www.julyedu.com ? 随机森林:多棵树,对当前节点做划分是最重要的 1,决策树 决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一棵熵值下降最快的树 叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类. ? 下面的重点是选择什么样的熵值下降最快 1.2, 决策树的生成算法: 建立决策树的关键,即在当前状态下选择哪个属

机器学习之路:python 综合分类器 随机森林分类 梯度提升决策树分类 泰坦尼克号幸存者

python3 学习使用随机森林分类器 梯度提升决策树分类 的api,并将他们和单一决策树预测结果做出对比 附上我的git,欢迎大家来参考我其他分类器的代码: https://github.com/linyi0604/MachineLearning 1 import pandas as pd 2 from sklearn.cross_validation import train_test_split 3 from sklearn.feature_extraction import DictVe

R语言︱决策树族——随机森林算法

笔者寄语:有一篇<有监督学习选择深度学习还是随机森林或支持向量机?>(作者Bio:SebastianRaschka)中提到,在日常机器学习工作或学习中,当我们遇到有监督学习相关问题时,不妨考虑下先用简单的假设空间(简单模型集合),例如线性模型逻辑回归.若效果不好,也即并没达到你的预期或评判效果基准时,再进行下换其他更复杂模型来实验. ---------------------------------------------- 一.随机森林理论介绍 1.1 优缺点 优点. (1)不必担心过度拟合

mllib之随机森林与梯度提升树

随机森林和GBTs都是集成学习算法,它们通过集成多棵决策树来实现强分类器. 集成学习方法就是基于其他的机器学习算法,并把它们有效的组合起来的一种机器学习算法.组合产生的算法相比其中任何一种算法模型更强大.准确. 随机森林和梯度提升树(GBTs).两者之间主要差别在于每棵树训练的顺序. 随机森林通过对数据随机采样来单独训练每一棵树.这种随机性也使得模型相对于单决策树更健壮,且不易在训练集上产生过拟合. GBTs则一次只训练一棵树,后面每一棵新的决策树逐步矫正前面决策树产生的误差.随着树的添加,模型

机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。

决策树decision tree 什么是决策树输入:学习集输出:分类觃则(决策树) 决策树算法概述 70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)Quinlan改迚了ID3算法,称为C4.5算法1984年,多位统计学家在著名的<Classification and regression tree>书里提出了CART算法ID3和CART几乎同期出现,引起了研究决策树算法的旋风,至今已经有多种算法被提出 算法的核心问题 该按什么样的次序来选择变量(属性)?最佳分离点(连

Spark2.0机器学习系列之6:GBDT(梯度提升决策树)、GBDT与随机森林差异、参数调试及Scikit代码分析

概念梳理 GBDT的别称 GBDT(Gradient Boost Decision Tree),梯度提升决策树.     GBDT这个算法还有一些其他的名字,比如说MART(Multiple Additive Regression Tree),GBRT(Gradient Boost Regression Tree),Tree Net等,其实它们都是一个东西(参考自wikipedia – Gradient Boosting),发明者是Friedman. 研究GBDT一定要看看Friedman的pa

决策树 随机森林 adaboost

? 熵.互信息? 决策树学习算法 ? 信息增益 ? ID3.C4.5.CART? Bagging与随机森林? 提升 ? Adaboost/GDBT ? 熵.互信息 熵是对平均不确定性的度量. 平均互信息:得知特征Y的信息而使得对标签X的信息的不确定性减少的程度.描述随机变量之间的相似程度.(条件熵.相对熵:差异性) ? 决策树 决策树学习采用的是自顶向下的递归方法,有监督学习. 其基本思想是以信息熵为度量构造一棵熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶节点中的实例都属于同一类. 建立

机器学习中的算法(1)-决策树模型组合之随机森林与GBDT

版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系[email protected] 前言: 决策树这种算法有着很多良好的特性,比如说训练时间复杂度较低,预测的过程比较快速,模型容易展示(容易将得到的决策树做成图片展示出来)等.但是同时,单决策树又有一些不好的地方,比如说容易over-fitting,虽然有一些方法,如剪枝可以减少这种情况,但是还是不够的. 模型组合(比如

转载:scikit-learn随机森林调参小结

在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注意事项,以及和GBDT调参的异同点. 1. scikit-learn随机森林类库概述 在scikit-learn中,RF的分类类是RandomForestClassifier,回归类是RandomForestRegressor.当然RF的变种Extra Trees也有, 分类类ExtraTreesC