【数据挖掘学习笔记】7.决策树与链接分析

一、决策树

决策树

– 提供了一种展示类似在什么条件下会得到什么值这类规则的方法
– 每个分支要么是一个新的决策节点,要么是树的叶子。在沿着决策树从上到下遍历的过程中,在每个节点都会遇到一个问题,对每个节点上问题的不同回答导致不同的分支,最后会到达一个叶子节点。这个过程就是利用决策树进行分类的过程,利用几个变量(每个变量对应一个问题)来判断所属的类别(最后每个叶子会对应一个类别)。

– 功能强大且相当被受欢迎的分类和预测工具。
– 每条路径代表识别一个规则。
– 模型准确和模型明确度之间的选择。
– 把由不同成份组成的总体分成较小且较具同质性的群体。

决策树优点
– 易于理解和解释 人们很容易理解决策树的意义。
– 只需很少的数据准备 其他技术往往需要数据归一化。
– 既可以处理数值型数据也可以处理类别型 数据。其他技术往往只能处理一种数据类型。例如关联规则只能处理类别型的而神经网络只能处理数值型的数据。
– 使用白盒模型. 输出结果容易通过模型的结构来解释。而神经网络是黑箱模型,很难解释输出的结果。
– 可以通过测试集来验证模型的性能 。可以考虑模型的稳定性。
– 鲁棒. 对噪声处理鲁棒。
– 可以很好的处理大规模数据。

决策树缺点
– 训练一棵最优的决策树是一个完全NP问题。 实际应用时决策树的训练采用启发式搜索算法如贪心算法以达到局部最优。
– 决策树创建的过度复杂会导致无法很好的预测训练集之外的数据。这称作过拟合.剪枝机制可以避免这种问题。
– 有些问题决策树没办法很好的解决,例如 异或问题。解决这种问题的时候,决策树会变得过大。
– 主观性较强,可能导致决策失误

决策树建立过程 

  • 决策树生长 
  • 修剪 
  • 规则抽取 
  • 进一步改进 
  • 决策树展示

决策树生长

纯度计算方式
– 基尼值(吉尼Gini,也称总体发散性)
– 熵(entropy,也称信息增益)

基尼值
– 计算从同一个样本中随机取两个抽样,这两个抽样属于同一种类的几率。
– 若一节点包含n种预测值,且每一种预测值在该几点中的出现频率为pi,则该节点的基尼值G为


基尼值越大,纯度越高

基尼值的性质
– 当每种预测值在该节点中的出现频率都一样时(最不纯),Gini值最小。
– 当整个节点只还有一种预测值时(最纯),Gini值最大。
– 取值在0-1之间,最大值为1,最小值大于0
– 纯的节点基尼值是1

– 起源于物理学,用于度量一个热力学系统的无序程度
– 信息领域,熵被用来衡量一个随机变量出现的期望值
– 熵是对信息的不确定性的度量。熵越低,意味着传输的信息越少
– 熵的计算公式


纯度越高,信息量越少,熵越小

熵的性质
– 熵大于等于0
– 当且仅当p1 = p2 = .... = pn时,熵最大
– 纯的节点熵是0
– 条件熵当且仅当X,Y在统计学上相互独立时等号成立。
– 联合熵当且仅当X、Y在统计学上相互独立时等号成立

决策树生成算法——ID3

– 样本有诸多属性
– 按每种属性进行分割
– 计算每种分割之后的纯度
– 选取分割后纯度最大的属性作为分割属性
– 循环直至生成树
  • 各个节点是纯的
  • 达到终止条件,比如深度,纯度阈值等等

C4.5算法

– ID3的改进算法
– 属性选择条件的改进
– 不仅考虑纯度变化
– 还要考虑对样本集合分裂的程度

属性选择条件

信息增益(information gain)


 信息增益率(information gain ratio)
• 分裂信息


• 信息增益率


连续值处理
– 按照样本连续值取值进行排序,得到属性值的取值序列{A1c,A2c,……Atotalc}。
– 在取值序列中生成total-1个分割点。第i(0<i<total)个分割点的取值设置为Vi=(Aic+A(i+1)c)/2,它可以将该节点上的数据集划分为两个子集。
– 从total-1个分割点中选择最佳分割点。对于每一个分割点划分数据集的方式,计算它的信息增益比,并且从中选择信息增益比最大的分割点来划分数据

