数据挖掘--分类完整1ppt课件_第1页
数据挖掘--分类完整1ppt课件_第2页
数据挖掘--分类完整1ppt课件_第3页
数据挖掘--分类完整1ppt课件_第4页
数据挖掘--分类完整1ppt课件_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020/5/22,.,1,第三章分类方法内容提要,分类的基本概念与步骤基于距离的分类算法决策树分类方法贝叶斯分类实值预测与分类有关的问题,2020/5/22,.,2,分类的流程,根据现有的知识,我们得到了一些关于爬行动物和鸟类的信息,我们能否对新发现的物种,比如动物A,动物B进行分类?,2020/5/22,.,3,分类的流程,步骤一:将样本转化为等维的数据特征(特征提取)。所有样本必须具有相同数量的特征兼顾特征的全面性和独立性,2020/5/22,.,4,分类的流程,步骤二:选择与类别相关的特征(特征选择)。比如,绿色代表与类别非常相关,黑色代表部分相关,灰色代表完全无关,2020/5/22,.,5,分类的流程,步骤三:建立分类模型或分类器(分类)。分类器通常可以看作一个函数,它把特征映射到类的空间上,2020/5/22,.,6,如何避免过度训练,分类也称为有监督学习(supervisedlearning),与之相对于的是无监督学习(unsupervisedlearning),比如聚类。分类与聚类的最大区别在于,分类数据中的一部分的类别是已知的,而聚类数据的类别未知。建立分类模型需要学习一部分已知数据,如果训练时间过长,或者预测模型参数太多而样本较少,将导致过度训练(overfitting)。,2020/5/22,.,7,如何避免过度训练,避免过度训练最重要一点是,模型的参数量应远小于样本的数量。应建立训练集(trainingset)和测试集(testset)。训练集应用于建立分类模型测试集应用于评估分类模型K折叠交叉验证(K-foldcrossvalidation):将初始采样分割成K个子样本(S1,S2,.,Sk),取K-1个做训练集,另外一个做测试集。交叉验证重复K次,每个子样本都作为测试集一次,平均K次的结果,最终得到一个单一估测。,2020/5/22,.,8,分类模型的评估,真阳性(TruePositive):实际为阳性预测为阳性真阴性(TrueNegative):实际为阴性预测为阴性假阳性(FalsePositive):实际为阴性预测为阳性假阴性(FalseNegative):实际为阳性预测为阴性预测是否正确预测结果比如预测未知动物是鸟类还是爬行动物,阳性代表爬行动物,阴性代表非爬行动物,请大家阐述TP=10,TN=8,FN=3,FP=2是什么意义,2020/5/22,.,9,分类模型的评估,灵敏度(Sensitivity):TP/(TP+FN)也称为查全率(Recall)数据集共有13只爬行动物,其中10只被正确预测为爬行动物,灵敏度为10/13特异度(Specificity):TN/(TN+FP)数据集有10只非爬行动物,其中8只被预测为非爬行动物,特异度为8/10精度(Precision):TP/(TP+FP)分类器预测了12只动物为爬行动物,其中10只确实是爬行动物,精度为10/12准确率(Accuracy):(TP+TN)/(TP+TN+FN+FP)数据集包含23只动物,其中18只预测为正确的分类,准确率为18/23,2020/5/22,.,10,分类模型的评估,对于非平衡(unblanced)的数据集,以上指标并不能很好的评估预测结果。非平衡的数据集是指阳性数据在整个数据集中的比例很小。比如,数据集包含10只爬行动物,990只爬行动物,此时,是否预测正确爬行动物对准确率影响不大。更平衡的评估标准包括马修斯相关性系数(Matthewscorrelationcoefficient)和ROC曲线。马修斯相关性系数定义为,2020/5/22,.,11,分类模型的评估,ROC曲线通过描述真阳性率(TPR)和假阳性率(FPR)来实现,其中TPR=TP/(TP+FN),FPR=FP/(FP+TN)。大部分分类器都输出一个实数值(可以看作概率),通过变换阈值可以得到多组TPR与FPR的值。,2020/5/22,.,12,第三章分类方法内容提要,分类的基本概念与步骤基于距离的分类算法决策树分类方法贝叶斯分类实值预测与分类有关的问题,2020/5/22,.,13,基于距离的分类算法的思路,定义4-2给定一个数据库D=t1,t2,tn和一组类C=C1,Cm。假定每个元组包括一些数值型的属性值:ti=ti1,ti2,tik,每个类也包含数值性属性值:Cj=Cj1,Cj2,Cjk,则分类问题是要分配每个ti到满足如下条件的类Cj:sim(ti,Cj)=sim(ti,Cl),ClC,ClCj,其中sim(ti,Cj)被称为相似性。在实际的计算中往往用距离来表征,距离越近,相似性越大,距离越远,相似性越小。距离的计算方法有多种,最常用的是通过计算每个类的中心来完成。,2020/5/22,.,14,基于距离的分类算法的一般性描述,算法4-1通过对每个样本和各个类的中心来比较,从而可以找出他的最近的类中心,得到确定的类别标记。,算法4-1基于距离的分类算法输入:每个类的中心C1,Cm;待分类的元组t。输出:输出类别c。(1)dist=;/距离初始化(2)FORi:=1tomDO(3)IFdis(ci,t)distTHENBEGIN(4)ci;(5)distdist(ci,t);(6)END.,2020/5/22,.,15,基于距离的分类方法的直观解释,(a)类定义,(b)待分类样例,(c)分类结果,2020/5/22,.,16,距离分类例题,C1=(3,3,4,2),C2=(8,5,-1,-7),C3=(-5,-7,6,10);请用基于距离的算法给以下样本分类:(5,5,0,0)(5,5,-5,-5)(-5,-5,5,5),2020/5/22,.,17,K-近邻分类算法,K-近邻分类算法(KNearestNeighbors,简称KNN)通过计算每个训练数据到待分类元组的距离,取和待分类元组距离最近的K个训练数据,K个数据中哪个类别的训练数据占多数,则待分类元组就属于哪个类别。,算法4-2K-近邻分类算法输入:训练数据T;近邻数目K;待分类的元组t。输出:输出类别c。(1)N=;(2)FOReachdTDOBEGIN(3)IF|N|KTHEN(4)N=Nd;(5)ELSE(6)IFuNsuchthatsim(t,u)sim(t,d)THENBEGIN(7)N=N-u;(8)N=Nd;(9)END(10)END(11)c=classtowhichthemostuN.,2020/5/22,.,18,KNN的例子,姓名性别身高(米)类别Kristina女1.6矮Jim男2高Maggie女1.83高Martha女1.88高Stephanie女1.7矮Bob男1.85中等Kathy女1.6矮Dave男1.7矮Worth男2.2高Steven男2.1高Debbie女1.8高Todd男1.82中等Kim女1.7中等Amy女1.75中等Wynette女1.73中等,只使用身高做特征,K=3,对于样本应属于哪个类别?仅使用同性别样本做训练,K=3,对于样本应属于哪个类别?,2020/5/22,.,19,第三章分类方法内容提要,分类的基本概念与步骤基于距离的分类算法决策树分类方法贝叶斯分类实值预测与分类有关的问题,2020/5/22,.,20,决策树表示与例子,年龄?,学生?,是,信用?,40,否,是,良好,一般,是,否,是,否,2020/5/22,.,21,决策树表示与例子,决策树(DecisionTree)的每个内部结点表示一个属性(特征),每个分枝代表一个特征的一个(类)取值;每个树叶结点代表类或类分布。决策树分类方法采用自顶向下的递归方式,在决策树的内部结点进行属性的比较,从而判断从该结点向下的分枝,在决策树的叶结点得到结论。从决策树的根到叶结点的一条路径就对应着一条规则,整棵决策树就对应着一组规则。决策树分类模型的建立通常分为两个步骤:决策树生成决策树修剪,2020/5/22,.,22,决策树生成算法描述,算法4-3Generate_decision_tree(samples,attribute_list)/*决策树生成算法*/输入:训练样本samples,由离散值属性表示;输出:一棵决策树。(1)创建结点N;(2)IFsamples都在同一个类CTHEN返回N作为叶结点,以类C标记;(3)IFattribute_list为空THEN返回N作为叶结点,标记为samples中最普通的类;/多数表决(4)选择attribute_list中具有最高信息增益的属性test_attribute;(5)标记结点N为test_attribute;(6)FORtest_attribute的每个取值ai由结点N长出一个条件为test_attribute=ai的分枝;(7)设si是samples中test_attribute=ai的样本的集合;/一个划分(8)IFsi为空THEN回退到test_attribute的其它取值;(9)ELSE加上一个由Generate_decision_tree(si,attribute_list-test_attribute)返回的结点;,2020/5/22,.,23,决策树修剪算法,基本的决策树构造算法没有考虑噪声,因此生成的决策树完全与训练集拟合。在有噪声情况下,将导致过分拟合(Overfitting),即对训练数据的完全拟合反而使对现实数据的分类预测性能下降。比如每个样本都是一个叶子节点。现实世界的数据一般不可能是完美的,可能缺值(MissingValues);数据不完整;含有噪声甚至是错误的。剪枝是一种克服噪声的基本技术,同时它也能使树得到简化而变得更容易理解。有两种基本的剪枝策略。,2020/5/22,.,24,决策树修剪算法,预先剪枝(Pre-Pruning):在生成树的同时决定是继续对不纯的训练子集进行划分还是停机。后剪枝(Post-Pruning):是一种拟合+化简(fitting-and-simplifying)的两阶段方法。首先生成与训练数据完全拟合的一棵决策树,然后从树的叶子开始剪枝,逐步向根的方向剪。剪枝时要用到一个测试数据集合(TuningSet或AdjustingSet),如果存在某个叶子剪去后能使得在测试集上的准确度或其他测度不降低(不变得更坏),则剪去该叶子;否则停机。理论上讲,后剪枝好于预先剪枝,但计算复杂度大。,2020/5/22,.,25,决策树修剪算法,构造好的决策树的关键在于如何选择属性进行树的拓展。研究结果表明,一般情况下,树越小则树的预测能力越强。由于构造最小的树是NP-难问题,因此只能采取用启发式策略来进行。属性选择依赖于各种对例子子集的不纯度(Impurity)度量方法,包括信息增益(InformatinGain)、信息增益比(GainRatio)、Gini-index、距离度量(DistanceMeasure)、J-measure等。,2020/5/22,.,26,ID3算法,ID3是一个著名决策树生成方法:决策树中每一个非叶结点对应着一个非类别属性(特征),树枝代表这个属性的值。一个叶结点代表从树根到叶结点之间的路径对应的记录所属的类别属性值。每一个非叶结点都将与属性中具有最大信息量的非类别属性相关联。采用信息增益来选择能够最好地将样本分类的属性。对ID3算法采用如下方式讲解:给出信息增益对应的计算公式;通过一个例子来说明它的主要过程。,2020/5/22,.,27,信息增益的计算,设S是s个数据样本的集合,定义m个不同类Ci(i=1,2,m),设si是Ci类中的样本的数量。对给定的样本S所期望的信息值由下式给出:其中pi是任意样本属于Ci的概率:si/s。例题:数据集有4个类,分别有8个,4个,2个,2个样本,求该数据集的信息值。问题:信息值的取值范围是什么?,2020/5/22,.,28,信息增益的计算,例题:数据集有2个类,求该数据集的信息值。,2020/5/22,.,29,信息增益的计算,设属性A具有个不同值a1,a2,av,可以用属性A将样本S划分为S1,S2,Sv,设Sij是Sj中Ci类的样本数,则由A划分成子集的熵由下式给出:有A进行分枝将获得的信息增益可以由下面的公式得到:,使用属性后的信息值,未使用属性的信息值,2020/5/22,.,30,信息增益的计算,例题:数据集有2个类。使用是否学生作为属性,求该属性的信息增益。使用信用状况作为属性,求该属性的信息增益。,2020/5/22,.,31,ID3算法的例子,选择信息增益最大的属性特征作为根节点。Gain(年龄)=0.342Gain(收入)=0Gain(是否学生)=0.333Gain(信用状况)=0,年龄?,?,?,是,40,2020/5/22,.,32,ID3算法的例子,对于P(Cj|X),对任意的j=1,2,m,ji。,2020/5/22,.,48,朴素贝叶斯分类(续),根据贝叶斯定理:由于P(X)对于所有类为常数,只需要P(X|Ci)*P(Ci)最大即可。注意,类的先验概率可以用P(Ci)=Si/S计算,其中Si是类Ci中的训练样本数,而S是训练样本总数。因此问题就转换为计算P(X|Ci)。,2020/5/22,.,49,朴素贝叶斯分类(续),给定具有许多属性的数据集,计算P(X|Ci)的计算量可能非常大且不易计算。为降低计算P(X|Ci)的难度,可以做类条件独立的朴素假定。给定样本的类标号,假定属性值相互条件独立,即在属性间,不存在依赖关系。这样P(收入低,是学生,信用良好|买电脑)=P(收入低|买电脑)*P(是学生|买电脑)*P(信用良好|买电脑),2020/5/22,.,50,朴素贝叶斯分类(续),其中概率P(x1|Ci),P(x2|Ci),P(xn|Ci)可以由训练样本估值。如果Ak是离散属性,则P(xk|Ci)=sik|si,其中sik是在属性Ak上具有值xk的类Ci的训练样本数,而si是Ci中的训练样本数。如果Ak是连续值属性,则通常假定该属性服从高斯分布。因而,是高斯分布函数,而分别为平均值和标准差。,2020/5/22,.,51,朴素贝叶斯分类(续),例题:计算P(收入低|不买电脑)P(是学生|不买电脑)P(信用良好|不买电脑)假设收入,是否学生,信用状况互相独立,计算P(收入低,是学生,信用良好|不买电脑),2020/5/22,.,52,朴素贝叶斯分类(续),对未知样本X分类,也就是对每个类Ci,计算P(X|Ci)*P(Ci)。样本X被指派到类Ci,当且仅当P(Ci|X)P(Cj|X),1jm,ji,换言之,X被指派到其P(X|Ci)*P(Ci)最大的类。,2020/5/22,.,53,朴素贝叶斯分类举例,数据样本有属性年龄,收入,是否学生和信用状况。类标号属性”是否买电脑“有两个不同值是,否。设C1对应于类”买电脑”;则C2对应于类”不买电脑”。我们希望分类的未知样本为:X=(”年龄=30”,”收入=中”,”是学生”,”信用一般”),2020/5/22,.,54,朴素贝叶斯分类举例,我们需要最大化P(X|Ci)*P(Ci),i=1,2。每个类的先验概率P(Ci)可以根据训练样本计算:P(C1)=P(买电脑)=P(C2)=P(不买电脑)=计算P(X|Ci)P(年龄=30,收入=中,是学生,信用一般|买电脑)P(年龄=30,收入=中,是学生,信用一般|不买电脑),2020/5/22,.,55,朴素贝叶斯分类举例,P(年龄=30,收入=中,是学生,信用一般|买电脑)=P(年龄=30|买电脑)*P(收入=中|买电脑)*P(是学生|买电脑)*P(信用一般|买电脑)P(年龄=30,收入=中,是学生,信用一般|不买电脑)=P(年龄=30|不买电脑)*P(收入=中|不买电脑)*P(是学生|不买电脑)*P(信用一般|不买电脑),2020/5/22,.,56,朴素贝叶斯分类举例,假设属性之间独立P(年龄P(X|不买电脑),因此对于样本X,朴素贝叶斯分类预测为是。,2020/5/22,.,57,第三章分类方法内容提要,分类的基本概念与步骤基于距离的分类算法决策树分类方法贝叶斯分类基于规则的分类与分类有关的问题,2020/5/22,.,58,使用IF-THEN规则分类,使用规则的分类法是使用一组IF-THEN规则进行分类。IF条件THEN结论比如IF(年龄20AND学生=是)THEN买电脑=是IF的部分称为前提,THEN的部分称为规则的结论规则可以用它的覆盖率和准确率来评价ncovers是条件(前提)覆盖的样本数,ncorrect是规则正确分类的样本数。,2020/5/22,.,59,使用IF-THEN规则分类,规则(收入=低)(信用状况良好)(是否买电脑=是)的覆盖率为3/8,而它测准确率为1/3。规则(信用状况=良好)(是否买电脑=否)的覆盖率为7/8,而它测准确率为4/7。,2020/5/22,.,60,使用IF-THEN规则分类,如果一个规则R被一个样本X满足,则称规则R被X触发。比如X=(年龄=18,是学生,信用良好)R为IF(年龄20AND学生=是)THEN买电脑=是则X的类别为买电脑如果一个样本X同时触发了多个规则,我们需要制定解决冲突的策略。规模序激活具有最多属性测试的触发规则规则序将规则按重要性进行排序,按顺序进行促发如果一个样本X无法促发任何规则建立一个缺省或者默认规则,2020/5/22,.,61,使用决策树来提取规则,决策树的规则是互斥与穷举的互斥意味着规则不会存在冲突,因此每个样本只能促发一个规则穷举意味着一个样本总能促发一个规则由于每个树叶对应一个一条规则,提取的规则并不比决策树简单。,年龄?,信用状况?,收入?,是,40,否,是,是,否,良好,一般,高,低,2020/5/22,.,62,使用顺序覆盖算法的规则归纳,在提取规则时,一个现实的问题是是否需要对现有规则进行拓展,IF(年龄20)THEN买电脑是否需要拓展为IF(年龄。AQR允许测试做=,。Selectors的合取被称为复合(Complex),Complexes之间的析取被称为覆盖(Cover)。如果一个表达式对某个样本为真,则我们称其为对这个样本的一个覆盖。这样,一个空Complex覆盖所有的样本,而一个空Cover不覆盖任何样本。在AQR中,一个新样本被区分是看其属于哪个推导出来的规则。如果该样本只满足一条规则,则这个样本就属于这条规则;如果该样本满足多条规则,则被这些规则所预测的最频繁的分类被赋予这条规则;如果该样本不属于任何规则,则其分类为样本集中最频繁的分类。,2020/5/22,.,85,AQR算法描述,算法4-5AQR输入:正例样本POS;反例样本NEG。输出:覆盖COVER。(1)COVER=;/初始化COVER为空集(2)WHILECOVERdoesnotcoverallpositiveexamplesinPOSDOBEGIN(3)SelectaSEED;/选取一个种子SEED,例如没有被COVER覆盖的一个正样例(4)CallprocedureSTAR(SEED,NEG);/产生一个能覆盖种子而同时排除所有反例的星(5)SelectthebestComplexBESTfromtheSTARaccordingtouser-definedcriteria;/*从星中选取一个最好的复合*/(6)AddBESTasanextradisjucttoCOVER/*把最好的复合与COVER合取,形成新的COVER*/(7)END(8)RETURNCOVER.在算法AQR中调用了过程STAR,来排除所有的反例,产生覆盖种子的星。,2020/5/22,.,86,AQR算法描述(续),算法4-6STAR输入:种子SEED;反例NEG。输出:星STAR。(1)初始化STAR为空Complex(2)WHILEoneormoreComplexesinSTARcoverssomenegativeexamplesinNEGBEGIN/*如果STAR中的一个或多个Complex覆盖NEG中的负样例*/(3)SelectanegativeexampleEnegcoveredbyaComplexinSTAR;/*选取一个被STAR中的Complex覆盖的负样例*/(4)LetEXTENSIONbeallSelectorsthatcoverSEEDbutnotENEG;/*令EXTENSION为那些覆盖SEED但不覆盖ENEG的Selectors;*/(5)LetSTARbethesetxy|xSTAR,yEXTENSION;/*令STAR=xy|xSTAR,yEXTENSION;*/(6)RemoveallComplexesinSTARsubsumedbyotherComplexesinSTAR;/*从STAR中除去被其他Complexes所包含的Complexes;*/(7)RemovetheworstComplexesfromSTARUNTILsizeofSTARislessthanorequaltouser-definedmaximum(maxstar)/*删除STAR中最坏的Complex直到STAR的大小等于或小于用户定义的最大数目maxstar*/(8)END(9)RETURNSTAR./*返回一系列覆盖SEED但不覆盖NEG的规则*/,2020/5/22,.,87,AQR算法举例,假设现有一个训练集,其包含两种属性:size(属性值:micro,tiny,mid,big,huge,vast)type(属性值:bicycle,motorcycle,car,prop,jet,glider)现有正例、反例样本分别如表4-6,表4-7所示:,下面给出用AQR算法对giant2-wheeler类的规则进行获取过程,具体步骤如下:()COVER=。()空cover不覆盖任何样本,进入循环。()一开始COVER并没有覆盖任何正例,假定从正例中选取的SEED为size=huge,type=bicycle。()调用STAR(SEED,NEG)去产生一个覆盖SEED但不包含NEG的STAR集合;初始化STAR为空,即STAR=。空的complex覆盖所有样例,STAR覆盖多个负样例,进入循环。a)选取一个被STAR中的复合覆盖的负样例ENEG,假定被选取的是Eneg=size=tiny,type=motorcycle。b)使EXTENSION为所有覆盖SEED但不覆盖ENEG的选择,则EXTENSION包括size=huge和type=bicycle,则又根据STAR=xy|xSTAR,yEXTENSION,因此,STAR=size=hugetype=bicycle。c)在这里定义maxstar为2,可不对STAR进行精简。d)接着选取另一个被STAR中的复合覆盖的负样例ENEG,显然已经没有这样的负样例,因此,STAR=size=hugetype=bicycle。从STAR(SEED,NEG)返回。,反例样本sizetypeclassTinymotorcycleconventionaltransportationtinycarconventionaltransportationmidcarconventionaltransportationmicrojetfastplaneTinyjetfastplaneMidjetfastplane,正例样本sizetypeclassHugebicyclegiant2-wheelerHugemotorcyclegiant2-wheeler,2020/5/22,.,88,AQR算法举例,(5)BEST=size=hugetype=bicycle,COVER=size=hugetype=bicycle。(6)显然COVER不能覆盖所有的正例,从正例中选取另一个SEED=size=huge,type=motorcycle。(7)调用STAR(SEED,NEG)去产生一个覆盖SEED但不包含NEG的STAR集合。初始化STAR为空,即STAR=;空的complex覆盖所有样例,所以STAR覆盖负样例,进入循环;a)假定被选取的是Eneg=size=tiny,type=motorcycle;b)使EXTENSION为所有覆盖SEED但不覆盖Eneg的选择,则EXTENSION包括size=huge,则又根据STAR=xy|xSTAR,yEXTENSION,因此,STAR=size=huge;c)接着选取另一个被STAR中的复合覆盖的负样例Eneg,显然已经没有这样的负样例,因此,STAR=size=huge;d)接着选取另一个被STAR中的复合覆盖的负样例ENEG,显然已经没有这样的负样例,因此,STAR=size=hugetype=bicycle。从STAR(SEED,NEG)返回。(8)BEST=size=huge,将BEST添加到COVER中,COVER=size=hugetype=bicyclesize=huge=size=huge。(9)这时,COVER已经覆盖到全部的正例,则算法结束。输出规则为gaint2-wheelersize=huge。,假设现有一个训练集,其包含两种属性:size(属性值:micro,tiny,mid,big,huge,vast)type(属性值:bicycle,motorcycle,car,prop,jet,glider)现有正例、反例样本分别如表4-6,表4-7所示:,反例样本sizetypeclassTinymotorcycleconventionaltransportationtinycarconventionaltransportationmidcarconventionaltransportationmicrojetfastplaneTinyjetfastplaneMidjetfastplane,正例样本sizetypeclassHugebicyclegiant2-wheelerHugemotorcyclegiant2-wheeler,2020/5/22,.,89,CN2算法描述,CN2使用一种基于噪音估计的启发式方法,使用这种方法可以不用对所有的训练样本进行正确的区分,但是规约出的规则在对新数据的处理上有很好的表现。,算法4-7CN2输入:E/*E为训练样本*/输出:RULE_LIST/*返回一个覆盖若干样例的规则*/(1)LetRULE_LISTbetheemptylist;/*初始化RULES_LIST为空;*/(2)REPEAT(3)LetBEST_CPXbeFind_Best_Complex(E);/*寻找最佳的规则Find_Best_Complex(E)并将其结果放入BEST_CPX中;*/(4)IFBEST_CPXisnotnilTHENBEGIN(5)LetEbetheexamplescoveredbyBEST_CPX;/*令E为BEST_CPX覆盖的所有样例*/(6)RemovefromEtheexamplesEcoveredbyBEST_CPX;/*从训练样本E中除去E,即E=E-E;*/(7)LetCbethemostcommonclassofexamplesinE;/*令C为样本子集E中最频繁的分类标号;*/(8)AddtheruleifBEST_CPXthenclass=CtotheendofRULE_LIST;/*将规则ifBEST_CPXthenclass=C添加到RULES_LIST中*/(9)END(10)UNTILBEST_CPXisnilorEisempty./*直到BEST_CPX为空或者训练样本E为空*/(11)RETURNRULE_LIST算法CN2需要通过调用函数Find_Best_Complex,它的描述写成下面算法4-8。,2020/5/22,.,90,CN2算法描述(续),算法4-8Find_Best_Complex输入:E/*E为训练样本*/输出:BEST_CPX/*返回最佳的规则BEST_CPX*/(1)LetthesetSTARcontainonlytheemptyComplex;/*初始化集合STAR为空Complex;*/(2)LetBEST_CPXbenil;/*初始化BEST_CPX为空*/(3)LetSELECTORSbethesetofallpossibleSelectors;/*集合SELECTOR为所有可能的选择*/(4)WHILESTARisnotemptyDOBEGIN(5)LetNEWSTARbethesetxy|xSTAR,yEXTENSION;/*令NEWSTAR=xy|xSTAR,yEXTENSION;*/(6)RemoveallComplexesinNEWSTARthatareeitherinSTARorarenull;/*从NEWSTAR中除去包括在STAR中的Complex或者为空的Complex*/(7)FOReverycomplexCiinNEWSTAR(8)IFCiisstatisticallysignificantwhentestedonEandbetterthanBEST_CPXaccordingtouser-definedcriteriawhentestedonE/*如果Ci在统计上有意义,并且对训练集E测试后符合用户定义的条件且优于BEST_CPX*/(9)THENreplacethecurrentvalueofBEST_CPXbyCi;/*将BEST_CPX替换为Ci*/(10)REPEATremoveworstComplexesfromNEWSTAR(11)UNTILsizeofNEWSTARis=user-definedmaximummaxstar;/*逐步移去在NEWSTAR中最坏的complex直到NEWSTAR的大小等于或小于用户定义的最大数目maxstar*/(12)LetSTARbeNEWSTAR;/*令STAR=NEWSTAR*/(13)END(14)RETURNBEST_CPX。/*返回BEST_CPX*/,2020/5/22,.,91,FOIL算法,FOIL学习系统已经被广泛地应用在逻辑规约领域。FOIL是用来对无约束的一阶Horn子句进行学习。一个概念的定义是由一系列的子句组成,而其中每一个子句描述了一种证明一个样本是这个概念的实例的唯一方法。每个子句由一些文字的析取组成。FOIL由一系列的外部定义的断言开始,其中之一被确定为当前学习的概念,而其他作为背景文字。FOIL从这些外部定义的断言中获取一系列包括文字的子句。FOIL算法由一个空子句开始查找,其不断的向当前的子句中追加文字直到没有负样例被子句所覆盖。之后,FOIL重新开始一个子句的查找,直到所有的正样例均被已经生成的子句所覆盖。FOIL计算每一个外部定义断言的信息熵(InformationGain)和合法的变量(LegalVariabilization)用来决定哪一个文字添加到子句中。,2020/5/22,.,92,一阶Horn子句的主要术语,一阶Horn子句所涉及的主要术语有:所有表达式由常量(如Mary、23或Joe)、变量(如x)、谓词(如在Female(Mary)中的Female和函数(如在age(Mary)中的age)组成;项(Term)为任意常量、任意变量或任意应用到项集合上的函数。例如,Mary,x,age(Mary),age(x);文字(Literal)是应用到项集合上的任意谓词或其否定。例如,Female(Mary),Greater_than(age(Mary),20);基本文字(GroundLiteral)是不包括任何变量的文字;负文字(NegativeLiteral)是包括否定谓词的文字;正文字(PositiveLiteral)是不包括否定谓词的文字;子句(Clause)是多个文字的析取式,M1Mn,其中所有变量是全程量化的;,2020/5/22,.,93,一阶Horn子句的表达,Horn子句是一个如下形式的表达式:H(L1Ln)。其中,H,L1,L2,Ln为正文字。H被称为Horn子句的头(Head)或推论(Consequent)。文字合取式L1L2.Ln被称为Horn子句的体(Body)或者先行词(Antecedents)。置换(Substitution)是一个将某些变量替换为某些项的函数。例如,置换x/3,y/z把变量x替换为项3并且把变量y替换为项z。给定一个置换和一个文字L,我们使用L代表应用置换到L得到的结果。,2020/5/22,.,94,FOIL算法描述,算法4-9FOIL(Target_predicate,Predicates,Examples)输入:Examples/*样本数据*/Predicates/*断言集合*/Target_predicate/*目标断言*/输出:规则(1)PosExamples中Target_predicate为Ture的成员;(2)NegExamples中Target_predicate为False的成员;(3)Learen_rules;(4)WHILEPos不空DOBEGIN/*学习NewRule*/(5)NewRules没有前件的谓词Target_predicate规则;(6)NewRuleNegNeg;(7)WHILENewRuleNeg不空BEGIN/*增加新文字以特化NewRule*/(8)Candidate_literals对NewRule生成后选新文字,基于Predicates;(9)Best_literalargmaxFoil_Gain(L,NewRule);/*获取最佳文字*/(10)把Best_literal加入到NewRule的前件;(11)NewRuleNegNewRuleNeg中满足NewRule前件的子集(12)END;(13)Learned_rulesLearned_rules+NewRule;(14)PosPos-被NewRule覆盖的Pos成员(15)END;(16)返回Learned_rules,2020/5/22,.,95,FOIL算法介绍,FOIL中的候选特征化式的生成:为生成当前规则的候选特征式,FOIL生成多个不同的新文字,每个可被单独地加到规则前件中。更精确地讲,假定当前规则为:P(x1,x2,xk)L1L其中,L1,Ln为当前规则前件中的文字,而P(x1,x2,xk)为规则头(或后件)。FOIL生成该规则的候选特征化式的方法是考虑符合下列形式的新文字Ln+1:Q(v1,vr),其中Q为在Predicates中出现的任意谓词名,并且vi既可为新变量,也可为规则中已有的变量。vi中至少一个变量必须是当前规则中已有的。Equal(xj,xk),其中xj和xk为规则中已有的变量。上述两种文字的否定。,2020/5/22,.,96,FOIL算法介绍(续),Foil_Gain函数FOIL使用评估函数以估计增加新文字的效用,它基于加入新文字前后的正例和反例的约束数目。更精确地讲,考虑某规则R和一个可能被加到R的规则体的后选文字L。令R为加入文字L到规则R后生成的规则。Foil_Gain(L,R)的值定义为:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论