提起决策树,可以从叶子节点,分支节点和分支条件,以及防止过拟合的方法这四个方面去考虑。
决策树的核心思想是在特征列表中找到一个最优特征,然后从这个特征的取值中选出最优的候选值,利用这个候选值将数据集分为两个子集,以此进行递归。最优特征的选取借助于信息增益或者信息增益比,在非2分类的问题中,无需寻找最优特征的最优候选值。决策树的停止条件是:当检测到数据的分类效果已经够好的时候,可以停止,或者说当某个叶子节点内的样本数小于阈值时,可以停止,也可以规定树的深度。
决策树的优势在于:
1,树的结构可以可视话,训练需要的数据少
2,数值型和分类型的数据都可以处理
3,多路输出
缺点:
很容易生成一个过于复杂的模型,在大数据集上泛化能力很差,这时就需要剪枝、设置叶子节点所需的最小样本数或者设置树的最大深度。
在sklearn中可以定义的超参数有:树的最大深度、叶子节点的最小样本数、一个分支的最小样本数
根据选择最优特征的方法可以分为ID3(信息增益)、C4.5(信息增益比)、CART(基尼指数),选择特征是一个局部最优选择,剪枝的原则是:损失函数变动最小为原则。
提及决策树,当然也要讨论随机森林:用随机的方式建立一个森林,森林由决策树组成,每一颗决策树之间没有关联。样本的选择和属性的选择是随机的,每一颗决策树就是在某一个领域内的专家,对于一个新的问题,从不同的角度看待它,最终由各个专家投票得到结构。
GBDT是在每一个新树的建立过程中加入了之前所有树结果的残差,树的生成是串行生成的,而且最终的结果是所有树的加权累加。