缺失值处理
– 常见值替代
– 可能值概率替代。为Fi的每个可能值赋予一个概率。例如,给定一个布尔属性Fi,如果结点t包含6个已知Fi_v=1和4个Fi_v=0的实例,那么Fi_v=1的概率是0.6,而Fi_v=0的概率是0.4。于是,实例x的60%被分配到Fi_v=1的分支,40%被分配到另一个分支。
– 丢弃缺失值样本
– 详见数据预处理

生成树方法

– ID3、C4.5、C5.0
– CART
– Quest(quick unbiased efficient statistical tree)
– SLIQ (Supervised Learning In Quest)
– SPRINT (Scalable Parallelizable Induction of Classification Tree)
– PUBLIC(Pruning and Building Integrated in Classification)
– CHAID(Chi-squared Automatic Interaction Detector)

修剪


决策树无限生长会导致过拟合,通过修剪可以降低过拟合

修剪
– 删除以某节点为根的子树使之成为叶子节点
– 节点的分类为节点样例中最常见的分类

修剪方式
– 前期修剪——边生长边剪
– 后期修剪——生长完毕后修剪

前期修剪(预修剪)
– 最为简单的方法就是在决策树到达一定高度的情况下就停止树的生长;
– 到达此结点的实例个数小于某一个阈值也可停止树的生长;
– 到达此结点的实例具有相同的特征向量,而不必一定属于同一类,也可停止生长。这种情况可以处理数据中的数据冲突问题;
– 计算每次生长对系统性能的增益,如果这个增益值小于某个阈值则不进行生长。如果在最好情况下的生长增益都小于阈值,即使有些叶子结点的实例不属于同一类,也停止树的增长。

后剪枝
– 避免噪声影响
– 避免过度拟合(overfit)
– 避免无意义特征指导

剪枝算法核心思想

– 待修剪决策树、剪枝用数据集
– 将各个节点作为修剪候选对象
    • 删除以该节点为根的子树(该节点变为叶子节点)
    • 节点重新分类
    • 重新评估性能
    • 性能不比原来差时删除该节点
    • 选择最大提高精度的节点删除
    • 重复至无法提高性能为止
剪枝算法的变动空间 

– 剪枝评估次序 

    • 自底向上 

    • 自顶向下 

– 节点重新分类 

    • 最常见分类替代 

    • 最佳叶子节点替代 

    • 概率替代 

    • … 

– 性能评估 

    • 精度/错误率 

    • 深度/广度

降低错误剪枝REP( Reduced Error Pruning)
– 独立的剪枝集D
– 基本思路: 
    • 对于决策树 T 的每棵非叶子树s, 用叶子替代这棵子树. 如果s 被叶子替代后形成的新树关于D 的误差等于或小于s关于D 所产生的误差, 则用叶子替代子树s
– 优点:
    • 计算复杂性低
    • 对未知示例预测偏差较小

其他剪枝算法
– 悲观错误剪枝 PEP (Pessimistic Error Pruning)
– 基于错误剪枝 EBP (Error-Based Pruning)
– 代价-复杂度剪枝 CCP (Cost-Complexity Pruning)
– 最小错误剪枝 MEP (Minimum Error Pruning)

度量因子
– 准确率x:你说是1的,有多少真的是1
    • 衡量冒进型错误的依据
– 召回率y:真正是1的,有多少你说是1
    • 衡量保守型错误的依据
– 最理想情况:预测与实际完全吻合
    • 我说是1的都是1,我说的全对
    • 所有的1我都说是1,都找出来了


规则抽取

规则产生
– 读取每个分支(深度优先)得到原始规则集
– 将规则集进行合并
– 得到最终规则集
规则合并
– 逻辑推理
– P→Q⇔¬P∨Q
– 下雨→打雨伞⇔不下雨∨打雨伞
– 只需考虑后置条件相同的前置条件合并


进一步改进

改进
– 纯度计算
– 错误率计算
    • 加权(成本函数)
    • 成本函数的确定是待深入研究的问题
– 多属性组合分类


决策树展示

基本展示——树形


箱型图


树环图




二、图论基础

图的重要性
– 表达对象(节点)及对象间关系(边)
– 直观的展示

