随机森林随笔(一)

2018年6月20日 多云

终于开始动笔写点随机森林的东西,随机森林之前也接触过,但第一次感受到随机森林的魅力是看了周志华团队的这篇文章:Deep forest: Towards an alternative to deep neural networksGithub上也有源码,调试了一番也跑出来(建议在Linux环境下跑).

说起随机森林,就必然要谈到决策树学习.决策树学习是很多先进算法的基础,包括随机森林和boosting算法,也是被用作随机森林和boosting算法等模型的基石,因此,了解单个决策树的所有算法细节也是深入分析这些方法的先决条件.

最初的决策树学习算法是心理学家兼计算机科学家E.B.Hunt1962年在研究人类的概念学习过程时提出来的CLS(Concept Learning System),这个算法确立了决策树“分而治之”的学习策略.随后,Hunt的学生罗斯·昆兰1978年到斯坦福大学访学,写了一个类似于CLS的程序完成了一项作业,这项改进是引入了信息增益准则.1979年将他自己的工作整理出来并发表出来,这就是ID3算法.1986年昆兰应邀Machine Learning杂志社,重新发表了ID3算法,掀起了决策树研究的热潮.而后的几年间,更多的决策树算法问世,ID4、ID5等名字被其他研究者占用,昆兰也只好将自己的ID3后继算法命名C4.0,在此基础上进一步提出了著名的C4.5算法.

决策树优点有如下几点:

·决策树是非参数的,它们可以模拟出复杂的输入和输出的关系,不需要任何的先验假设.

·决策树能够处理不同种类的数据(有序的或分类变量,或者两者的混合).

·决策树本质上实现了特征选择.

·决策树会无视异常值或标签中错误.

·决策树是可分析的,容易被理解的.


一般的,一颗决策树包含一个根节点、若干个内部节点和若干个叶节点;叶节点对应于决策结果,其他每个节点则对应于一个属性测试;每个节点包含的样本集合根据属性测试的结果被划分到子节点中;根节点包含样本全集.从根节点到每个叶节点的路径对应了一个判定测试序列.

决策树学习的目的是为了产出一颗泛化能力强的决策树,其基本流程遵循简单且直观的“分而治之”策略.

对于决策树学习,如何选择最优划分属性.目前主要有三种划分方式:

·信息增益:ID3算法

·增益率:C4.5算法

·基尼指数:CART(Classification and Regression Tree)算法

为了防止决策树学习算法“过拟合”,会采用剪枝(pruning)的手段.决策树剪枝的基本策略有“预剪枝”和“后剪枝”.

决策树对于连续值和缺失值的处理都有着良好的适应性.

以上是对决策树有了个大致的介绍.具体内容参阅周志华的《机器学习》P73-P95.













猜你喜欢

转载自blog.csdn.net/yahyaWu/article/details/80742821