随机森林
前言
- 随机森林是大家在接触机器学习中大概率第一个接触的算法,随机森林有着比其它算法更多的优势,因为足够简单,足够通俗易懂,可以说是决策树的增强版,或者说不用操心结果,大家(决策树)投票表决结果。
- 在国内外越来越多的大数据竞赛,比如阿里巴巴天池大数据竞赛,很多算法采用的都是随机森林。
- 由此可以看出来随机森林的重要性可见一斑。
什么是随机森林?
- 随机森林,从名字上就可以看出来,他是一个群体,是一个成百上千棵决策树的群体。
- 他的本质属于机器学习中的一大群体,集成学习。
- 随机森林重点在于随机与森林,森林之前说了,那么随机是什么呢?大家只要接触过决策树,就知道决策树是一个分类算法,说白了就是一个分类器。随机森林就是多棵决策树聚合而成,你向随机森林传入一个结果,那么,N棵树就有N个结果,每一个结果就是都是一票,相同的结果票数+1,最后输出的结果,我们选取一个投票信息最多的结果输出,这是从一个比较宏观的角度上来解释。其实这也是一个Bagging中的一种方法。
ps:很多博主都说是Bagging的思想,问了几个大牛。他们说都是,随机森林就是bagging算法,也就是装袋算法的比较经典的一种算法。
随机森林都能干啥?
- 这是一个比较全能的算法,基本没他不能干的。
如何实现随机森林
A - 从训练数据中选取n个数据作为训练数据的输入,一般情况下n是远远小于整体的训练数据N,这样就会造成有一部分数据是无法被去到的,这部分数据被称为袋外数据,可以使用袋外数据做误差分析。
B - 选取输入的训练数据后,构建决策树(方法:每一个分裂节点从整体的特征集M中选取m个特征构建,一般情况下m远小于M,通常是log2或者sqrt的数量),从这m个属性中根据某种策略(如gini减少或信息增益等)确定分裂属性。
C - 重复b步骤,直到不能分裂或达到我们设定的阈值(如叶子结点树或的树的深度),此时建立了一个决策树
D - 重复上面的a,b,c步骤,直到达到预定树的颗数为止。
随机森林算法的注意点
- 在构建决策树的过程中是不需要剪枝的。
- 整个森林的树的数量和每棵树的特征需要人为进行设定。
说了这么多还是没有明白什么是随机森林怎么办?
简单~,换成你们能懂的话就可以了。
举个例子:
想象你刚开学的大学生活。你们宿舍一共8个人。
这间宿舍就相当于一个随机森林。
你们宿舍6个人每人就相当于一颗决策树。
你们6个并排走在校园的林荫小道上。
这时候忽然跑过来一个女的瞬间一闪而过
结果你们6个人思绪纷飞
- 舍友小A说:“据我对女孩多年的了解,刚才一闪而过的女孩脸小眼大樱桃嘴,必定是一美女”
- 舍友小B说:"你那白内障18年的眼神,没看到那女的她平的跟水泥地一样,漂亮个屁”
- 舍友小C说:’'我看你B才是白内障,没看到那个女的腰那么细,盈盈一握不足以形容她的优美,沉鱼落雁不能形容她的…(反正就是美女)”
- 舍友小D说:“哎,从开学就说让B戴眼镜,戴眼镜,就是不戴,刚才那个女孩腿哪么细,又细又长又直,我说B你就是眼瞎”
- 舍友小E说:“哎哎,你们说的刚才那个女的?握草!屁股这么大,你们居然觉得漂亮?我勒个去!”
- 舍友小F:“肤浅!美女岂能是你们设么定义的?你看他手里拿着书飞奔过去的样子,肯定是个爱学习的女孩,只要这个女孩爱学习,那么就是美女!”
- 结果你们一直争论分析到了宿舍,然后你们投票表决!
- 美女:A C D F
- 丑女:B E
虽然有BE在里面说了 她是个丑女,可是依然不能决定大多数人认为他是美女的事实,说以那个女孩就是美女!!!这是你们在宿舍商讨投票出来的结论,最后你们向别的宿舍炫耀说你们宿舍在什么什么地方遇到了一个怎样怎样的美女,她有多么多么的漂亮。
如果你们还不了解。你们可以尝试讨论一下图片中的女孩是不是美女,这样的一个过程就是随机森林
图片引用于新浪博客“http://blog.sina.com.cn/s/blog_bfd0af3c0102wgs8.html”