随机森林
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在样本的预测上采用以下准则: 表决感知器能克服训练过程中出现的震荡现象;尽管不能保证收敛性,但在训练时间上比SVM优 越,而且它可以有效的对高维数据实现分类。
随机森林目录
概述
随机性 机制
模型评估
存在问题
为什么提出随机森林
在回答上述问题前,必须要提到决策树。决策树(Decision Tree)是 分类算法中最基本的算法,因其操作简单,容易理解和有较好的分类效 果,被广泛应用。随着大数据的不断发展,单一使用决策树已经远远解 决不了问题。特别是处理连续的数据,容易导致过拟合等一系列问题。 在这样背景下,以决策树为基分类器的多分类器随机森林出现了。
线性回归与局部加权回归
黑色是样本点 红色是线性回归曲线 绿色是局部加权回归曲线
使用Bagging
算法过程
做100次bootstrap,每次得到的数据Di,Di的长度为N
对于每一个Di,使用局部回归(LOESS)拟合一条曲线(图 中灰色线是其中的10条曲线)
将这些曲线取平均,即得到红色的最终拟合曲线
式中: s 表示属性 Ai 的可能取值数目,Dj 表示 D 中具有 Ai 属性第 j 个值的子集。
4. C4. 5 算法描述 C4.5是 ID3 的改进和优化,它用信息增益率代替信息增益来选择测试属性,支持离散属性和连续属
性,还对决策树进行了必要的剪枝。流程如下:
算法: Generate_decision_tree 由给定的训练数据集产生一棵决策树 输入: 数据集 D,候选属性集 A
投票决策树
并行投票决策树与传统决策树算法的主要不同之处在于:决策树的生长方式 和寻找最佳分割点的方法. 并行投票决策树应用 Leaf-wise 方法,每次从当前所有 叶子中,找到分裂增益最大的一个叶子,然后分裂,如此循环. 与此同时增加了一个 最大深度的限制,在保证高效率的同时防止过拟合. 而传统决策树应用 Level-wise 方法,所有叶子都是按层生长、分裂。在分裂次数相同的情况下,Leaf-wise 可以 降低更多的误差,得到更好的精度。
讨论
考察基尼指数的图像、熵、分类误差率三者 之间的关系 将f(x)=-lnx在x0=1处一阶展开,忽略高阶无 穷小,得到f(x)≈1-x
H X pk ln pk
k 1
K
pk 1 pk
k 1
K
决策树算法总结
适应信息增益来进行特征选择的决策树学习过程,即为ID3决策。 所以如果是取值更多的属性,更容易使得数据更“纯”,其信息增益更 大,决策树会首先挑选这个属性作为树的顶点。结果训练出来的形状是一棵 庞大且深度很浅的树,这样的划分是极为不合理的。 C4.5:信息增益率 gr(D,A) = g(D,A) / H(A) CART:基尼指数 总结:一个属性的信息增益越大,表明属性对样本的熵减少的能力更强,
C4.5算法举例
根据上面的数据,我们可以计算选择第一个根结点所依赖的信息增益值,计算如下
所示:
接下来,我们计算分裂信息度量H(V):OUTLOOK属性 属性OUTLOOK有3个取值,其中Sunny有5个样本、Rainy有5个样本、Overcast有4个样 本,则
C4.5算法举例
TEMPERATURE属性 属性TEMPERATURE有3个取值,其中Hot有4个样本、Mild有6个样本、Cool有4个样本,则 HUMIDITY属性 属性HUMIDITY有2个取值,其中Normal有7个样本、High有7个样本,则 WINDY属性 属性WINDY有2个取值,其中True有6个样本、False有8个样本,则
一种可能的方案
WR:加权得分(weighted rating) R:该电影的用户投票的平均得分(Rating)
C:所有电影的平均得分
v:该电影的投票人数(votes) m:排名前250名的电影的最低投票数
根据总投票人数,250可能有所调整
按照v=0和m=0分别分析
模型评估
以二分类问题为例: 其中: P(Positive Sample):正例数量
析的一种图解法。决策树的构成:
1) 内部节点:对应于一个属性测试 2) 叶节点:对应于决策结果
3) 根节点包含样本全集;
4) 每个节点包括的样本集合根据属性测试的结果被划分到子节点中; 5) 根节点到每个叶节点的路径对应对应了一个判定测试路径;
决策树示意图
决策树生成算法
建立决策树的关键,即在当前状态下选择哪个属性作为分类依据。根据 不同的目标函数,建立决策树。
这个属性使得数据由不确定性变成确定性的能力越强。
Boosting Decision Tree:提升树算法
提升树是迭代多棵回归树来共同
决策。当采用平方误差损失函数时,
每一棵回归树学习的是之前所有树的 结论和残差,拟合得到一个当前的残
差回归树,残差的意义如公式:残差
= 真实值 - 预测值 。提升树即是整个 迭代过程生成的回归树的累加。 训练一个提升树模型来预测年龄: 训练集是4个人,A,B,C,D年 龄分别是14,16,24,26。样本中有 购物金额、上网时长、经常到百度知 道提问等特征。提升树的过程如下:
标记节点 T 为 test_A;
if 测试属性为连续型 then 找到该属性的分割阈值; for each test_A 中的已知值 Ai 设 Dj 是 D 中 test_A = Ai 的样本集合; if Dj 为空 then 加上一个树叶,标记为 D 中最普通的类; else 加上一个由 Generate_decision_tree ( Dj,D - test_A) 返回的节点; / /划分 D / /一个划分 由节点 T 生出一个条件为 test_A = Ai 的分枝;
并行投票决策树的核心是 PV-Tree_FindBestSplit算法,该算法下次讲解。
表决感知器
表决感知器(Voted Perceptron,VP)算法是基于感知器算法的在线错误驱动二分类算法,训练算法 和感知器算法的训练算法基本一样,与感知器训练算法不同的是表决感知器存储和使用了所有的预 测向量,这些向量是在每次预测错误后产生的。对于这样的向量,计算出在下次错误发生前的迭代 数目,把迭代的数目作为预测向量的权值。通过计算每个向量的二类预测的权值,然后通过表决权 值联合所有的预测向量来得到最终的判别准则。
的特征选择也用到了随机且有放回抽样,所以随机森林的生成规则如下: 1 从原始训练集中随机有放回采样N个训练样本,共进行T次采样,生成T个训练集 2 用T个训练集,分别训练T个CART树模型 3 如果特征维度为M,指定一个常数m 4 将生成的T棵决策树组成随机森林 5 对于分类问题,由T个CART树投票表决产生分类结果。对于回归问题,由T棵树预 测结果的均值作为最终的预测结果 所以随机森林归的随机归纳为一句话,即数据随机采样,特征随机采样。
随机性分析
泛函误差公式定义: ,其中X、Y表示概率空间。根据大数定律中的
辛钦定理,当决策树的数量增加时,对所有的序列和PE都会收敛到:
大数定理中的频率收敛于概率。综上所述,解释了为什么随机森林不会产生过度拟合, 并且有一个泛化误差值。
投票机制
简单投票机制
一票否决(一致表决)
少数服从多数 有效多数(加权)
大连大学
DALIAN UNIVERSITY
决策树与随机森林
内容提要
1 2 3 4
决策树简介 C4.5算法
举例 总结
决策树
决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值 的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分
概念
随机森林由一系列单株分类器 组成,其中 是
独立同分布的随机变量。当输入X后,进 行如下步骤。 Step1:每棵决策树仅投一票给它认为最 合适的分类标签; Step2:选择投票最多的为X的分类标签。
随机森林生成规则
随机森林就是用CART决策树作为Bagging算法中的弱学习器的实现,同时在每棵树
显然,红色的曲线更加稳定,并且没有过拟合明显减弱 记原始数据为D,长度为N(即图中有N个 离散点)
随机性定量分析
给一系列单株分类器 ,随机选择一些训练样本,其中X
是输入向量,Y是正确分类的标签向量。定义如下边际函数:
其中I ( .)是示性函数,av( .)表示取平均值。边际函数表示了正确分类Y下,X 得票数目超过其它错误分类最大得票数目的程度。该值越大,表明分类的置 信度越高。
C4.5算法
2.信息增益 信息增益可以衡量混杂度或混乱度的减少量。假设 Ai 是 D 的属性,可取 v 个值,则 D 可 划分成 v个不相交的子集 D1,D2,…,Dv,划分后 D 的熵为:
则属性 Ai 的信息增益计算为: 3.信息增益率 信息增益偏向选择取值较多的属性,为了修正这种偏袒性,利用数据集的相对于属性值分 布的熵归一化信息增益,使得熵都是相对于累属性的,称为信息增益率,计算为
输出: 一棵决策树 T
Generate_decision_tree ( D,A) 创建节点 T; if D 都在同一个类 C then 返回 T 作为叶节点,以类 C 标记; else if A 为空 or 没有剩余属性进一步划分样本 then 返回 T 为叶节点,标记为 D 中最普通的类; / /多数表决 for each D 中的属性 计算信息增益率 gainRatio 选择 A 中具有最高信息增益率的属性 test_A 为测试属性;
C4.5算法举例
根据上面计算结果,我们可以计算信息增益率,如下所示:
根据计算得到的信息增益率进行选择属性集中的属性作为决策树结点,对该结点进行分裂。 C4.5算法的优点是:产生的分类规则易于理解,准确率较高。 C4.5算法的缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
C4.5算法
联合熵和条件熵
两个随机变量X,Y的联合分布,可以形成联合熵Joint Entropy,用H(X,Y)表示
H(X,Y) – H(Y)含义: (X,Y)发生所包含的信息熵,减去Y单独发生包含的信息熵——在Y发生的前提下,X发
生“新”带来的信息熵。
该式子定义为Y发生前提下,X的熵: 条件熵H(X|Y) = H(X,Y) – H(Y)
ID3
C4.5 CART
C4.5算法
1.熵
熵是信息论中的概念,假设数据集合 D,熵的计算公式为:
式中 Pr ( cj) 表示 cj 类在数据集 D 中的概率,当熵越小,数据越纯净。可以这么理解,熵是随机变量
不确定性的度量,不确定性越大,熵值越大;若随机变量退化成定值,熵为0。
若P为连续随机变量,则概率分布变成概率密度函数,求和符号变成积分符号。 注:1) 熵其实定义了一个函数(概率分布函数)到一个值(信息熵)的映射 2) 若X为离散随机变量,则该名称为概率分布函数; 若X为连续随机变量,则该名称为概率密度函数
阈值表决
贝叶斯投票机制
贝叶斯投票机制
简单投票法假设每个分类器都是平等的。 在实际生活中,我们听取一个人的意见,会考虑这个人过 去的意见是否有用,从而加大或者减少权值。 贝叶斯投票机制基于每个基本分类器在过去的分类表现设 定一个权值,然后按照这个权值进行投票。
投票机制举例
假定有N个用户可以为X个电影投票(假定投票者不能给同一电影重复投票),投票 有1、2、3、4、5星共5档。 如何根据用户投票,对电影排序? 本质仍然是分类问题:对于某个电影,有N个决策树,每个决策树对该电影 有1个分类(1、2、3、4、5类),求这个电影应该属于哪一类(可以是小数: 分类问题变成了回归问题)
进行剪枝;
举例
C4.5算法举例
上面的训练集有4个属性,即属性集合A={OUTLOOK, TEMPERATURE, HUMIDITY, WINDY};而类标签有Fra Baidu bibliotek 个,即类标签集合C={Yes, No},分别表示适合户外运动和不适合户外运动,其实是一个二分类问题。 数据集D包含14个训练样本,其中属于类别“Yes”的有9个,属于类别“No”的有5个,则计算其信 息熵:Info(D) = -9/14 * log2(9/14) - 5/14 * log2(5/14) = 0.940 下面对属性集中每个属性分别计算信息熵,如下所示: