决策树意义:
分类决策树模型是表示基于特征对实例进行分类的树形结构.决策树可以转换为一个if_then规则的集合,也可以看作是定义在特征空间划分上的类的条件概率分布. 它着眼于从一组无次序、无规则的样本数据(概念)中推理出决策树表示形式的分类规则.假设这里的样本数据应该能够用“属性—结论”.决策树学习旨在构建一个与训练数据拟合很好,并且复杂度小的一个可以自动对数据进行分类的树形结构,是树形结构的知识表示,可以直接转换为分类规则.因为从可能的决策树中直接选取最优决策树是NP完全问题,现实中采用启发式方法学习次优的决策树.
随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法.
树模型在制药和生物领域尤其受欢迎,可能因为它和医生做决策的过程比较类似. 随机森林(Random Forest,简称RF)拥有广泛的应用前景,从市场营销到医疗保健保险,既可以用来做市场营销模拟的建模,统计客户来源,保留和流失,也可用来预测疾病的风险和病患者的易感性.
决策树学习算法:
包含3部分:特征选择、树的生成和树的剪枝.常用算法有ID3、C4.5和CART、RandomForest,其中C4.5是ID3的校正,RandomForest的思想可用于前面三种算法来提高正确度
CART(分类的生成算法):
输入:训练数据集D,停止计算的条件;
输出:CART决策树
根据训练数据集,从根结点开始,递归地对每个结点进行以下操作,构建二叉决策树;
(1)设结点的训练数据集为D,计算现有特征对该数据集的基尼指数.此时,对每一个特征A,对其可能取的每一值a,根据样本点对A=a的测试为“是”或“否”将D分割成D1和D2 两部分,计算A=a时的基尼指数
(2)在所有可能的特征A以及它们所有可能的切分点a中,选择基尼指数最小的特征及其对应的切分点作为最优特征与最优切分点.依最优特征与最优切分点,从现结点生成两个子结点,将训练数据集依特征分配到两个子结点中去.
(3)对两个子结点递归地调用(1)、(2),直至满足停止条件
(4)生成CART决策树
算法停止计算的条件是结点中的样本个数小于预定阈值,或样本集的基尼指数小于预定阈值(样本基本属于同一类),或者没有更多特征.
决策树优缺点:
优点:
1、决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,只从样本数据及提供的信息就能够产生一颗决策树,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义;
2、对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果;
3、易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式;
缺点:
1、是基于规则的算法,在产生规则的时候采用了局部的贪婪方法,每次只选取一个属性进行分析构造决策树,因而产生大量的规则,数据集很大,规则就很复杂,效率明显会下降,而且既然是局部最优,无法保障全局最优;
2、C4.5在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效.只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行;
3、处理缺失数据时的困难;
4、过度拟合问题的出现,以及忽略数据集中属性之间的相关性等.
RF的优缺点:
优点:
1、 几乎不需要输入准备.它们可以处理二元特征,分类特征,数字特征,并且不需要任何缩放处理.
2、 在当前所有算法中,具有极好的准确率;
3、 能够有效地运行在大数据集上;
4、 能够处理具有高维特征的输入样本,而且不需要降维;
5、 能够评估各个特征在分类问题上的重要性;
6、 在生成过程中,能够获取到内部生成误差的一种无偏估计;
7、 对于缺省值问题也能够获得很好得结果;
8、 可实现隐式特征选择,并且提供一个很好的特征重要性指标;
9、 通用性.随机森林适用于各种各样的建模工作,它们可以很好的处理回归任务和分类任务(甚至产生体面的校正的概率分数),它就相当于机器学习领域的Leatherman(多面手),你几乎可以把任何东西扔进去,它基本上都是可供使用的.在估计推断映射方面特别好用,以致都不需要像SVM那样做很多参数的调试.
缺点:
1、 随机森林的主要劣势在于模型大小.你可能需要数百兆的内存才能轻松地结束一个森林,而且评估的速度也很慢.
2、 另外一点,有些人可能会发现一个问题,也就是随机森林模型其实是个很难去解释的黑盒子.
RF为什么要有放回地抽样:
如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是"有偏的",都是绝对"片面的",也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决,这种表决应该是"求同",因此使用完全不同的训练集来训练每棵树这样对最终分类结果是没有帮助的
1)如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的;
2) 每棵树都尽最大程度的生长,并且没有剪枝过程.
随机森林中的“随机”就是指的这里的两个随机性.两个随机性的引入对随机森林的分类性能至关重要.由于它们的引入,使得随机森林不容易陷入过拟合,并且具有很好得抗噪能力(比如:对缺省值不敏感).
随机森林分类效果(错误率)与两个因素有关:
1)森林中任意两棵树的相关性:相关性越大,错误率越大;
2)森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低.
减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大.所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数.
原文:http://www.cnblogs.com/dudumiaomiao/p/5947369.html