Random Forest随机森林概述

引言

在机器学习中,随机森林由许多的决策树组成,因为这些决策树的形成采用了随机的方法,因此也叫做随机决策树。随机森林中的树之间是没有关联的。当测试数据进入随机森林时,其实就是让每一颗决策树进行分类,最后取所有决策树中分类结果最多的那类为最终的结果。因此随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。随机森林可以既可以处理属性为离散值的量,如ID3算法,也可以处理属性为连续值的量,比如C4.5算法。另外,随机森林还可以用来进行无监督学习聚类和异常点检测。

理论描述

随机森林由决策树组成,决策树实际上是将空间用超平面进行划分的一种方法,每次分割的时候,都将当前的空间一分为二,如说下面的决策树,其属性的值都是连续的实数,如图1所示。将空间划分为成的样子如图2所示(注:所使用图片来自于网络)。

 

图1                                                                  图2

随机森林比较适合做多分类问题,训练和预测速度快;同时,对训练数据的容错能力,是一种有效地估计缺失数据的一种方法,当数据集中有大比例的数据缺失时仍然可以保持精度不变和能够有效地处理大的数据集;可以处理没有删减的成千上万的变量;能够在分类的过程中可以生成一个泛化误差的内部无偏估计;能够检测到特征之间的相互影响以及重要性程度;不过出现过度拟合;实现简单容易并行化。

RF生成过程

具体决策树的生成过程如下所示:


其中关于信息增益这里就不作具体的介绍,反正信息增益越大,就说明那个属性相对来说越重要。流程图中的identical values 可以理解为是分类值,离散值,就是它本身不具备数值的意义,比如说颜色分为红,绿,蓝等,是人为给它标定的一个离散值而已。流程图中的real values可以理解为连续的实数,也就是说属性本身是具有数值的,比如说物体的长度,这就是一个real value,在进行这种连续值属性构造决策数时,需要按照属性值的范围进行生成子节点。

RF构造过程

当可以生成好决策树后,就比较容易生成随机森林了。接下来是随机森林的构造过程,如下所示:

第一、假如有N个样本,则有放回的随机选择N个样本(每次随机选择一个样本,然后返回继续选择)。这选择好了的N个样本用来训练一个决策树,作为决策树根节点处的样本。

第二、当每个样本有M个属性时,在决策树的每个节点需要分裂时,随机从这M个属性中选取出m个属性,满足条件m << M。然后从这m个属性中采用某种策略(比如说信息增益)来选择1个属性作为该节点的分裂属性。

第三、决策树形成过程中每个节点都要按照步骤2来分裂(很容易理解,如果下一次该节点选出来的那一个属性是刚刚其父节点分裂时用过的属性,则该节点已经达到了叶子节点,无须继续分裂了)。一直到不能够再分裂为止。注意整个决策树形成过程中没有进行剪枝。

最后、按照步骤1~3建立大量的决策树,这样就构成了随机森林了。

从上面的步骤可以看出,随机森林的随机性体现在每颗数的训练样本是随机的,树中每个节点的分类属性也是随机选择的。有了这2个随机的保证,随机森林就不会产生过拟合的现象了。随机森林有2个参数需要人为控制,一个是森林中树的数量,一般建议取很大。另一个是m的大小,推荐m的值为M的均方根。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

走出半生,望你归来仍是程序员

在世二十七年&#xff0c;自认为积累了一点人生经验。思索着当你还在你娘胎的日子里&#xff0c;整理一番留给以后的你&#xff0c;当作你以后漫漫人生路上的参考。我保证&#xff0c;倘若哪天你发现某条不对或者跟你的想法不一样&#xff0c;你能敞开心扉与我交谈&#xff0c;…

kd tree学习笔记 (最近邻域查询)

https://zhuanlan.zhihu.com/p/22557068 http://blog.csdn.net/zhjchengfeng5/article/details/7855241 KD树在算法竞赛中主要用来做各种各样的平面区域查询&#xff0c;包含则累加直接返回&#xff0c;相交则继续递归&#xff0c;相离的没有任何贡献也直接返回。可以处理圆&am…

正则表达式的元素符

import reprint("----------匹配单个字符与数字----------") r . 匹配除换行符以外的任意字符 [0123456789] []是字符集合&#xff0c;表示匹配方括号中所有所包含的任意一个字符 [liuwang] [] 匹配‘l&#xff0c;i&#xff0c;u 中任意一个字符…

图像影音型计算机主板选择什么,电脑主板型号在哪里看? 每日一答

电脑主板型号在哪里看&#xff1f;想要看主板的型号其实非常简单&#xff0c;一般来说&#xff0c;主板上都会有一个专门的身份标识&#xff0c;位于PCI-E显卡插槽之间&#xff0c;比如下方这张图&#xff0c;就清晰地写明了MAXIMUS X APEX的标识&#xff0c;熟悉的玩家一眼就能…

使用叶神模拟器无法访问本机服务器的问题(报错:java.net.ConnectException: failed to connect to /127.0.0.1 (port 5000) )

最近打算用夜神模拟器来和本机服务器做一些信息交互的功能&#xff0c;但是服务器搭建好了&#xff0c;用叶神模拟器却无法访问。折腾了大半天才发现原来是模拟器的问题。 具体过程如下&#xff1a; 搭建好服务器后&#xff0c;在本机上访问“http://127.0.0.1:5000/”&#…

NSObject协议中方法:description 和 debugDescription

