机器学习——决策树(decision tree)

相关文章链接:

        机器学习——人工神经网络(NN)

        机器学习——卷积神经网络(CNN)

        机器学习——循环神经网络(RNN)

        机器学习——长短期记忆(LSTM)

        机器学习——决策树(decision tree)

        机器学习——随机森林(Random forest)

        机器学习——梯度提升决策树(GBDT)

        机器学习——XGboost模型

一、什么是决策树/判定树(decision tree)

为达到目的根据一定的条件进行选择的过程就是决策树是基于树形结构利用信息学中熵的概念构建出的监督学习算法模型利用决策树可以解决基本的分类和回归问题

机器学习——决策树(decision tree)_第1张图片

决策树算法在树形结构的基础上直接模仿现实生活中人类做决策的过程医学诊断商业决策等

构成决策树的元素是节点和边节点会根据样本的特征作出判断最初的分支点称为根节点其余的被称为子节点不再有分支的节点则被称为叶子节点这些节点代表了样本的分类结果边则指示着方向

机器学习——决策树(decision tree)_第2张图片

二、决策树的构造

为了构造决策树人们找到了一个衡量标准在热力学中熵被用来描述一个系统内在的混乱程度在决策树中熵代表分支样本种类的丰富性样本中种类越多越混乱熵就越大如果分支下的样本完全属于同一类熵就等于0.

条件熵 H ( Y ∣ X ) H(Y|X) H(Y∣X)表示在已知随机变量X的条件下随机变量Y的不确定性,随机变量X给定的条件下随机变量Y的条件熵(conditional entropy) H(Y|X),定义X给定条件下Y的条件概率分布的熵对X的数学期望:

机器学习——决策树(decision tree)_第3张图片

其中

构建树的基本思路是随着树的深度也就是层数的增加让熵快速降低熵降低的速度越快代表决策树的分类效率越高

递归构建决策树

得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分,第一次划分之后,数据将被向下传递到树分支的下一个节点,在此节点在此划分数据,因此可以使用递归的原则处理数据集。

递归结束的条件

程序完全遍历所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类,如果所有实例具有相同的分类,则得到一个叶子节点或者终止块,任何到达叶子节点的数据必然属于叶子节点的分类。

决策树学习的3个步骤

机器学习——决策树(decision tree)_第4张图片

1、特征选择

特征选择决定了使用哪些特征来做判断。在训练数据集中,每个样本的属性可能有很多个,不同属性的作用有大有小。因而特征选择的作用就是筛选出跟分类结果相关性较高的特征,也就是分类能力较强的特征。

特征选择的目的是选取能够对训练集分类的特征。特征选择的关键是准则:信息增益、信息增益比、Gini 指数

2、决策树生成

选择好特征后,就从根节点触发,对节点计算所有特征的选择合适特征作为节点特征,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点

通常是利用信息增益最大、信息增益比最大、Gini 指数最小作为特征选择的准则。从根节点开始,递归的生成决策树。相当于是不断选取局部最优特征,或将训练集分割为基本能够正确分类的子集;

3、决策树剪枝

剪枝(pruning):从已经生成的树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶子节点,从而简化分类树模型。剪枝的主要目的是对抗“过拟合”,通过主动去掉部分分支来降低过拟合的风险。包括预剪枝和后剪枝。

预剪枝是在训练开始前规定条件树达到某一深度就停止训练

后剪枝树先找到树再根据一定条件去掉一部分分支限制叶子节点的个数

总结

在一棵决策树中 1、将面临的因素也就是问题的特征构建为树的内部节点

   2、因素的特征值均构建为该因素特征节点中的分支指针

   3、最终的类别结果树树的叶子节点

这样就构成了一棵决策树

三、决策树的优缺点

优点

  1. 易于理解和解释决策树可以可视化
  2. 几乎不需要数据预处理决策树不支持缺失值
  3. 可以同时处理数值变量和分类变量。其他方法大都适用于分析一种变量的集合
  4. 可以处理多值输出变量问题
  5. 使用白盒模型。如果一个情况被观察到,使用逻辑判断容易表示这种规则。相反,如果是黑盒模型(例如人工神经网络),结果会非常难解释

缺点

  1. 决策树学习可能创建一个过于复杂的树,并不能很好的预测数据。也就是过拟合。修剪机制,设置一个叶子节点需要的最小样本数量,或者数的最大深度,可以避免过拟合。
  2. 决策树可能是不稳定的,因为即使非常小的变异,可能会产生一颗完全不同的树。这个问题通过decision trees with an ensemble来缓解。
  3. 学习一颗最优的决策树是一个NP-完全问题under several aspects of optimality and even for simple concepts。因此,传统决策树算法基于启发式算法,例如贪婪算法,即每个节点创建最优决策。这些算法不能产生一个全家最优的决策树。对样本和特征随机抽样可以降低整体效果偏差。
  4. 如果某些分类占优势,决策树将会创建一棵有偏差的树。因此,建议在训练之前,先抽样使样本均衡。

你可能感兴趣的:(机器学习,人工智能,算法,决策树,回归)