第4章Bayesppt课件.ppt

上传人:本田雅阁 文档编号:2498370 上传时间:2019-04-04 格式:PPT 页数:74 大小:859.01KB
返回 下载 相关 举报
第4章Bayesppt课件.ppt_第1页
第1页 / 共74页
第4章Bayesppt课件.ppt_第2页
第2页 / 共74页
第4章Bayesppt课件.ppt_第3页
第3页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4章Bayesppt课件.ppt》由会员分享,可在线阅读,更多相关《第4章Bayesppt课件.ppt(74页珍藏版)》请在三一文库上搜索。

1、第4章 Microsoft 贝叶斯算法,本章主要内容,贝叶斯算法能够用来研究模型中所有属性之间的关系 朴素贝叶斯算法的基本原理 如何使用参数调整贝叶斯算法 使用DMX创建贝叶斯模型 如何解释贝叶斯模型的结果,案例介绍Voting Records,Voting Records数据集包括已选择的议题,这些议题是2002年众议院中用于选举而提出的,除了每次选举的结果(Y、N或者弃权(NULL),每一行都包含每个代表的姓名和党籍。详见P363 本章中,打算基于国会投票的历史记录,来确定国会议员的党籍属性是共和党(Republican)还是民主党(Democrat)。 案例的重点是哪些属性(议题)可以用

2、来区分议院的党籍,探究数据,数据挖掘简单地说就是发现数据中的规律 不同的算法代表了不同类型的规律,这就是模型/模式 那么拿到一个新的数据集,该如何选择使用什么样的模型来描述其中的规律呢? 最具有指导意义的一句话: 简单的方法通常能很好地工作 在分析实际数据集时,建议采用“简单优先” 的方法论,Occam的剃刀,William of Occam是一个圣芳济会的修道士,1280年出生在英格兰。 Occam用拉丁语讲到:“Entia non sunt multiplicanda sine necessitate” 越简单越好 任何解释应做到:努力使原因的数目变成一个尽可能的最小量。 这种推理的思路被

3、称为Occam的剃刀,意思是理个光头是最简单的,Occam的剃刀,回顾开普勒发现行星运行三大定律的过程。 数据挖掘的目的是找出数据背后隐藏的规律,用另外一种理解解释,就是去除数据中的冗余。 用描述行星运动规律的数学公式表示行星运行的大量观测数据,去除了极大的冗余,并且公式具有可预测性。 当然在开普勒之前也有行星运行的规律,这就是托勒密和亚里士多德的地心说。,Occam的剃刀,今天我们知道行星运动是以太阳为中心的椭圆,可以想象,若将这个以太阳位置为原点的运动方程转换到以地球这个不断变动的原点的坐标系中,得到的方程将有多复杂! 这也是开普勒当时的一个动机:如果将坐标原点设在太阳的位置,得到的方程将

4、简洁的不能再简洁! 得到数据集的最小冗余表示!,探究数据,数据集能够展示很多不同的、简单的数据结构形式 在一个数据集中,也许只有一个属性承担了所有的工作,而其他的都是无关的冗余的属性(1R法) 在另一个数据集里,所有属性也许是独立地,均等地对最终结果作出贡献(Bayes方法) 第三个数据集里,也许拥有一个包含了几个属性的简单逻辑结构,这个结构可以通过一个决策树得到,探究数据,第四个数据集里,也许存在一些独立的规则,能将实例划分到不同的类(规则集) 第五个数据集里,也许展示出不同的属性子集间的依赖性(关联规则) 第六个数据集里,也许包含了一些数值属性间的线性依赖关系(线性回归) 在第七个数据集里

5、,归类到实例空间的具体区域也许要受控于实例间的距离(基于实例的学习,如支持向量机),推断基本规则,有一个能从实例集里方便地找出非常简单分类规则的方法,称为“1规则”(1-rule),简称1R 1R产生一层的决策树,用一个规则集的形式表示,只在某个特定的属性上进行测试 1R是一个简单、廉价的方法,但常常能得到非常好的规则用以描述存在于数据中的结构 真实世界的数据集中的数据结构相当基本,仅用一个属性就足以准确地判断出一个实例的类 在任何事例上,首先采用最简单的方法总是一个好计划,推断基本规则,方法:建立一个只对单个属性进行测试的规测,并进行不同的分支。每一个分支对应一个不同的属性值。分支的类就是训

6、练数据在这个分支上出现最多的类。 规则的误差率就是在训练数据上产生的错误:即不属于多数类的事例的数量。 每一个属性都会产生一个不同的规则集,每条规则对应这个属性的每个值 对每一个属性的规则集的误差率进行评估,从中选出性能最好的一个,1R伪代码,对每个属性 对于这个属性的每个属性值,建立如下的规则 计算每个类别出现的频率 找出出现最频繁的类别 建立规则,将这个类别赋予这个属性值 计算规则的误差率 选择误差率最小的规则,天气数据,天气问题是一个很小的数据集,假设可以进行某种体育运动的天气条件。 数据集中的样本由一些属性值来表示:阴晴,温度、湿度和刮风,结论是是否能玩(yes,no)。 所有的属性值

7、都是名词性值而不是数值 阴晴:sunny、overcast、rainy 温度:hot,mild,cool 湿度:high,normal 刮风:true,false,天气数据,评估天气数据中的属性,出现相等结论时任选一种,残缺值和数值属性,虽然IR方法是一个非常基本的学习算法,但是可适用于残缺值和数值属性 1R将残缺值作为另一个属性来处理 例如天气数据在阴晴属性上存在残缺值,那么在阴晴属性上产生的规则集将指定4个可能的类值:sunny、overcast、rainy和Null,带有数值属性值的天气数据,残缺值和数值属性,对于数值属性,可以采用一个简单的方法转换成名词性属性。 将训练样本按照数值属性

8、的值进行排序,产生一个类值的序列。 例如,根据温度属性值对数值版本的天气数据进行排序后产生的序列如下 64 65 68 69 70 71 72 72 75 75 80 81 83 85 y n y y y n n y y y n y y n 离散通过在这个序列上放置断点来达到分隔,残缺值和数值属性,一种可行的方法是在类值发生变化之处放置断点,产生出8个范畴: y|n|y y y|n n|y y y|n |y y|n 将断点设置在两边样本之间的中间的位置:64.5,66.5,70.5,72,77.5,80.5,84 问题:两个属性值为72的实例拥有相同温度属性值,却属于不同的类别 简单的解决办法

9、:将处于72的断点向右移一个,新的断点是73.5,产生出一个混合的部分,其中no是多数类,残缺值和数值属性,离散存在的一个严重问题是:可能生成大量的类别范畴 1R算法将自然地倾向于选择能被分裂成很多范畴的属性,因为它会将数据集分裂成很多部分,所以实例与它们各自所在部分的多数类同属一类的可能性增大 极端的例子是每个实例中一个属性拥有一个不同的值,如标识码属性表示实例是唯一的。 它在训练数据上产生的误差概率是0,因为每个部分有一个实例,列的值各不相同,一个极端是列在每一行上(几乎)都不相同。 这样的列精确区分每一行,例如 客户姓名 地址 电话号码 客户身符证号码 运输识别码 由于每一个记录上这些数

10、值几乎不同,所以它们妨碍了数据挖掘算法从不同行间找出规律.,列的值各不相同,这些列也可能包含了大量信息 电话号码和地址包含地理信息 发动机的识别号码包含了生产年份、制造商、型号和原产地等信息 客户号码也可能可以知道哪些是最新客户 回忆身份证编码规则和学号编码规则 在这种情况下,重要的特性应该作为派生变量提取出来,而忽略原始列,列的值(几乎)都相同,只有一种值的列 单值的列对于区分不同行不包含任何信息。因为它们缺乏任何信息内容,在数据挖掘中应该忽略 情况 预留字段可能全部都是“NULL”或者“0” 选取一个数据子集,如广东的客户,则地区代码都是“GD” 在本章的例子中,如果共和党和民主党都投某个

11、议案的赞成票,则无法用有关这个议案的投票情况来区分民主党和共和党议员。,过度拟合,高度分支的属性通常不能在测试样本上有很好的表现:实际上标识码属性将不能可在训练实例以外的样本上产生正确的预测。 这种现象被称为过(度)拟合(overfitting),过度拟合,过拟合在实践中是一个重要的问题,产生的原因可能是 噪声导致的过拟合 缺乏代表性样本导致的过拟合 由于存在过拟合问题,所以我们在构建模型时往往允许模型有一定的误差,而不是完全精确。 完全精确的模型可能记忆了太多的噪声数据 需要在过度拟合与模型误差之间取得一个平衡,这涉及到如何评价模型的问题。,残缺值和数值属性,对于1R算法,当一个属性存在大量

12、可能值时,过度拟合就可能发生。 当离散一个数值属性的时候,需要采用一条规则来规定每个范畴上的多数类样本所需达到的最小数量。 例如设置最小样本数量为3 分段过程以下述形式开始: yes no yes yes|yes 在第一段中,确保多数类yes出现3次,后续实例也是yes,所以合并到第一段 y n y y y|n n y y y|n y y n,残缺值和数值属性,新产生的分离结果是 y n y y y|n n y y y|n y y n 除了最后一段,每一段至少包括3个属于多数类的实例。通常在最后一段会出现少于3个多数类实例的情况。 分隔的边界一般要落在两个不同类的样本之间 当相邻的段拥有相同的

13、多数类时,将它们合并并不会影响规则集的意义。最终的离散结果是 y n y y y n n y y y|n y y n,残缺值和数值属性,最终的离散结果是 y n y y y n n y y y|n y y n 从中产生的规则集是 temperature: yes temperature: 77.5 -no 由于第二段中n和y出现的次数相同,所以随机地选择一个。如果选择yes,将没有必要使用任何断点。 这个规则在训练数据集上产生了5个错误,不如在阴晴属性上产生的规则有效,残缺值和数值属性,使用同样方法在湿度属性上产生的规则如下 humidity: yes humidity: 82.5 & no

14、humidity: 95.5 -yes 这个规则在训练集上之产生了3个错误,是天气数据上最好的“1规则”,统计建模,1R方法使用单个属性作为决策的依据,并且选择其中工作性能最好的那个属性。 另一个简单技术是对于一个给定的类,使用所有属性,让它们对决策作出同等重要、彼此独立的贡献。 当然,现实中的数据集里的属性并不同等重要,也不彼此独立(作出这种结论是需要验证的)。但是这种思想引出一个简单方案,而且在实际中表现极佳 下面给出一个天气数据的汇总,它统计了每种属性值配对和玩的每个属性值(yes和no),统计建模,通过已有的数据来判断新的一天玩的情况,统计建模,假设我们认为天气数据表中的5个属性是同等

15、重要、彼此独立的,则将与其对应的分数相乘 yes的似然:2/9*3/9*3/9*3/9*9/14=0.0053 no的似然:3/5*1/5*4/5*3/5*5/14=0.0206,贝叶斯规则,新的一天要么可以玩,要么不可以玩。所以通过规范化将这两个结果转换成概率,使它们的概率之和为1。 yes的概率=0.0053/(0.0053+0.0206)=20.5% no的概率=0.0206/(0.0053+0.0206)=79.5% 对于这个新的一天,玩是no的可能性是yes的4倍 以上的简单而且直观的方法基于有条件概率的贝叶斯规则。,贝叶斯规则,贝叶斯规则指出,如果存在一个假说H,和基于假设的例证E

16、,则 PrA指事件A发生的概率,PrA|B是基于另一事件B发生,事件A发生的概率。假说H为玩的结果是yes,那么PrH|E将是20.5%,贝叶斯规则,例证E是新的一天的属性值的特定组合:阴晴=sunny,温度度=cool,湿度=high,刮风=true。这4个例证分别用E1、E2、E3和E4表示。 假设这些例证是独立的,将概率相乘后就得到它们的组合概率: 分母部分会在最后的单位化步骤中被消除。,贝叶斯规则,最后的Pryes是在不知道任何例证E的情况下,结论是yes的概率,也就是对于所涉及的特定日期的情况一无所知,称为假说H的先验概率。 在这个例子中,先验概率是9/14,因为14个训练样本里有9

17、个样本的玩属性是yes。,朴素贝叶斯,这种方法称为朴素贝叶斯(Nave Bayes),因为它基于贝叶斯规则并“朴素”地假设属性独立。 只有当事件彼此独立时,概率相乘才是有效的 属性独立的假设,在现实生活中是过于简单的假设,但在实际数据集上进行测试时,朴素贝叶斯工作的非常好,尤其是去掉输入属性中的冗余成分后,朴素贝叶斯,如果某个属性值没有联合每一个类值一起出现在训练集里,朴素贝叶斯法将出错。 在一个不同的天气数据集中,所有训练数据的属性值阴晴=sunny,总是伴随结论no。 属性值阴晴=sunny是yes的概率Prsunny|yes是0。概率0会超过其它的概率掌握了否决权。 根据频率来计算概率的

18、方法进行小的调整,可以弥补这个缺陷。,,,上表中给出了每个属性的每种取值对应的频率。在每个分子上加上1,在分母上加上所有取值的总个数。 例如对于阴晴属性,sunny、overcast和rainy出现的频率分别是2/9、4/9、3/9。给每个分子加上1,分母加上3,得到的概率分别是 3/12、5/12、4/12,在每个分子上加1保证当一个属性值出现0次时,得到一个很小但是非0的概率。 在每一个计数结果上加1的方法是一个标准的技术,称为拉普拉斯估计器(Laplace estimator)。 更一般的,使用一个很小的常量 在实践中,只要训练实例的数量合理,使用不同的几乎没有差别。,残缺值,使用贝叶斯

19、公式的一个优势是可以很自然地处理残缺值。 例如如果表中阴晴的属性是残缺值,计算时只要省略这个属性,结果是: yes的似然=3/9*3/9*3/9*9/14=0.0238 no的似然=1/5*4/5*3/5*5/14=0.0343 这两个值分别比前面的计算值大很多,原因是缺少了其中的一个分数。不过问题在于最终还要做规范化 yes的似然41%,no的似然59%,,Microsoft Naive Bayes 算法,Microsoft Naive Bayes 算法是 SSAS 提供的一种分类算法,用于预测性建模。 该算法在假定列互不相关的前提下计算输入列和可预测列之间的条件概率。 该算法的名称 Nai

20、ve Bayes 即由这一无关性假定而来,因为基于这种理想化的假定,该算法未将可能存在的依赖关系考虑在内。,Microsoft Naive Bayes 算法,与其他 Microsoft 算法相比,该算法所需的运算量小,因而能够快速生成挖掘模型,以发现输入列和可预测列之间的关系。 可以使用该算法进行初始数据探测,然后根据该算法的结果使用其他运算量较大、更加精确的算法创建其他挖掘模型。,示例,作为正在进行的促销策略,Adventure Works Cycle 公司的市场部已经决定通过发送宣传资料将目标定位为潜在的客户。 为了降低成本,他们只向有可能做出反应的客户发送宣传资料。 该公司将有关客户统计

21、数据以及对上一邮件的反映的信息存储在数据库中。他们希望利用这些数据将潜在客户和具备相同特征并曾经购买过公司产品的客户进行对比,以了解年龄和位置等统计数据如何帮助预测客户对促销的响应。,示例,Adventure Works Cycle 公司希望找出购买自行车的客户与未购买自行车的客户之间的差别。 使用 Microsoft Naive Bayes 算法,市场部能够快速预测特定客户群的结果,进而确定最有可能对邮件做出响应的客户。 使用 BI Dev Studio 中的 Naive Bayes 查看器,能够以直观的方式专门调查哪些输入列有助于对宣传资料做出积极响应。,算法的原理,在给定可预测列的各种可

22、能状态的情况下,Microsoft Naive Bayes 算法将计算每个输入列的每种状态的概率。 使用 BI Dev Studio 中的 Microsoft Naive Bayes 查看器可以直观地观察算法分布状态的方式,如下图所示。,Microsoft Naive Bayes 查看器可列出数据集中的每个输入列。 如果提供了可预测列的每种状态,它还会显示每一列中状态的分布情况。可以利用该视图确定在区分可预测列状态中具有重要作用的输入列。 例如,此图的 Commute Distance 列中,通勤距离为一至二英里的客户购买自行车的概率是 0.387,不购买自行车的概率是 0.287。 本例中,

23、该算法使用从诸如上下班路程之类的客户特征得出的数字信息来预测客户是否会购买自行车。,使用算法,Naive Bayes 模型必须包含一个键列、若干输入列以及一个可预测列。 所有列都必须是离散列或经过离散化的列。,Naive Bayes 算法的参数,MAXIMUM_INPUT_ATTRIBUTES 指定算法在调用功能选择之前可以处理的最大输入属性数。 如果目前的属性个属比这个参数值还要大,则该算法将会选择最重要的属性作为输入,忽略剩下的属性。 如果将此值设置为 0,则为输入属性禁用功能选择。 默认值为 255。,Naive Bayes 算法的参数,MAXIMUM_OUTPUT_ATTRIBUTES

24、 指定算法在调用功能选择之前可以处理的最大输出属性数。 如果目前的属性个属比这个参数值还要大,则该算法将会选择最重要的属性作为输入,忽略剩下的属性。 如果将此值设置为 0,则为输出属性禁用功能选择。 默认值为 255。,Naive Bayes 算法的参数,MAXIMUM_STATES 指定算法支持的最大属性状态数。如果属性的状态数大于该最大状态数,算法将使用该属性的最常见状态,并将剩余状态视为不存在。 默认值为 100。,Naive Bayes 算法的参数,MINIMUM_DEPENDENCY_PROBABILITY 指定输入属性和输出属性之间的最小依赖关系概率。该值用于限制算法生成的内容大小

25、(去除与输出属性相关不大的输入属性)。 该属性可设置为介于 0 和 1 之间的值。该值越大,模型内容中的属性数就越少。 默认值为 0.5。,4.4.1 DMX,注意Microsoft_Naive_Bayes算法只支持离散的属性,所以任何联系的输入列或者输出列必须离散化后才可以供该算法使用。 使用下述语句来创建投票问题的数据挖掘模型,创建模型,create mining model votingrecords ID long key, Party text discrete predict, campaign Finance Overhaul text discrete, Unemploymen

26、t and Tax Benefits text discrete, . using Microsoft_Naive_Bayes 问题:太多字段要输入,有没有简单的办法?,训练模型,如果源表中所有的列与模型中的列是一样的,并且源表中列与模型中列的顺序是一样的,则可以化简Insert into语句,不需要知道任何列的名字 insert into VotingRecords openquery(Voting Records,select * from VotingRecords),数据的使用,通常的数据分析方法将已知数据集分为三个部分: 训练集(training set):用于建立模型 验证集(Va

27、lidation set):用于筛选出模型集中最好的一个模型 测试集(test set):用于确定模型在未使用数据上的工作情况,4.4.2 理解贝叶斯模型的内容,4.4.3 浏览贝叶斯模型,SSAS 中的 Microsoft Naive Bayes 查看器显示使用 Microsoft Naive Bayes 算法生成的挖掘模型。 在 Analysis Services 中浏览挖掘模型时,该模型会使用模型的相应查看器,显示在数据挖掘设计器的“挖掘模型查看器”选项卡上。 由于 Naive Bayes 模型的主要用途之一是提供一种快速浏览数据集中数据的方法,因此 Microsoft Naive Ba

28、yes 查看器提供了多种方法来显示可预测属性与事例表的输入属性之间的交互。,4.4.3 浏览贝叶斯模型,Microsoft Naive Bayes 查看器提供了以下用于浏览数据的选项卡: 依赖关系 属性配置文件 属性特征 属性对比,依赖关系网络视图,“依赖关系网络”选项卡显示模型中的输入属性与可预测属性之间的依赖关系。 查看器左侧的滑块可起到与依赖关系强度相联系的筛选器的作用。降低滑块将只显示最强链接。 选择一个节点后,查看器将突出显示该节点特定的依赖项。 例如,如果选择一个可预测节点,查看器也将突出显示有助于预测该可预测节点的各个节点。,依赖关系网络视图,查看器底部的图例说明了图表中不同颜色

29、代码所代表的依赖关系类型。 例如,如果选择一个可预测节点,该节点将呈青绿色,而预测所选节点的节点呈橙色。 注意:除非在挖掘模型向导中标记所有列为可预测列和输入列,或者在挖掘模型编辑器中标记所有的列为Predict,否则无法看到模型中所有的关系 注意,图中的name属性和其他属性没有依赖关系,为什么?,属性配置文件视图,“属性配置文件”选项卡在网格中显示直方图。可以使用此网格将在“可预测”框中选择的可预测属性与模型中的所有其他属性进行比较。 该选项卡中的每一列表示可预测属性的一种状态。 如果可预测属性有很多状态,则可以通过调整“直方图条”来更改直方图中显示的状态数。,属性配置文件视图,如果选择的

30、数字小于属性的状态总数,则这些状态按支持顺序列出,且剩余状态收集到一个灰色存储桶中。 单击“显示图例”复选框将显示一个将直方图的颜色关联到属性状态的图例。,属性特征视图,属性特征视图允许选择输出属性和值,并且显示对于该属性和值所在的事例的描述 这个选项卡主要是为“What are people who_ like?”这种议题提供答案。 如下图显示了民主党的特征,属性特征视图,若要使用“属性特征”选项卡,请从“属性”列表中选择一个可预测属性,然后从“值”列表中选择所选属性的状态。 设置这些变量时,“属性特征”选项卡将显示与所选属性的选定事例相关联的属性的状态。 属性按重要性进行排序。 注意 属性

31、特征并不隐含预测能力 小于最小节点分数的输入将不会显示,属性对比视图,若要使用“属性对比”选项卡,从“属性”、“值 1”和“值 2”列表中选择一个可预测属性以及它的两个状态。然后,“属性对比”选项卡上的网格将在列中显示以下信息: Attribute 数据集中的其他属性,它包含一个高度倾向于可预测属性的某个状态的状态。 Values “属性”列中指示的属性状态。,属性对比视图,Favors 该属性的状态倾向于“值 1”中设置值的程度。 Favors 该属性的状态倾向于“值 2”中设置值的程度。,属性对比视图,该视图为最感兴趣的问题提供答案A和B有什么区别?这个视图显示一个修改了的龙卷风图,这个图指出哪一个因素支持哪一个状态 注意:倾向于的解释是更有可能属于这一类,并不是说另一类没有这个选项,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1