随机森林法之科普篇

目前,人们已经对多种机器学习的模型进行了比较,随机森林经常独占鳌头[1]。

----题记

随机森林算法,在图像处理中经常见到,另外一个经常见到的是贪婪算法,一直以来不太清楚它们是做什么用的。那天,上网搜了下随机森林算法,发现李欣海老师的博客中有介绍,从头到尾仔细地看了下。下面是以我的方式将博客里的内容整理了一下,有兴趣了解细节的可以点击链接 http://blog.sciencenet.cn/home.php?mod=space&uid=661364&do=blog&id=728330

Q: 随机森林算法的基本思想是什么?
       A: 随机森林是一种基于分类树的算法。这个算法需要模拟和迭代,被归类为机器学习中的一种方法。
       Q: 随机森林算法解决什么问题?
       A: 解决回归问题和分类问题。(笼统一点儿来说,以我个人理解来看,两者都是拟合问题,前者拟合一个连续函数,后者拟合一个非连续函数)
       Q: 回归问题和分类问题不是有很多成熟的算法,简单如线性和广义线性回归模型,复杂如神经网络等算法,为什么还要使用随机森林算法呢?
       A:  随机森林算法较以上提到的算法有优势。概括来说,它用较小的计算量(相对于神经网络的庞大的计算量)实现了较高的预测精度(相较于线性和广义线性回归模型而言)。
       Q: 除了以上的优点,随机森林还有其他优点吗?
       A: 这个必须有。比如学习速度快;不需要考虑自变量的共线性问题(而Logstic模型在回归问题的使用中必须考虑);部分数据缺失,仍可以维持一定的准确度;对离群值(也称为野值)不敏感,算法健壮;不易产生过拟合(此观点尚存争议)
       Q: 说了这么多随机森林法的优点,那它的缺点呢?
       A:  虽然可以假称这个不能有,但是这个还真有。它的缺点主要集中在以下两点:一、算法预测结果倾向于样本中观测值较多的类别;二、水平分类多的自变量(如一个自变量有20个等级)比分类少的自变量(如一个自变量有3个等级)对模型的影响更大。(虽然我对随机方面的算法没有多少了解,但是直观感觉上面两条缺点,其他算法或多或少都有)
       Q: 如果只想使用随机森林,而不想了解背后的理论基础和编程细节,怎么办?
       A: 使用 R 语言的 RandomForest 软件包,把数据准备好,调用算法即可。顺手上网搜了下,Matlab 的 RandomForest 的软件包也有人写过,感兴趣的可以搜索下载使用。

参考文献:
       [1] http://blog.sciencenet.cn/home.php?mod=space&uid=661364&do=blog&id=728330

时间: 2024-08-10 17:19:49

随机森林法之科普篇的相关文章

Andriod Studio科普篇——3.一些常见问题

1.andriod gradle插件版本过低. 出错位置: dependencies{ classpath 'com.android.tools.build:gradle:0.10.2' } 提示信息:You must use a newer version of the Android Gradle plugin. The minimum supported version is 0.12.0 and the recommended version is 0.12.+ 这种情况一般出现在导入其

邮件模板——科普篇

我们平时都有过使用outlook的经历,outlook是微软office家族中的一员,通过outlook管理邮件可以说是非常方便高效的.其强大的邮件管理能力和编辑能力,都是非常出色的.下面我们简单看一下和邮件相关的前端技术. 一般我们编辑邮件,多数情况下会选择使用outlook内部集成的office编辑方式,我们可以像编辑word一样编写一封邮件,这种方式是比较适合编写文本为主的邮件的.这种邮件多以通知.叙述事情为主.格式多为纯文本或简单的图文混排为主.当然还有另外一种编辑方式——前端实现的邮件

Andriod Studio科普篇——3.关于编译的常见问题

1.android支持库未安装 编译不过,提示如下: Could not find any version that matches com.android.support:appcompat-v7:+ ....... Please install the Android Support Repository from the Android SDK Manager 其实原因和解决方法已经说得很清楚了,找不到支持库,请在Android SDK Manager中安装.所以打开我们的SDK Mana

Andriod Studio科普篇——4.关于编译的常见问题

转自:http://blog.csdn.net/maosidiaoxian/article/details/37655931 1.android支持库未安装 编译不过,提示如下: [plain] view plaincopy Could not find any version that matches com.android.support:appcompat-v7:+ ....... Please install the Android Support Repository from the

Nodejs的运行原理-科普篇

前言 Nodejs目前处境稍显尴尬,很多语言都已经拥有异步非阻塞的能力.阿里的思路是比较合适的,但是必须要注意,绝对不能让node做太多的业务逻辑,他只适合接收生成好的数据,然后或渲染后,或直接发送到客户端. 为什么nodejs 还可以成为主流技术哪? 是因为nodejs 对于大前端来说还是非常重要的技术!!!如果你理解nodejs 的编程原理,很容易就会理解angularjs,reactjs 和vuejs 的设计原理. NodeJS Node是一个服务器端JavaScript解释器,用于方便地

ssm科普篇

springMVC执行步骤: 1.用户发送请求到前端控制器,前端控制器根据请求信息来决定选择页面控制器,并将请求委托给它 2.页面控制器收到请求后,进行功能处理,首先需要收集和绑定请求参数到一个对象,并进行验证,然后将命令对象委托给业务对象 处理:处理完后返回一个ModelAndView(模型数据和逻辑试图名) 3.前端控制器收回控制权,然后根据返回的逻辑视图名,选择相应的视图进行渲染,并把模型数据传入以便视图渲染 4.前端控制器收回控制权,将响应返回给用户. springMVC核心架构的主要流

科普篇^_^

我们今天来讲一下什么是编译器. 当我们写程序的时候,用的语言一般都是高级语言,而计算机只认识01这两个数字,所以我们就需要一个编译器,把这些高级语言转化为二进制代码.也就是01代码,然后计算机再根据这些01代码进行操作. 我们来看一下百度百科的解释: 简单讲,编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序.一个现代编译器的主要工作流程:源代码 (source code) → 预处理器 (preprocessor) → 编译器

微信公众号开发(科普篇)

公众号分类 一.订阅号 具有信息发布与传播的能力,适合个人及媒体注册二.服务号 具有用户管理与提供业务服务的能力,适合企业及组织注册三.企业号 具有实现企业内部沟通与内部协同管理的能力,适合企业客户注册四.小程序 具有出色的体验,可以被便捷地获取与传播,适合有服务内容的企业和组织注册 公众号功能区分 微信相关平台 微信开放平台 (https://open.weixin.qq.com) 微信公众号平台 (https://mp.weixin.qq.com) 微信支付商户平台 (https://pay

花生日记科普篇——重在改变现有思维模式

**昨天,有位朋友在破茧群问我:你们发在朋友圈花生日记的收入截图是不是假的?那么多人月入过万,怎么可能? 同学,是贫穷限制了你的想象力.粉丝经济时代,请你想一想,拥有500.5000和5万粉丝的区别,一个人一天能带来1毛钱收入,一天多少钱? 你说很难!看了下,你的名下,不过才1个粉丝,所以你认为很坑. 其实这个世界上,能坑到你的人很少,更多的是自己坑自己. 无论你有多少天马行空的想法,无论你有多大的抱负,都需要一步步的来进行,"千里之行,始于足下.不积跬步,无以致千里",这道理大家都懂