机器学习算法实践——决策树
决策树的介绍和应用
决策树的介绍
决策树是一种常见的分类模型,在金融分控、医疗辅助诊断等诸多行业具有较为广泛的应用。决策树的核心思想
是基于树结构对数据进行划分,这种思想是人类处理问题时的本能方法。例如在婚恋市场中,女方通常会先看男
方是否有房产,如果有房产再看是否有车产,如果有车产再看是否有稳定工作……最后得出是否要深入了解的判
断。
决策树的主要优点:
- 具有很好的解释性,模型可以生成可以理解的规则。
- 可以发现特征的重要程度。
- 模型的计算复杂度较低。
决策树的主要缺点:
- 模型容易过拟合,需要采用减枝技术处理。
- 不能很好利用连续型特征。
- 预测能力有限,无法达到其他强监督模型效果。
- 方差较高,数据分布的轻微改变很容易造成树结构完全不同。
决策树构建
输入: 训练集 D = ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . . , ( x m , y m ) ; D={(x_1 ,y_1 ),(x_2 ,y_2 ),....,(x_m ,y_m )}; D=(x1,y1),(x2,y2),....,(xm,ym);
特征集 A = { a 1 , a 2 , . . . . , a d } A=\{ a_1,a_2 ,....,a_d \} A={
a1,a2,....,ad}
输出: 以node为根节点的一颗决策树
过程:函数TreeGenerate ( D , A ) (D ,A ) (D,A)
- 生成节点node
- i f if if D 中 样 本 全 书 属 于 同 一 类 别 : D中样本全书属于同一类别 : D中样本全书属于同一类别:
- ----将node标记为 类叶节点;
- i f A = 空 集 o r D 中 样 本 在 上 的 取 值 相 同 : if A = 空集 or D中样本在 上的取值相同 : ifA=空集orD中样本在上的取值相同:
- ----将node标记为叶节点,其类别标记为 中样本数最多的类; r e t u r n return return
- 从 A 中 选 择 最 优 划 分 属 性 a ∗ ; A中选择最优划分属性 a_*; A中选择最优划分属性a∗;
- f o r a ∗ 的 每 一 个 值 a ∗ v : d o for a_*的每一个值a_*^v :do fora∗的每一个值a∗v:do
- ----为node生成一个分支, 令 D v 表 示 a ∗ 中 在 上 取 值 为 的 样 本 子 集 ; 令 D_v表示 a_*中在 上取值为 的样本子集; 令Dv表示a