1.分类回归树CARThtml
随机森林是由多颗CART树组成的算法
CART(Classification and regression tree)是决策树的一种,主要由特征选择,树的生成和剪枝三部分组成。它主要用来处理分类和回归问题。函数
(1)、回归树:使用平方偏差最小准则 性能
训练集为:D={(x1,y1), (x2,y2), …, (xn,yn)}。 学习
输出Y为连续变量,将输入划分为M个区域,分别为R1,R2,…,RM,每一个区域的输出值分别为:c1,c2,…,cm则回归树模型可表示为: 测试
则平方偏差为:spa
假如使用特征j的取值s来将输入空间划分为两个区域,分别为: .net
咱们须要最小化损失函数,即:3d
其中c1,c2分别为R1,R2区间内的输出平均值。(此处与统计学习课本上的公式有所不一样,在课本中里面的c1,c2都须要取最小值,可是,在肯定的区间中,当c1,c2取区间输出值的平均值时其平方会达到最小,为简单起见,故而在此直接使用区间的输出均值。)
为了使平方偏差最小,咱们须要依次对每一个特征的每一个取值进行遍历,计算出当前每个可能的切分点的偏差,最后选择切分偏差最小的点将输入空间切分为两个部分,而后递归上述步骤,直到切分结束。此方法切分的树称为最小二乘回归树。
最小二乘回归树生成过程:
1)依次遍历每一个特征j,以及该特征的每一个取值s,计算每一个切分点(j,s)的损失函数,选择损失函数最小的切分点。
2)使用上步获得的切分点将当前的输入空间划分为两个部分
3)而后将被划分后的两个部分再次计算切分点,依次类推,直到不能继续划分。
4)最后将输入空间划分为M个区域R1,R2,…,RM,生成的决策树为:
其中cm为所在区域的输出值的平均。
总结:此方法的复杂度较高,尤为在每次寻找切分点时,须要遍历当前全部特征的全部可能取值,假如总共有F个特征,每一个特征有N个取值,生成的决策树有S个内部节点,则该算法的时间复杂度为:O(F*N*S)
(2)、分类树:使用基尼指数最小化准则
基尼指数:假如总共有K类,样本属于第k类的几率为:pk,则该几率分布的基尼指数为:
基尼指数越大,说明不肯定性就越大。
对于二类分类:
使用特征A=a,将D划分为两部分,即D1(知足A=a的样本集合),D2(不知足A=a的样本集合)。则在特征A=a的条件下D的基尼指数为:
Gini(D):表示集合D的不肯定性。
Gini(A,D):表示通过A=a分割后的集合D的不肯定性。
CART生成算法:
1)依次遍历每一个特征A的可能取值a,对每个切分点(A, a)计算其基尼指数。
2)选择基尼指数最小的切分点做为最优切分点。而后使用该切分点将当前数据集切分红两个子集。
3)对上步切出的两个子集分别递归调用1)和2),直至知足中止条件。(算法中止的条件是样本个数小于预约阀值,或者样本集的基尼指数小于预约阀值或者没有更多特征)
4)生成CART决策树。
分类树能够使用基尼指数做为分类标准,至于为何使用该指标,咱们能够从信息论的角度思考。一样采样这样的分类标准会致使生成树选择最优属性时会偏向类别比较多的属性,所以在实际使用的过程当中应对数据集进行处理或者控制树的深度。虽然决策树算法能够经过剪枝(正则、验证集测试)或者早中止策略尽可能避免过拟合,但性能上依旧不能使人满意。