description基本概念 1.NSLog("%", objectA);这会自动调用objectA的description方法来输出ObjectA的描述信息. 2.description方法默认返回对象的描述信息(默认实现是返回类名和对象的内存地址) 3.description方法是基类NSObject 所带的方法,因为其默认实现是返回类名…

re模块的深入

import re 字符串切割str1 "allen is a good man" print(str1.split()) print(re.split((r" "),str1)) re.finditer函数 原型&#xff1a;finditer(pattern, string, flags0) pattern: 匹配的正则表达式 string: 要匹配的字符串 flags:标志位&…

身份证

<?php defined(IN_IA) or exit(Access Denied);class check {// $num为身份证号码&#xff0c;$checkSex&#xff1a;1为男&#xff0c;2为女&#xff0c;不输入为不验证public function checkIdentity($num, $checkSex ) {// 不是15位或不是18位都是无效身份证号if (strl…

鼓励参与计算机考试宣传标语,诚信考试的宣传标语(精选60条)

诚信考试的宣传标语(精选60条)诚信考试&#xff0c;做文明公民&#xff0c;既是时代需要&#xff0c;也是做人的基本准则。下面是小编收集的诚信考试的宣传标语(精选60条)&#xff0c;欢迎阅读。1、让舞弊远离校园&#xff0c;让诚信常驻心中2、刻苦学习&#xff0c;认真做人3、…

初学大数据之如何选择机器学习算法

最近在国外网站看到一篇不错的文章&#xff0c;所以就翻译过来给大家分享一下。主要介绍初学者怎么选择机器学习算法,希望对各位初学者有帮助。 原文如下: 一个初学者面临各种机器学习算法的典型问题是“我应该使用哪种算法&#xff1f;”问题的答案取决于许多因素&#xff0…

Django查询 – id vs pk

当编写django查询时&#xff0c;可以使用id / pk作为查询参数。 Object.objects.get(id1) Object.objects.get(pk1) pk代表主键(primary key)&#xff0c; pk更加独立于实际的主键字段&#xff0c;即不必关心主键字段是否被称为id或object_id或其他。 如果您具有不同主键字…

Tomcat的Session管理(三)

摘要&#xff1a;PersistentManager与StandardManager的异同。 之前两篇关于session的文章主要讨论了session相关的创建、查询、过期处理。而我们查看源码的时候都是默认实现是StandardManager类&#xff0c;实际上实现也可以是PersistentManager类&#xff0c;下面我们就查看下…

计算机基础的函数公式,大学计算机基础 excle 公式与函数

《大学计算机基础 excle 公式与函数》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《大学计算机基础 excle 公式与函数(32页珍藏版)》请在人人文库网上搜索。1、,.,场景1,发布日期:2011.11.09,新入职场,经理说&#xff1a; 小张&#xff0c;以后工资发放的事情就交给…

稳定和性能如何兼顾?58大数据平台的技术演进与实践

作者&#xff5c;赵健博 编辑&#xff5c;尚剑 本文将为你分享58大数据平台在最近一年半内技术演进的过程&#xff0c;包括&#xff1a;58大数据平台目前的整体架构是怎么样的&#xff1b;最近一年半的时间内我们面临的问题、挑战以及技术演进过程&#xff1b;以及未来的规划。…

Random Forest算法简介

转自JoinQuant量化课堂 一、相关概念 分类器&#xff1a;分类器就是给定一个样本的数据&#xff0c;判定这个样本属于哪个类别的算法。例如在股票涨跌预测中&#xff0c;我们认为前一天的交易量和收盘价对于第二天的涨跌是有影响的&#xff0c;那么分类器就是通过样本的交易量…

MySQL 学习笔记

01 import pymysql#连接数据库db pymysql.connect("192.168.1.179","root","liuwang","liu")#创建一个cursor对象 cursor db.cursor() sql "select version()"cursor.execute(sql)data cursor.fetchone() print(data)…

简单交互

控件有着各种事件&#xff0c;例如被点击的时候&#xff0c;我们可以在事件里面添加动作和命令&#xff0c;让控件可以和用户交互&#xff0c;这里我们演示一个简单的交互&#xff1a;当用户点击文字控件的时候&#xff0c;它开始动画向下移动然后动画旋转&#xff0c;效果入下…

综合素质计算机考点,教师资格证小学综合素质考点及考试真题:信息处理能力...

小学综合素质考点及考试真题——信息处理能力大纲要求&#xff1a;具有运用工具书检索信息、资料的能力。具有运用网络检索、交流信息的能力。具有对信息进行筛选、分类、存储和应用的能力。具有运用教育测量知识进行数据分析与处理的能力。具有根据教育教学的需要&#xff0c;…

API文档自动生成

本文主要讲述自动化API文档生成——apidoc。网上有几个篇文章都只是介绍apidoc的&#xff0c;具体怎么在自己的项目中使用以及与其他配合使用都是没介绍的。最近开始玩服务器&#xff0c;了解到了有Windows与Linux之间共享文件的方法&#xff0c;就是samba。然后具体和apidoc结…

机器学习笔记之SVM(SVR)算法

学过SVM后&#xff0c;看了那么多别人的文章&#xff0c;是时候自己总结一波了。权当写的笔记供自己日后再回顾吧。 PS:结合自己在工作过程中&#xff08;我这里用SVR做股票预测&#xff09;用到的知识来写的&#xff0c;不会很全面&#xff0c;若有些知识这里没提及读者可自行…