图挖掘应用
– 企业管理
    • 仓储、配送
– 市政管理
    • 交通、管线
– 新兴应用
    • 互联网、SNS、推荐系统…

图的基本定义

图论中的“图”并不是通常意义下的几何图形或物体的形状图, 而是以一种抽象的形式来表达一些确定的事物之间的联系的一个数学系统. 

定义1 一个有序二元组(V, E ) 称为一个图, 记为G = (V, E ), 其中
 ① V称为G的顶点集, V≠φ, 其元素称为顶点或结点, 简称点; 
 ② E称为G的边集, 其元素称为边, 它联结V 中的两个点, 如果这两个点是无序的, 则称该边为无向边, 否则, 称为有向边.
 如果V = {v1, v2, … , vn}是有限非空点集, 则称G为有限图或n阶图. 

图解
对于一个图G = (V, E ), 人们常用图形来表示它, 称其为 图解. 凡是有向边, 在图解上都用箭头标明其方向. 

有边联结的两个点称为相邻的点, 有一个公共端点的边称为相邻边. 边和它的端点称为互相关联. 常用d(v)表示图G中与顶点v关联的边的数目, d(v)称为顶点v的度数. 用N(v)表示图G中所有与顶点v相邻的顶点的集合. 

权、回路和连通图

定义2 若将图G的每一条边e都对应一个实数F (e), 则称F (e)为该边的权, 并称图G为赋权图(网络), 记为G = (V, E , F ).

定义3 设G = (V, E)是一个图, v0, v1, …, vk∈V, 且∀1≤i≤k, vi-1vi∈E, 则称v0 v1 … vk是G的一条通路. 如果通路中没有相同的边, 则称此通路为道路. 始点和终点相同的道路称为圈或回路. 如果通路中既没有相同的边, 又没有相同的顶点, 则称此通路为路径, 简称路.

定义4 任意两点均有通路的图称为连通图.

定义5 连通而无圈的图称为树, 常用T表示树. 
图的表示

  • 邻接矩阵
  • 权矩阵



三、链接分析

社会关系网络
– 社会关系网是社会实体(组织中的个人, 称作参与者)及其交互和关系的研究.
– 社会实体的交互和关系可以表示成一个网络或图,
    • 每个顶点(或结点)表示一个参与者, 且
    • 每条边表示一种关系. 
– 从网络中我们可以研究网络结构的性质和每个社会参与者的角色, 地位和声望.
– 我们还可以寻找不同类型的子图, 即由参与者群体构成的社区.
– 发现热点话题,以及热点话题的传播路径

同引分析和引文耦合
– 有关链接的另一个研究领域是学术出版物的引用分析. 
    • 一篇学术著作通常会引用相关的前人工作以给出该著作中涉及的某些思想的出处, 或者将新的想法与既有工作进行对比.
– 当一篇论文引用另一篇论文时, 这两篇论文之间就有了某种关系.
    • 引用分析利用它们之间的这种关系(链接)来进行各种各样的分析.

同引分析
– 如果论文i和论文j都被论文k引用, 那么它们在某种意义上相互关联.
– 它们被更多的相同论文引用, 说明它们之间的关联更强

引文耦合
– 引文耦合采用与同引分析相似的原则.
– 引文耦合将引用同一篇论文的两篇论文联系起来.
    • 如果论文i和论文j都引用论文k, 那么它们之间可能有某种关联.
– 它们共同引用的论文越多, 说明它们之间的关联更强

中心性
– 重要的或突出的参与者是连接到或涉及到大量其他参与者的参与者.
– 在组织中具有大量联系人或与很多其他人通信的人比较重要. 
– 链接也称作连接. 中心参与者是牵涉到大量连接中的参与者.
– 中心性度量
    • 度中心性: 中心参与者是拥有与其他参与者的链接最多的参与者.
    • 接近中心性: 中心参与者是到其他参与者距离最短的参与者.
    • 中介中心性: 中介性用来度量参与者对于其他结点对的控制能力. 如果参与者处在非常多结点的交互路径上, 那么它就是一个重要的参与者

权威性
– 权威相比中心性而言, 是对参与者重要性的一个更加精妙的 度量.
    • 区分: 发出的联系 (链出链接) 和接受的联系 (链入链接). 
