机器学习算法完整版见fenghaootong-github
随机森林(Random Forests)
鉴于决策树容易过拟合的缺点,随机森林采用多个决策树的投票机制来改善决策树
我们假设随机森林使用了m棵决策树,那么就需要产生m个一定数量的样本集来训练每一棵树,如果用全样本去训练m棵决策树显然是不可取的,全样本训练忽视了局部样本的规律,对于模型的泛化能力是有害的
产生n个样本的方法采用Bootstraping法,这是一种有放回的抽样方法,产生n个样本
而最终结果采用Bagging的策略来获得,即多数投票机制
Bagging
采用Bootstraping法,这是一种有放回的抽样方法,产生n个样本 Dt D t
DT
然后对每个 Dt D t 都用决策树算法进行训练
决策树算法:
gt=∑Cc=1[[b(x)=c]]⋅Gc(x) g t = ∑ c = 1 C [ [ b ( x ) = c ] ] ⋅ G c ( x )
gt g t :为完整的树
b(x) b ( x ) : Dt D t 每个分支的条件
Gc(x) G c ( x ) : 表示第c个分支下的子树
RF
RF=Bagging+DT R F = B a g g i n g + D T
对上面的DT进行多数投票得到随机森林G
G=uniform({gt}) G = u n i f o r m ( { g t } )
随机森林应用实例