1、决策树概念
决策树(Decision Tree)是通过一系列规则对数据进行分类的过程。它提供一种在什么条件下会得到什么值的类似规则的方法。决策树分为分类树和回归树两种,分类树对离散变量做决策树,回归树对连续变量做决策树。
决策树可以看做一个树状预测模型,它是由节点和有向边组成的层次结构。树中包含3中节点:根节点、内部节点、叶子节点。
决策树只有一个根节点,是全体训练数据的集合。
树中每个内部节点都是一个分裂问题:指定了对实例的某个属性的测试,它将到达该节点的样本按照某个特定的属性进行分割,并且该节点的每一个后继分支对应于该属性的一个可能值。
每个叶子节点是带有分类标签的数据集合即为实例所属的分类。(即分类结果)
上图是一个典型的决策树,它表示概念buys_computer,即它目的是预测顾客是否可能购买计算机。内部节点用矩形表示,叶子节点用椭圆表示。
为了对未知的样本分类,样本的属性值在决策树上测试。我们用一些训练样本构造了图中的决策树,每个内部节点表示一个属性上的测试,每个叶子节点代表一个分类(buys_computer = yes, buys_computer = no )。
2、常用决策树算法
决策树算法很多,例如:ID3、C4.5、CART等。这些算法均采用自上而下的贪婪算法,每个内部节点选择分类效果最好的属性来分裂节点,可以分成两个或者更多的子节点,继续此过程直到这棵决策树能够将全部的训练数据准确的分类,或所有属性都被用到为止。该算法的简化版本是在使用了全部样本的假设来构建决策树的。具体步骤如下:
(1)起始N个样本集群S(N=1)和一个特征集F{f1,f2……}
(2)对于N个样本集,依次计算每个特征作为分割节点,使整体样本下降的信息量。
(3)选择一个使决策树信息量下降最快的特征fi和样本集进行分割。
(4)从特征集中去掉fi,去掉旧样本集,新生成的两个样本子集加入S(N)—>S(N+2-1=N+1).
(5)递归执行(2)至(4)步,直至特征集为空或者到达指定的树深度。
对于工程师而言,其实只要理解决策树是不断选择使数据集整体信息量下降最快的特征作为节点建立的树模型,这一核心点就足够了。在工程中,直接调用决策树模型的封装类就可以使用。
2.1、ID3算法介绍
ID3算法采用信息增益(information gain)属性。
详细参考:http://blog.csdn.net/acdreamers/article/details/44661149
2.1、CART算法介绍
CART算法采用Gini 指标(Gini Index)属性。
详细参考:http://blog.csdn.net/acdreamers/article/details/44664481
2.2、C4.5算法介绍
C4.5算法采用信息增益比(information gain ratio)属性。
详细参考:http://blog.csdn.net/acdreamers/article/details/44664571
2.3、随机森林算法介绍
详细参考:http://blog.csdn.net/acdreamers/article/details/44664585