– 一个权威的参与者是被大量链接指向的参与者.
    • 为了计算权威: 仅使用链入链接. 
– 中心性与权威的不同点:
    • 中心性主要考虑链出链接
    • 权威主要考虑链入链接
– 权威度量
    • 度权威: 参与者具有越多链入链接, 就越有权威.
    • 邻近权威: 如果能够到达参与者i的参与者与i的平均距离越短, i就约 有权威.
    • 等级权威是包含PageRank和HITS在内的大多数网页链接分析算法 的基础

PageRank
– PageRank依赖于Web的平民化自然特性, 利用Web的庞大链接结构作为单个网页价值或质量的参考.
– PageRank将网页x指向网页y的链接当作是一种投票行为, 由网页x投给网页y.
– 然而, PageRank并不仅仅考虑网页的投票数, 还分析网页的重要性.
    • 那些重要网页投出的选票使得接收这些选票的网页更加重要.
– 这恰好是社会关系网中所提到的 等级权威的思想.

– 从一个网页指向另一个网页的超链接是对目标网页权威的隐含认可.
    • 网页i的链入链接越多, 它的权威越高.
– 指向网页i的网页本身也有权威值. 
    • 一个拥有高权威值的网页指向i比一个拥有低权威值的网页指向i更加重要.
    • 也就是说, 如果一个网页被其他重要网页所指向, 那么该网页也很重要. 

– 根据等级权威, 网页i的重要性(即i的PageRank值)由所有指向i的网页的PageRank值之和决定.
– 由于一个网页可能指向许多其他网页, 所以它的PageRank值被所有它指向的网页共享. 

– 将整个Web看作是一个有向图 G = (V, E). 设网页总数为n. 则网页i的PageRank值 (以P(i)表示) 定义为:


– 其中Oj 是网页j的链出链接数目
Pagerank计算实例


如何计算各个网页的重要性?

假设初始看各网页概率相同,都是1/4,作为初始向量V0。看完一个网页再看下一个网页的情况,计算V1


V2=MV1...迭代,直至收敛。

终止点问题
– 有个死胡同出现,C进去无法出来

– 导致rank为0


陷阱问题 

– 不指向别人,只指向自己


解决方案
– 随机跳转系数
– 一定几率按照浏览跳转规律跳转,一定几率随机跳转



漏斗模型


漏斗模型: – 自顶向下 – 逐层表示流程中的各个环节 – 数量与比例 – 流失原因分析 – 转化率

关键路径
– 顶点表示事件
– 弧表示活动
– 弧上的权值表示活动持续的时间
– 有向图AOE(Activity On Edge Network)网
– 估算工程时间

– 只有在某顶点所代表的事件发生后,从该顶点出发的各有向边所代表的活动才能开始
– 只有在进入某一顶点的各有向边所代表的活动都已经结束,该顶点所代表的事件才能发生
– 关键路径时间是完成项目至少所需的时间
– 关键路径上的活动是影响工程进度的关键
– 缩短关键路径上的活动时间才是最有意义的
– 除时间外,也可用于成本分析等

关键路径算法
– 活动开始的最早时间e(i)——顺向计算
– 活动开始的最晚时间l(i)——逆向计算

– e(i)=l(i)的活动叫关键活动

矩阵分析

– 表示两个因素之间的关联关系
– 行——因素1
– 列——因素2
– 值——关联关系
– 协作过滤矩阵(user-item)

矩阵分解法
– 矩阵A(m*k)*矩阵B(k*n)=?
– 矩阵C(m*n)
– 所以,有矩阵C(m*n)=矩阵A(m*k)*矩阵B(k*n)
– 矩阵C表示因素m与因素n的关联关系
– 可以通过引入因素k,将因素m与因素n的关系,拆分成因素m与因素k的关系以及因素k与因素n的关系

– 因素m与因素n的关系——直观显式表现,内在逻辑原因未知
– 找到与因素m和因素n具有逻辑关系的因素k
– 如果因素m与因素k的关联关系已知(矩阵值已知),则可计算因素k与因素n的关联关系(矩阵值未知)

– 大矩阵的并行计算
– cij仅与A的第i行和B的第j列有关,而与cpq的计算无关
– 分布式并行分别处理cij


猜你喜欢

转载自blog.csdn.net/sigmeta/article/details/80782786
今日推荐