1.决策树构建:
从当前节点的属性集合中选择一个属性就行划分,使得划分后节点的纯度增高,一直到终止条件:
a.借点所有样本属于同一类。b.没有可划分的属性。c.当前节点已经没有可划分的样本
2.属性选择
可以通过信息增益最大(ID3)或者信息增益比最大(解决信息增益比较偏好有更多属性值的属性的问题)(C4.5)或者划分后基尼指数最小(CART)来做。
3.剪枝
a.预剪枝:在决策树生成过程中,对每个节点进行划分前就行估计,若划分不能带来验证集泛化能力的提升,则停止划分。
优点:贪心策略,很多节点没有展开,降低了过拟合风险,显著减少了训练和测试时间开销
缺点:虽然当前节点划分不能带来泛化能力的提高,但是后续节点可能会带来泛化能力的提高,所以可能造成欠拟合。
b.后剪枝:先从训练集生成完整决策树,然后自底向上对非叶节点进行考察,若将该节点的子树替换为叶节点可以带来泛化能力的提升,则将该节点替换为叶节点。
优点:一般比预剪枝保留了更多的分支,欠拟合风险小,泛化能力更强。
缺点:要先生成完整决策树,并且自底向上考察所有非叶节点,训练时间开销大。
4.随机森林
bagging是一种集成方法,从样本中有放回的抽出一些样本作为子集训练一个模型,这样多次得到多个模型进行集成,得到更高的泛化能力。
随机森林采用bagging的策略,分类器采用决策树。训练多个决策树采用多数投票的方法就行预测。但是有一点与传统决策树不同。那就是在生成决策树时,在选择属性时,要先在属性集合d中选择一个属性子集k,然后在k中选择一个最优属性就行划分。参数k控制了随机性程度,k=d则与传统决策树相同,k=1则表示每次随机选择一个属性划分。一般取2为底的k=logd。这就使得随机森林基学习器的多样性不仅来自样本扰动还来自属性选择扰动,进一步提高了泛化能力。
参考:周志华《机器学习》