system: [SYSTEM]

user: 2. 原理方法 2.1. 决策树 决策树是一种描述对实例进行分类的树形结构，决策树由结点和有向边组成。决策树是属性与值之间的一种映射关系。决策树算法过程包括特征的选择、树的生成和树剪枝的过程，根据特征选择的方法不一样，形成了不同的算法，主要包括ID3算法，C4.5算法和CATR算法。 ID3是决策树算法的一种，是在原始决策树算法的基础上实现的。采用的分治的思想，其主要特点是在结点上选择特征时采用的是信息增益的方法。信息熵是衡量随机变量出现的期望值，熵值越大，代表信息的不确定性越大。一般选择熵值大的特征属性作为结点的划分 [ 16 ]。计算过程是：在开始计算输入的所有属性，根据输入的所有特征属性，根据公式计算这些特征属性的信息增益，选择最大的作为分枝结点。在每个分支结点都进行此运算，最后将每个类别分到不同的叶子节点中，形成一棵决策树。当有未知样本输入时，每经过一个结点判断路径走向，最终预测类别。C4.5算法它是根据ID3算法改进，继承优势补齐缺点。其主要不同之处在于利用信息增益率来进行特征属性的选择。对这一点的改进主要是避免了进行特征属性选择时会偏向多值的特征属性的缺点。另一个优点是加入了树的剪枝功能，从而防止过拟合。此外还可以处理缺省值。CATR算法与前面两种算法不同的是，利用基尼指数值来分枝不同特征属性，并且该方法主要采用的是二分，即每个枝点都只分成两个结点，最终形成一颗二叉树。 决策树方法最重要的一个环节是确定特征属性划分方案，这个划分方案的选择主要是依据信息论的理论。假设训练数据集 D = { ( x 1 ， y 1 ) ， ( x 2 ， y 2 ) ， ⋯ ， ( x N ， y N ) } ，其中 x i = ( x i ( 1 ) ， x i ( 2 ) ， ⋯ ， x i ( n ) ) 为输入实例，n为特征个数， y i ∈ { 1 ， 2 ， ⋯ ， K } 为类标记， i = 1 ， 2 ， ⋯ ， N 为样本容量，A表示某一特征属性。设X是一个取有限个值的离散随机变量，其概率分布为 P ( X = x i ) = p i ，     i = 1 ， 2 ， ⋯ ， n (1) 其中信息量(Intormation)和嫡(Entropy)的定义为 Information = − log 2 p i (2) Entropy = − ∑ p i log 2 p i (3) 信息增益： G ( D ， A ) = Entropy ( D ) − ∑ D A D Entropy ( D A ) (4) 信息增益率： G R ( D ， A ) = G ( D ， A ) Entropy ( D ) (5) 基尼指数： Gini ( D ) = 1 − ∑ p i 2 (6) 假设用特征A将数据集D分为D 1 ，D 2 ，则划分的基尼指数为： Gini ( D ) = D 1 D × Gini ( D 1 ) + D 2 D × Gini ( D 2 ) (7) 对于决策树还有另一个种类，是回归决策树。在机器学习中每一类方法即可以用来分类，判别某一类的类别，也可以用于回归计算，计算某一个值，主要解决回归问题。在回归决策树中与分类决策树最大不同点是判断结点分支的依据不是选用信息熵的理论，而是用最小化均方差来判断选择划分特征属性。 2.2. 随机森林方法 随机森林属于组合分类器之一，由许多决策树叠加组成。分配给每棵树的样本是从数据集中随机抽取，抽完后放回，抽取数据是有放回的抽样 [ 17 ]。每抽取一次数据，就建立一颗决策树模型，重复这样的操作，最后所有的决策树就形成了一片森林，即随机森林(图1)。 该方法与决策树方法有很多相同的地方，都是属于树形结构，且每个结点的特征属性划分方法基本一致，都采用ID3，C4.5，和CATR等算法。其主要不同点是在决策树的基础上，引入了两个不同的随机条件，第一次随机是从数据集中随机的抽取训练数据集(Random subset)，该抽样方法是有放回的抽样，每次抽取一次则形成一颗决策树(图1)。在决策树里，随机森林该方法采用了第二次随机条件，即对抽取的训练集中的数据的特征属性集合n中采取随机选取S(S≤n)个特征属性集合，根据这S个特征进行结点划分和决策树的生成。该方式使得生成的决策树具有随机性。正因为引入了这两个随机的特征，使得该方法相比决策树而言具有更好的效果 [ 18 ]。该方法优点主要：第一，有对训练数据不容易产生过拟合的现象。第二，在不同属性中可以判断属性的重要程度，根据选择需要可以选折几个重要的特征属性参数。第三，该方法对噪声、异常值等数据具有不敏感的性质。 图1. 随机森林示意图 2.3. 梯度提升树(GBDT)方法 梯度提升树是一种迭代的回归决策树算法，由多颗决策树组成，将所有树的结论累加起来就是最终的结论 [ 19 ]。该方法是一个应用很广泛的算法，主要是用于分类和回归两方面，其次是特征的选择和创造新特征。该方法学习的过程中，因为是属于加法模型，所以无论是分类还是回归，都应用的是回归模型的决策树。在各结点分支时，不再是利用信息熵理论判断，而是选择最小化均方差来判断结点分支。均方差最小的作为分支判断依据。 该方法主要有两个不同特点。第一种是提升树，即残差方式生成的树。在所给的数据中学习时，最开始是先生成一颗回归决策树。然后根据这颗树的结果与真实值做差值，得到了残差，然后根据每个数据的残差的值再生成一颗决策树。到第m步的决策树模型表达式为 f m ( x ) (公式8)。其中参数 ∅ m 主要依据公式(1.9)，计算残差得到。以此类推，最后得到一个误差较小的树，利用前向分布算法最终把所有的树结合起来即是该方法的分类或回归的决策函数模型(公式10)。 f m ( x ) = f m − 1 ( x ) + T ( x ; ∅ m ) (8) T ( x ; ∅ m ) 是第m次的决策树； f m − 1 ( x ) 为前 m − 1 步生成的模型； f m ( x ) 是当前生成的模型， ∅ m 为决策树参数。 ∅ m = arg min ∑ i = 1 N     L ( y i ， f m − 1 ( x ) + T ( x ; ∅ m ) ) (9) f M ( x ) = ∑ m = 1 M     T ( x ; ∅ m ) (10) 第二种是梯度提升树，也是本文所应用的树。该方法也是每一颗树学习前N-1棵树的残差，直到最后得到分类或回归误差最小的树。与第一种不同的是，该方法利用的是梯度下降的方向求解误差值，这样求解的是局部最优解。而做残差求解是求的全局最优，但仍然选择梯度下降的方向求解，主要是因为该方法灵活，可以方便求解分类和回归问题，并且只要能求导的损失函数都可以使用，可以防止过拟合。对于平方差损失，其二者方法求解方法相同。 梯度提升树的算法过程为： 输入训练集 D = { ( x 1 ， y 1 ) ， ( x 2 ， y 2 ) ， ⋯ ， ( x n ， y n ) } ，损失函数 L ( y ， F ( x ) ) ，迭代的次数为M。 1) 使用常量值初始化模型 F 0 ( x ) = arg min ∑ i = 1 N     L ( y i ， γ ) 其中 γ 是常数。 2) 迭代训练模型 For m = 1:M 计算伪残差： r i m = − [ ( L ( y i ， F ( x i ) ) ) ′ F ( x i ) ] F ( x ) = F m − 1 ( x ) (11) 其中 i = 1 ， 2 ， ⋯ ， n 将残差r im 拟合到回归树h m (x) 中，即h m (x) 的训练集为{(x i ， r im )} 计算乘数 γ γ m = arg min ∑ i = 1 n     L ( y i ， F m − 1 ( x i ) + γ h m ( x i ) ) (12) 更新模型 F m ( x ) = F m − 1 ( x ) + γ m h m ( x ) (13) 优点：1) 能够允许不同特征组合拥有不同的判别式；2) 对非线性数据有着很好的处理效果；3) 能解决数据缺失问题；4) 可以自动进行特征选择 [ 20 ]。 2.4. 朴素贝叶斯方法 在机器学习中主要有两种模型，一种是判别模型，另一种是生成模型。前三种是判别模型，贝叶斯是属于生成模型，从数据中学习到联合概率分布，再求出条件概率分布。朴素贝叶斯法分类主要是根据已知的数据学习计算出先验概率，在根据条件独立性假设计算条件概率，最后计算后验概率，对未知数据集进行预测。 设输入的χ属于Rn为n维向量的集合，输出的类标记集合为 l = { c 1 ， c 2 ， ⋯ ， c k } ，输入的向量x属于χ，输出的不同类y属于l，X为空间χ上的随机向量，Y为空间l上的类别标签。训练数据集为： D = { ( x 1 ， y 1 ) ， ( x 2 ， y 2 ) ， ⋯ ， ( x N ， y N ) } 在训练数据集中计算先验概率和条件概率。最后得到后验概率。 先验概率分布： P ( Y = c k ) ，     k = 1 ， 2 ， ⋯ ， K (14) 条件概率分布： P ( X = x | Y = c k ) = P ( X 1 = x 1 ， ⋯ ， X n = x n | Y = c k ) ，     k = 1 ， 2 ， ⋯ ， K (15) 条件独立性假设： P ( X = x | Y = c k ) = P ( X 1 = x 1 ， ⋯ ， X n = x n | Y = c k ) = ∏ j = 1 n     P ( X j = x j | Y = c k ) (16) 根据已经计算的先验概率和条件概率，即可根据贝叶斯理论公式构造出预测模型。对于未知数据x，加载到前面模型，计算出后验概率 P ( Y = c k | X = x ) ，选择后验概率最大的为x的输出类。后验概率计算公式为： P ( Y = c k | X = x ) = P ( X = x | Y = c k ) P ( Y = c k ) ∑ k K   P ( X = x | Y = c k ) P ( Y = c k ) (17) 则朴素贝叶斯法分类的基本公式： y = f ( x ) = arg max P ( Y = c k ) ∏ j n     P ( X ( j ) = x ( j ) | Y = c k ) ∑ k K     P ( Y = c k ) ∏ j n     P ( X ( j ) = x ( j ) | Y = c k ) (18) 上式中分母对所有c k 都是相同的，所以得到分类器为， y = f ( x ) = arg max P ( Y = c k ) P ( X ( j ) = x ( j ) | Y = c k ) (19) 贝叶斯算法的缺点是建立在样本属性独立性假设的基础上，所以如果样本属性有关联时其效果不是很好 [ 21 ]。