opencv 随机森林学习

opencv 随机森林

分类和回归树,随机森林,霍夫森林(CART,random forests,hough forests)
http://blog.163.com/huai_jing@126/blog/static/171861983201274102921423/
决策树和opencv实现,随机森林,随机蕨
http://blog.csdn.net/learnee/article/details/49915809

决策树
是一种描述对实例进行分类的树形结构,决策树由结点(node)和有向边(direct edge)组成,结点有两种类型:
内部节点(internal node)和叶节点(leaf node)。内部节点表示一个特征或属性,叶节点表示一个类别
决策树容易过拟合,常见的决策树算法有C4.5、ID3和CART(classification and regression tree分类回归树)

决策树是随机森林、boosting、bagging等的基础
不断选取产生信息增益最大的属性来划分样例集和,构造决策树。

C4.5、ID3:
通过信息增益准则选择特征:对训练数据集D,计算其每个特征的信息增益,选择信息增益大的那个特征
信息熵Entropy、信息增益Gain:
熵:
概率论里边,熵是表示随机变量不确定性的度量,对=分类问题,熵越大即这个类别的不确定性越大,反之越小
条件熵:
已知随机变量X的条件下,随机变量Y的不确定性
信息增益
为结点与其子结点的信息熵之差
信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好
互信息:
Entropy(Y)-Conditional Entropy(Y|X)
(决策树学习中的信息增益和训练数据集中类与特征的互信息是等价)
基尼指数
表示样本集合的不确定性程度,所以基尼指数越小,对应的特征分类能力越强

Bagging
(Boosting改变训练数据的权重使得不同的基学习器具有较大差异)
Bagging对训练数据进行采样,产生出若干不同的子集,再从每一个训练子集中训练出一个基学习器(由于训练数据的不同,获得的基学习器同样具有较大的差异)。
Bagging是一个很高效的集成学习算法,能不经修改地用于多分类、回归任务中。
Bagging主要关注降低方差,它在不剪枝决策树、神经网络等易受样本扰动的学习器上效用更为明显

随机森林
Random Forest包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定, RF是集成学习的一个子类,它依靠于决策树的投票选择来决定最后的分类结果。
通过自助法(boot-strap)重采样技术,不断生成训练样本和测试样本,由训练样本生成多个分类树组成的随机森林,测试数据的分类结果按分类树投票多少形成的分数而定。
(决策树的训练样本随机化,决策树中每个节点的分类属性的选择随机化,从而RF就不会产生过拟合现象)
利用bootstrap重抽样方法,从原始样本中抽出多个样本,对每个bootstrap样本进行决策树建模。
主要思想是bagging并行算法,用很多弱模型组合出一种强模型
-> 自动样本集 1 -> 树分类器
训练样本 -> 自动样本集 2 -> 树分类器 随机森林 -> 投票分类
-> 自动样本集 3 -> 树分类器

随机森林构造:
随机的方式建立一个森林,森林里有很多决策树,且每棵树之间无关联,当有一个新样本进入后,让森林中每棵决策树分别各自独立判断,看这个样本应该属于哪一类(对于分类算法)。
然后看哪一类被选择最多,就选择预测此样本为那一类(每个节点处随机选择特征进行分支)

1、随机决策树的构造(采样、完全分裂)
两个随机采样的过程,RF要对输入数据进行一下行(样本)、列(特征)采样,对于行采样(样本)采用有放回的方式,也就是在采样得到的样本中可以有重复。
从M个特征中(列采样)出m特征。之后就是用完全分裂的方式建立出决策树

2、随机森林构造过程
1.有N个样本,则有放回地随机选择N个样本(每次取1个,放回抽样)。这选择好了的N各样本用来训练一个决策树,作为决策树根节点处的样本。
2.当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m<<M。然后从这m个属性中采用某种策略(如信息增益)来选择一个属性,作为该节点的分裂属性。
3.决策树形成过程中,每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚父节点分裂时用过的属性,则该节点已经达到了叶子节点,无需继续分裂)。一直到不能再分裂为止,注意整个决策树形成过程中没有剪枝。
4.按步骤1-3建立大量决策树,如此形成RF。

随机森林参数:
一是树节点预选变量个数M(一般建议取很大)
二是随机森林中树的个数m(推荐m的值为M的均方根)

RF性能及优缺点:
1、数据集上表现良好,两个随机性的引入,使随机森林不易陷入过拟合,具有很好的抗噪声能力(相对其他算法有着很大的优势)
2、它能够处理很高维度(feature很多)的数据,并且不用做特征选择,对数据集的适应能力强:
既能处理离散型数据,也能处理连续型数据,数据集无需规范化
3、能够评估各个特征在分类问题上的重要性,可生成一个Proximities=(pij)矩阵,用于度量样本之间的相似性:
pij=aij/N, aij表示样本i和j出现在随机森林中同一个叶子结点的次数,N随机森林中树的颗数
4、创建随机森林的时候,对generlization error使用的是无偏估计
5、训练速度快,容易并行化计算,可以得到变量重要性排序(两种:基于OOB误分率的增加量和基于分裂时的GINI下降量)
6、训练过程中,能够检测到feature间的互相影响,训练完后,能够给出那些feature比较重要

缺点:
1.在噪音较大的分类或回归问题上会出现过拟合现象;
2.对于不同级别属性的数据,级别划分较多的属性会对随机森林有较大影响,则RF在这种数据上产出的数值是不可信的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值