机器学习算法原理总结系列---算法基础之(3)随机森林(Random Forest)

来源:互联网 发布:手机版淘宝怎么买二手 编辑:程序博客网 时间:2024/04/30 15:33

刚接触这次词的同学们肯定又感觉,又是一个高上大的算法,其实不然。大家可以想象,随机森林,是一片森林吧。森林又是由树组成的吧,而树的本质其实就是分类器,广义的来说,什么SVM,又都是分类器,当然也包括决策树。所以从广义上它们都可以叫做树,堆积起来就是随机森林。但怎么很好地设计整个架构,那就看看第一部分的讲解吧。

一、原理详解

首先,上一节我讲述了决策树的原理,决策树对训练属于有很好的分类能力,但对未知的测试数据未必有很好的分类能力,泛化能力弱,即可能发生过拟合的现象。
之后我们会经常能听到过拟合这个词,因为在FNN,CNN,RNN中都会有相应的策略去防止过拟合。
对于决策树来说,我们可以通过

  • 剪枝
  • 随机森林

来尽量防止过拟合的现象出现。

接下来尝试理解几个概念:

  1. Bootstraping:
    Bootstrapping(拔靴法)算法,指的就是利用有限的样本资料经由多次重复抽样,重新建立起足以代表母体样本分布之新样本。bootstrapping的运用基于很多统计学假设,因此假设的成立与否会影响采样的准确性。
  2. Bagging策略:
    bootstrap aggregation
    从样本集中重采样(有重复的)选出n个样本
    在所有属性上,对这个n个样本建立分类器(ID3,C4.5,CART, SVM, Logistic回归等)
    重复以上两步m次,即获得m个分类器
    将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类

所以随机森林在bagging基础上做了修改。

  1. 从样本集中用Bootstrap采样选出n个样本;
  2. 从所有属性中随机选择k个属性,选择最佳分割属性作为节点建立CART决策树;
  3. 重复以上两步m次,即建立了m棵CART决策树
  4. 这m个CART形成随机森林,通过投票决定结果,决定数据属于哪一类。

简单来说,随机森林就是对决策树的集成,但有两点不同:

  1. 采样的差异性:从含m个样本的数据集中有放回的采样,得到含m个样本的采样集,用于训练。这样能保证每个决策树的训练样本不完全一样。
  2. 特征选取的差异性:每个决策树的n个分类特征是在所有特征中随机选择的(n是一个需要我们自己调整的参数)
  3. 随机森林需要调整的参数有:
    (1) 决策树的个数
    (2) 特征属性的个数
    (3) 递归次数(即决策树的深度)

代码实现流程:

  1. 导入文件并将所有特征转换为float形式
  2. 将数据集分成n份,方便交叉验证
  3. 构造数据子集(随机采样),并在指定特征个数(假设m个,手动调参)下选取最优特征
  4. 构造决策树
  5. 创建随机森林(多个决策树的结合)
  6. 输入测试集并进行测试,输出预测结果
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 燕窝的属性 燕窝多钱 燕窝碎 三角盏燕窝 燕窝是价格 燕窝的种类 燕窝咋吃 余仁生燕窝 燕窝好不好 燕窝招商 集品堂燕窝 燕窝哪里买 燕窝的鉴别 怎么买燕窝 椰汁炖燕窝 竹燕窝价格 燕窝碎价格 怎么做燕窝 燕窝排名 品牌燕窝 燕窝怎样炖 白燕燕窝 燕窝有用 燕窝多久 燕窝怎么 燕窝真伪 燕窝的价值 上海燕窝 燕窝为什么叫燕窝 燕窝和雪燕 孕妇燕窝燕窝 燕窝好吗 黄燕窝 燕窝果价格 吃燕窝好吗 买燕窝 燕窝怎么分 海南燕窝 燕窝成品 燕窝排行榜 白兰氏燕窝