Breadtree算法是什么意思算法

(数据挖掘)关联规则挖掘――Apriori算法、fp―Tree算法_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者
评价文档:
(数据挖掘)关联规则挖掘――Apriori算法、fp―Tree算法
关​联​规​则​挖​掘
大小:287.50KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢Breadtree是什么算法_数据结构吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:22,397贴子:
Breadtree是什么算法收藏
急急急 谢谢了
她大弟弟少安不在家
喂,是thread tree吧,线索二叉树,对于遍历时间的化简是很有效的
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或谁能解释一下R-tree算法的意思?看不懂!_百度作业帮
谁能解释一下R-tree算法的意思?看不懂!
谁能解释一下R-tree算法的意思?看不懂!
【转载】R-Tree空间索引算法的研究历程和最新进展分析 23:15摘要:本文介绍了空间索引的概念、R-Tree数据结构和R-Tree空间索引的算法描述,并从R-Tree索引技术的优缺点对R-Tree的改进结构——变种R-Tree进行了论述.最后,对R-Tree的最新研究进展进行了分析.关键词:空间索引技术;R-Tree;研究历程;最新进展当前数据搜索的一个关键问题是速度.提高速度的核心技术是空间索引.空间索引是由空间位置到空间对象的映射关系.当前的一些大型数据库都有空间索引能力,像Oracle,DB2.空间索引技术并不单是为了提高显示速度,显示速度仅仅是它所要解决的一个问题.空间索引是为空间搜索提供一种合适的数据结构,以提高搜索速度.空间索引技术的核心是:根据搜索条件,比如一个矩形,迅速找到与该矩形相交的所有空间对象集合.当数据量巨大,矩形框相对于全图很小时,这个集合相对于全图数据集大为缩小,在这个缩小的集合上再处理各种复杂的搜索,效率就会大大提高.所谓空间索引,就是指依据空间实体的位置和形状或空间实体之间的某种空间关系,按一定顺序排列的一种数据结构,其中包含空间实体的概要信息如对象的标识、外接矩形及指向空间实体数据的指针.简单的说,就是将空间对象按某种空间关系进行划分,以后对空间对象的存取都基于划分块进行.1 引言空间索引是对存储在介质上的数据位置信息的描述,用来提高系统对数据获取的效率.空间索引的提出是由两方面决定的:其一是由于计算机的体系结构将存贮器分为内存、外存 两种,访问这两种存储器一次所花费的时间一般为30~40ns,8~10ms,可以看出两者相差十 万倍以上,尽管现在有“内存数据库”的说法,但绝大多数数据是存储在外存磁盘上的,如果对磁盘上数据的位置不加以记录和组织,每查询一个数据项就要扫描整个数据文件,这种访问磁盘的代价就会严重影响系统的效率,因此系统的设计者必须将数据在磁盘上的位置加以记录和组织,通过在内存中的一些计算来取代对磁盘漫无目的的访问,才能提高系统的效率,尤其是GIS涉及的是各种海量的复杂数据,索引对于处理的效率是至关重要的.其二是GIS 所表现的地理数据多维性使得传统的B树索引并不适用,因为B树所针对的字符、数字等传统数据类型是在一个良序集之中,即都是在一个维度上,集合中任给两个元素,都可以在这个维度上确定其关系只可能是大于、小于、等于三种,若对多个字段进行索引,必须指定各个字段的优先级形成一个组合字段,而地理数据的多维性,在任何方向上并不存在优先级问题,因此B树并不能对地理数据进行有效的索引,所以需要研究特殊的能适应多维特性的空间索引方式.1984年Guttman发表了《R树:一种空间查询的动态索引结构》,它是一种高度平衡的树,由中间节点和页节点组成,实际数据对象的最小外接矩形存储在页节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形.其后,人们在此基础上针对不同空间运算提出了不同改进,才形成了一个繁荣的索引树族,是目前流行的空间索引.R树是B树向多维空间发展的另一种形式,它将空间对象按范围划分,每个结点都对应一个区域和一个磁盘页,非叶结点的磁盘页中存储其所有子结点的区域范围,非叶结点的所有子结点的区域都落在它的区域范围之内;叶结点的磁盘页中存储其区域范围之内的所有空间对象的外接矩形.每个结点所能拥有的子结点数目有上、下限,下限保证对磁盘空间的有效利用,上限保证每个结点对应一个磁盘页,当插入新的结点导致某结点要求的空间大于一个磁盘页时,该结点一分为二.R树是一种动态索引结构,即:它的查询可与插入或删除同时进行,而且不需要定期地对树结构进行重新组织.2 R-Tree数据结构R-Tree是一种空间索引数据结构,下面做简要介绍:(1)R-Tree是n 叉树,n称为R-Tree的扇(fan).(2)每个结点对应一个矩形.(3)叶子结点上包含了小于等于n 的对象,其对应的矩为所有对象的外包矩形.(4)非叶结点的矩形为所有子结点矩形的外包矩形.R-Tree的定义很宽泛,同一套数据构造R-Tree,不同方可以得到差别很大的结构.什么样的结构比较优呢?有两标准:(1)位置上相邻的结点尽量在树中聚集为一个父结点.(2)同一层中各兄弟结点相交部分比例尽量小.R树是一种用于处理多维数据的数据结构,用来访问二维或者更高维区域对象组成的空间数据.R树是一棵平衡树.树上有两类结点:叶子结点和非叶子结点.每一个结点由若干个索引项构成.对于叶子结点,索引项形如(Index,Obj_ID).其中,Index表示包围空间数据对象的最小外接矩形MBR,Obj_ID标识一个空间数据对象.对于一个非叶子结点,它的索引项形如(Index,Child_Pointer). Child_Pointer 指向该结点的子结点.Index仍指一个矩形区域,该矩形区域包围了子结点上所有索引项MBR的最小矩形区域.一棵R树的示例如图所示:3 R-Tree算法描述算法描述如下:对象数为n,扇区大小定为fan.(1)估计叶结点数k=n/fan.(2)将所有几何对象按照其矩形外框中心点的x值排序.(3)将排序后的对象分组,每组大小为 *fan,最后一组可能不满员.(4)上述每一分组内按照几何对象矩形外框中心点的y值排序.(5)排序后每一分组内再分组,每组大小为fan.(6)每一小组成为叶结点,叶子结点数为nn.(7)N=nn,返回1.4 R-Tree空间索引算法的研究历程1 R-Tree多维索引技术的历史可以追溯到20世纪70年代中期.就在那个时候,诸如Cell算法、四叉树和k-d树等各种索引技术纷纷问世,但它们的效果都不尽人意.在GIS和CAD系统对空间索引技术的需求推动下,Guttman于1984年提出了R树索引结构,发表了《R树:一种空间查询的动态索引结构》,它是一种高度平衡的树,由中间节点和页节点组成,实际数据对象的最小外接矩形存储在页节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形.其后,人们在此基础上针对不同空间运算提出了不同改进,才形成了一个繁荣的索引树族,是目前流行的空间索引.2 R+树在Guttman的工作的基础上,许多R树的变种被开发出来, Sellis等提出了R+树,R+树与R树类似,主要区别在于R+树中兄弟结点对应的空间区域无重叠,这样划分空间消除了R树因允许结点间的重叠而产生的“死区域”(一个结点内不含本结点数据的空白区域),减少了无效查询数,从而大大提高空间索引的效率,但对于插入、删除空间对象的操作,则由于操作要保证空间区域无重叠而效率降低.同时R+树对跨区域的空间物体的数据的存储是有冗余的,而且随着数据库中数据的增多,冗余信息会不断增长.Greene也提出了他的R树的变种.3 R*树在1990年,Beckman和Kriegel提出了最佳动态R树的变种——R*树.R*树和R树一样允许矩形的重叠,但在构造算法R*树不仅考虑了索引空间的“面积”,而且还考虑了索引空间的重叠.该方法对结点的插入、分裂算法进行了改进,并采用“强制重新插入”的方法使树的结构得到优化.但R*树算法仍然不能有效地降低空间的重叠程度,尤其是在数据量较大、空间维数增加时表现的更为明显.R*树无法处理维数高于20的情况.4 QR树QR树利用四叉树将空间划分成一些子空间,在各子空间内使用许多R树索引,从而改良索引空间的重叠.QR树结合了四叉树与R树的优势,是二者的综合应用.实验证明:与R树相比,QR树以略大(有时甚至略小)的空间开销代价,换取了更高的性能,且索引目标数越多,QR树的整体性能越好.5 SS树SS树对R*树进行了改进,通过以下措施提高了最邻近查询的性能:用最小边界圆代替最小边界矩形表示区域的形状,增强了最邻近查询的性能,减少将近一半存储空间;SS树改进了R*树的强制重插机制.当维数增加到5是,R树及其变种中的边界矩形的重叠将达到90%,因此在高维情况(≥5)下,其性能将变的很差,甚至不如顺序扫描.6 X树X树是线性数组和层状的R树的杂合体,通过引入超级结点,大大地减少了最小边界矩形之间的重叠,提高了查询效率.X树用边界圆进行索引,边界矩形的直径(对角线)比边界圆大,SS树将点分到小直径区域.由于区域的直径对最邻近查询性能的影响较大,因此SS树的最邻近查询性能优于R*树;边界矩形的平均容积比边界圆小,R*树将点分到小容积区域;由于大的容积会产生较多的覆盖,因此边界矩形在容积方面要优于边界圆.SR树既采用了最小边界圆(MBS),也采用了最小边界矩形(MBR),相对于SS树,减小了区域的面积,提高了区域之间的分离性,相对于R*树,提高了邻近查询的性能.5 R-Tree空间索引算法的最新研究信息的膨胀使数据库检索需要面对的问题越来越多.在构建索引方面,最主要面临的则是如何构造高效的索引算法来支持各种数据库系统(比如:多媒体数据库、空间数据库等),特别是如何有效的利用算法来实现加速检索.概括地说,R-Tree空间索引算法的研究要做到:支持高维数据空间;有效分割数据空间,来适应索引的组织;高效的实现多种查询方式系统中的统一.R-Tree的索引结构最新研究不能是单纯为了加速某种查询方式或提高某个方面的性能,忽略其他方面的效果,这样可能会造成更多不必要的性能消耗.XML作为可扩展的标示语言,其索引方法就是基于传统的R-Tree索引技术的XR-Tree索引方法.该方法构造了适合于XML数据的索引结构.XR-Tree索引方法是一种动态扩充内存的索引数据结构,针对XISS(XML Indexing and Storage System:XML索引和存储体系)中结构连接中的问题,设计了基于XR-Tree索引树有效地跳过不参与匹配的元素的连接算法.但这种索引方法在进行路径的连接运算中仍然存储大量的中间匹配结果,为此一种基于整体查询模式的基于索引的路径连接算法提出,即利用堆栈链表来临时压栈存储产生的部分匹配结果,并且随着匹配的动态进行出栈操作.这样在查询连接处理完成以后,直接输出最终结果,既节省了存储空间又提高了操作效率.Morris Tree Traverse算法的instinct是什么?
王垠,你好。最近无意中接触到Morris Tree Traverse算法,感觉非常tricky。即使自己动手写了代码实现,仍然有种似懂非懂的感觉。像你《原因与证明》文章中所说,“你证明了 STLC 有这个特性,然而你却没有告诉我它'为什么'有这个特性”。Morris Tree Traverse算法必定是由于某种特性而存在,从而被发现。我自觉仍然被限制在Morris的思路中,并没有看清楚其背后的真正思想(所有讲解这个算法的地方都提到其基本思想是利用了Threaded binary tree,但我仍觉得这种解释不够深刻)。请问你对这个算法的理解是什么呢?
按投票排序
阅读了王垠推荐的论文《Morris's Tree Traversal Algorithm Reconsidered》。有了一些心得。这篇论文提供了一个思路:在不使用递归的前提下,仍然使用栈对二叉树进行遍历;但是,底层的栈可以不必使用storage实现,而是运用Morris算法操作指针“模拟”一个“抽象”栈。
搜索到一篇博客:,作者的思路非常具有启发性:既然三种遍历的递归代码实现具有非常强的形式统一性(仅仅是访问结点代码的位置不同),那么,三种遍历的栈代码实现也应该具有很强的形式统一性!并给出了代码实现:模拟递归调用时刻的入栈出栈顺序。(中序遍历有一个小bug,但无关大体)。回到Morris算法,这个算法的先序、中序遍历代码实现形式是很统一的(仅仅是访问结点代码的位置不同),但是,后序遍历代码就完全不同。我产生了一个很自然的想法,既然Morris算法可以抽象为一个“栈”,那么其三种遍历算法的代码同样可以具有形式上非常强的统一性。只要将博客中的栈替换为"Morris算法栈"即可。因此,我亲自动手写了代码,并做了测试,运行结果完全符合预期。
我又对多叉树遍历的Morris栈进行了代码实现。当从二叉树扩展到多叉树时,发生了一些比较有趣的性质变化: “中序”遍历的概念消失。因为当存在3个以上子节点的时候,无法确定父节点的“中间位置”。每次push一个节点的时候,需要针对每个非最右子节点,建立loop回路(二叉树中,只需要针对左节点建立loop回路)。能够进行形式的统一,关键在于:递归调用的入栈顺序是先序,出栈顺序是“后序”。因此,对每个节点的访问顺序是“父”(push)-&"第一个child"(push pop)-&"父"(top)-&"第二个child"(push pop)-&......-&"父"(top)-&"最后一个child"(push pop)-&"父"(pop)。这种顺序保证了:只需要调整打印语句的位置,即可实现不同的遍历顺序。Morris算法的问题在于:在从子结点向上"pop"返回parent的过程中,需要利用loop进行线性的遍历对比,才能找出该子结点的parent。这样提高了时间复杂度。Oberon的GC算法采取了另外一种利用指针维护“栈”的方法,在时间复杂度上与递归遍历的复杂度完全相同。而且,这种算法在有环的树中正常运行。
说一下自己的浅见:基于两个事实:二叉树的叶节点有足够的空指针(空指针数量等于节点数+1)二叉树的旋转不改变中序遍历次序这两点也是Threading binary tree的立足点,但是Threading binary tree将叶节点的指针约束得很紧(也即除非叶节点没有前驱或后继,否则一定要要把线索串到其前驱后继),这种约束与二叉树的固有性质是冗余的。而morris算法则宽松一些,在遍历过程中,叶节点的right指针既可以是NULL,也可以是其后继,这样可以利用叶节点的right的指针来构造一个栈,来维护遍历状态,比如通过测试pre(current).right == current来判断current的左子树是否已经遍历过。数据挖掘十大经典算法Kmeans,C4.5,&CART,&KNN,&Naive&Bayes,&SVM,&EM,&Apriori,&FP-Tree,&PageRank
C4.5就是一个决策树算法,它是决策树(决策树也就是做决策的节点间的组织方式像一棵树,其实是一个倒树)核心算法ID3的改进算法,所以基本上了解了一半决策树构造方法就能构造它。决策树构造方法其实就是每次选择一个好的特征以及分裂点作为当前节点的分类条件。C4.5比ID3改进的地方时:
ID3选择属性用的是子树的信息增益(这里可以用很多方法来定义信息,ID3使用的是熵(entropy)(熵是一种不纯度度量准则)),也就是熵的变化值.而C4.5用的是信息增益率。也就是多了个率嘛。一般来说率就是用来取平衡用的,就像方差起的作用差不多,比如有两个跑步的人,一个起点是10m/s的人、其1s后为20m/s;另一个人起速是1m/s、其1s后为2m/s。如果紧紧算差值那么两个差距就很大了,如果使用速度增加率(加速度)来衡量,2个人就是一样了。在这里,其克服了用选择属性时偏向选择取值多的属性的不足。
在树构造过程中进行剪枝,我在构造决策树的时候好讨厌那些挂着几个元素的节点。对于这种节点,干脆不考虑最好,不然很容易导致overfitting。
对非离散数据都能处理,这个其实就是一个个式,看对于连续型的值在哪里分裂好。也就是把连续性的数据转化为离散的值进行处理。
4) 能够对不完整数据进行处理,这个重要也重要,其实也没那么重要,缺失数据采用一些方法补上去就是了。
CART也是一种决策树算法!相对于上着有条件实现一个节点下面有多个子树的多元分类,CART只是分类两个子树,这样实现起来稍稍简便些。所以说CART算法生成的决策树是结构简洁的二叉树。
3:KNN(K Nearest Neighbours)
这个很简单,就是看你周围的K个人(样本)那个类别的人占的多,那个多那我也是那个多的。实现起来就是对每个训练样本都计算与其相似度,选择相似度Top-K个训练样本出来,看这K个样本中那个类别的多些,谁多跟谁。
Bayes(朴素贝叶斯NB)
NB认为各个特征是独立的,谁也不关谁的事。所以一个样本(特征值的集合,比如”数据结构”出现2词,“文件”出现1词),可以通过对其所有出现特征在给定类别的概率相乘。比如“数据结构”出现在类1的概率为0.5,“文件”出现在类1的概率为0.3,则可认为其属于类1的概率为0.5*0.5*0.3。
5:Support Vector
Machine(支持向量机SVM)
SVM就是想找一个分类得最”好”的分类线/分类面(最近的一些两类样本到这个”线”的距离最远)。这个没具体实现过,上次听课,那位老师自称自己实现了SVM,敬佩其钻研精神。常用的工具包是LibSVM,SVMLight,MySVM.
6:EM(期望最大化)
这个我认为就是假设数据时由几个高斯分布组成的,所以最后就是要求几个高斯分布的参数。通过先假设几个值,然后通过反复迭代,以期望得到最好的拟合。
7:Apriori
这个是做关联规则用的。不知道为什么,一提高关联规则我就想到购物篮数据。这个没实现过,不过也还要理解,它就是通过支持度和置信度两个量来工作,不过对于Apriori,它通过频繁项集的一些规律(频繁项集的子集必定是频繁项集等等啦)来减少计算复杂度。
8:FP-Tree(Mining
frequent patterns without candidate generation)
这个也不太清楚。FP-growth算法(Frequent
Pattern-growth)使用了一种紧缩的数据结构来存储查找频繁项集所需要的全部信息。采用算法:将提供频繁项集的数据库压缩到一棵FP-tree来保留项集关联信息,然后将压缩后的数据库分成一组条件数据库(一种特殊类型的投影数据库),每个条件数据库关联一个频繁项集。
9:PageRank
大名鼎鼎的PageRank大家应该都知道(Google靠此专利发家,其实也不能说发家啦!)。对于这个算法我的理解就是:如果我指向你(网页间的连接)则表示我承认你,则在计算你的重要性的时候可以加上我的一部分重要性(到底多少,要看我自己有多少和我共承认多少个人)。通过反复这样来,可以求的一个稳定的衡量各个人(网页)重要性的值。不过这里必须要做些限制(一个人的开始默认重要性都是1),不然那些值会越来越大越来越大。
HITS也是一个连接分析算法,它是由IBM首先提出的。在HITS,每个节点(网页)都有一个重要度和权威度(Hubs and
authorities,我也忘了具体的翻译是什么了)。通过反复通过权威度来求重要度,通过重要度来求权威度得到最后的权威度和重要度。
11:K-Means
K-Means是一种最经典也是使用最广泛的聚类方法,时至今日任然有很多基于其的改进模型提出。K-Means的思想很简单,对于一个聚类任务(你需要指明聚成几个类,当然按照自然想法来说不应该需要指明类数,这个问题也是当前聚类任务的一个值得研究的课题),首先随机选择K个簇中心,然后反复计算下面的过程直到所有簇中心不改变(簇集合不改变)为止:步骤1:对于每个对象,计算其与每个簇中心的相似度,把其归入与其最相似的那个簇中。
步骤2:更新簇中心,新的簇中心通过计算所有属于该簇的对象的平均值得到。
k-means 算法的工作过程说明如下:首先从n个数据对象任意选择 k
个对象作为初始聚类中心;而对于所剩下其它对象,则根据它们与这些聚类中心的相似度(距离),分别将它们分配给与其最相似的(聚类中心所代表的)聚类;然后再计算每个所获新聚类的聚类中心(该聚类中所有对象的均值);不断重复这一过程直到标准测度函数开始收敛为止。一般都采用均方差作为标准测度函数.
k个聚类具有以下特点:各聚类本身尽可能的紧凑,而各聚类之间尽可能的分开。
BIRCH也是一种聚类算法,其全称是Balanced Iterative Reducing and Clustering
using Hierarchies。BIRCH也是只是看了理论没具体实现过。是一个综合的层次聚类特征(Clustering
Feature, CF)和聚类特征树(CF
Tree)两个概念,用于概括聚类描述。聚类特征树概括了聚类的有用信息,并且占用空间较元数据集合小得多,可以存放在内存中,从而可以提高算法在大型数据集合上的聚类速度及可伸缩性。
BIRCH算法包括以下两个阶段:
1)扫描数据库,建立动态的一棵存放在内存的CF Tree。如果内存不够,则增大阈值,在原树基础上构造一棵较小的树。
2)对叶节点进一步利用一个全局性的聚类算法,改进聚类质量。
Tree的叶节点代表的聚类可能不是自然的聚类结果,原因是给定的阈值限制了簇的大小,并且数据的输入顺序也会影响到聚类结果。因此需要对叶节点进一步利用一个全局性的聚类算法,改进聚类质量。
13:AdaBoost
AdaBoost做分类的一般知道,它是一种boosting方法。这个不能说是一种算法,应该是一种方法,因为它可以建立在任何一种分类算法上,可以是决策树,NB,SVM等。
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次的总体分类的准确率,来确定每个样本改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融合起来,作为最后的决策分类器。使用adaboost分类器可以排除一些不必要的训练数据,并将关键放在关键的训练数据上面。
GSP,全称为Generalized Sequential
Pattern(广义序贯模式),是一种序列挖掘算法。对于序列挖掘没有仔细看过,应该是基于关联规则的吧!网上是这样说的:
GSP类似于Apriori算法,采用冗余候选模式的剪除策略和特殊的数据结构-----哈希树来实现候选模式的快速访存。
GSP算法描述:
1)扫描序列数据库,得到长度为1的序列模式L1,作为初始的种子集。
2)根据长度为i 的种子集Li
,通过连接操作和修剪操作生成长度为i+1的候选序列模式Ci+1;然后扫描序列数据库,计算每个候选序列模式的支持度,产生长度为i+1的序列模式Li+1,并将Li+1作为新的种子集。
3)重复第二步,直到没有新的序列模式或新的候选序列模式产生为止。
产生候选序列模式主要分两步:
连接阶段:如果去掉序列模式s1的第一个项目与去掉序列模式s2的最后一个项目所得到的序列相同,则可以将s1与s2进行连接,即将s2的最后一个项目添加到s1中。
修切阶段:若某候选序列模式的某个子序列不是序列模式,则此候选序列模式不可能是序列模式,将它从候选序列模式中删除。
候选序列模式的支持度计算:对于给定的候选序列模式集合C,扫描序列数据库,对于其中的每一条序列s,找出集合C中被s所包含的所有候选序列模式,并增加其支持度计数。
15:PrefixSpan
一个类似Apriori的序列挖掘算法。
(classification based on
association)是基于关联规则发现方法的分类算法。该算法分两个步骤构造分类器。第一步:发现所有形如xi1∧x
=& Ci 的关联规则,即右部为类别属性值的类别关联规则(classification
association
rules,CAR)。第二步:从已发现的CAR中选择高优先度的规则来覆盖训练集,也就是说,如果有多条关联规则的左部相同,而右部为不同的类,则选择具有最高置信度的规则作为可能规则。
图挖掘算法。
前十名头衔的分别是:C4.5,K-Means,SVM,Apriori,EM,PageRank,AdaBoost,KNN,NB和CART
国际权威的学术组织the IEEE International Conference on Data Mining
(ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法:C4.5, k-Means,
SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and
不仅仅是选中的十大算法,其实参加评选的18种算法,实际上随便拿出一种来都
可以称得上是经典算法,它们在数据挖掘领域都产生了极为深远的影响。
C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3算法.
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属
性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构
造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
2. The k-means algorithm 即K-Means算法
k-means algorithm算法是一个聚类算法,把n的对象根据他们的属性分为k个分
割,k & n。它与处理混合正态分布的最大期望算法很相似,因为他们都试图找到
数据中自然聚类的中心。它假设对象属性来自于空间向量,并且目标是使各个群组
内部的均方误差总和最小。
3. Support vector machines
支持向量机,英文为Support Vector Machine,简称SV机(论文中一般简
称SVM)。它是一种監督式學習的方法,它广泛的应用于统计分类以及回归分析
中。支持向量机将向量映射到一个更高维的空间里,在这个空间里建立有一个最大
间隔超平面。在分开数据的超平面的两边建有两个互相平行的超平面。分隔超平面
使两个平行超平面的距离最大化。假定平行超平面间的距离或差距越大,分类器的
总误差越小。一个极好的指南是C.J.C Burges的《模式识别支持向量机指
南》。van der Walt 和 Barnard 将支持向量机和其他分类器进行了比较。
4. The Apriori algorithm
Apriori算法是一种最有影响的挖掘布尔关联规则频繁项集的算法。其核心是基于
两阶段频集思想的递推算法。该关联规则在分类上属于单维、单层、布尔关联规
则。在这里,所有支持度大于最小支持度的项集称为频繁项集,简称频集。
5. 最大期望(EM)算法
在统计计算中,最大期望(EM,Expectation&Maximization)算法是在概率
(probabilistic)模型中寻找参数最大似然估计的算法,其中概率模型依赖于无法
观测的隐藏变量(Latent Variabl)。最大期望经常用在机器学习和计算机视觉的
数据集聚(Data Clustering)领域。
6. PageRank
PageRank是Google算法的重要内容。2001年9月被授予美国专利,专利人
是Google创始人之一拉里.佩奇(Larry Page)。因此,PageRank里的page不
是指网页,而是指佩奇,即这个等级方法是以佩奇来命名的。
PageRank根据网站的外部链接和内部链接的数量和质量俩衡量网站的价
值。PageRank背后的概念是,每个到页面的链接都是对该页面的一次投票,被链
接的越多,就意味着被其他网站投票越多。这个就是所谓的“链接流行度”——衡量
多少人愿意将他们的网站和你的网站挂钩。PageRank这个概念引自学术中一篇论
文的被引述的频度——即被别人引述的次数越多,一般判断这篇论文的权威性就越
7. AdaBoost
Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱
分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器 (强分类
器)。其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本
的分类是否正确,以及上次的总体分类的准确率,来确定每个样本的权值。将修改
过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器最后融
合起来,作为最后的决策分类器。
8. kNN: k-nearest neighbor classification
K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方
法,也是最简单的机器学习算法之一。该方法的思路是:如果一个样本在特征空间
中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样
本也属于这个类别。
9. Naive Bayes
在众多的分类模型中,应用最为广泛的两种分类模型是决策树模型(Decision
Tree Model)和朴素贝叶斯模型(Naive Bayesian Model,NBC)。 朴素贝叶
斯模型发源于古典数学理论,有着坚实的数学基础,以及稳定的分类效率。同
时,NBC模型所需估计的参数很少,对缺失数据不太敏感,算法也比较简单。理论
上,NBC模型与其他分类方法相比具有最小的误差率。但是实际上并非总是如此,
这是因为NBC模型假设属性之间相互独立,这个假设在实际应用中往往是不成立
的,这给NBC模型的正确分类带来了一定影响。在属性个数比较多或者属性之间相
关性较大时,NBC模型的分类效率比不上决策树模型。而在属性相关性较小
时,NBC模型的性能最为良好。
10. CART: 分类与回归树
CART, Classification and Regression Trees。 在分类树下面有两个关键的思
想。第一个是关于递归地划分自变量空间的想法;第二个想法是用验证数据进行剪
Classification
==============
Quinlan, J. R. 1993. C4.5: Programs for Machine Learning.
Morgan Kaufmann Publishers Inc.
Google Scholar Count in October
L. Breiman, J. Friedman, R. Olshen, and C. Stone. Classification
Regression Trees. Wadsworth, Belmont, CA, 1984.
Google Scholar Count in October
#3. K Nearest Neighbours (kNN)
Hastie, T. and Tibshirani, R. 1996. Discriminant Adaptive
Neighbor Classification. IEEE Trans. Pattern
Anal. Mach. Intell. (TPAMI). 18, 6 (Jun. 1996), 607-616.
DOI= http://dx.doi.org/10.411
Google SCholar Count: 183
#4. Naive Bayes
Hand, D.J., Yu, K., 2001. Idiot's Bayes: Not So Stupid After
Internat. Statist. Rev. 69, 385-398.
Google Scholar Count in October 2006: 51
Statistical Learning
====================
Vapnik, V. N. 1995. The Nature of Statistical Learning
Theory. Springer-Verlag New York, Inc.
Google Scholar Count in October
McLachlan, G. and Peel, D. (2000). Finite Mixture Models.
J. Wiley, New York.
Google Scholar Count in October
Association Analysis
====================
#7. Apriori
Rakesh Agrawal and Ramakrishnan Srikant. Fast Algorithms for
Association Rules. In Proc. of the 20th Int'l Conference on Very
Databases (VLDB '94), Santiago, Chile, September 1994.
p.nus.edu.sg/agrawal94fast.html
Google Scholar Count in October
#8. FP-Tree
Han, J., Pei, J., and Yin, Y. 2000. Mining frequent patterns
candidate generation. In Proceedings of the 2000 ACM SIGMOD
international Conference on Management of Data (Dallas, Texas,
States, May 15 - 18, 2000). SIGMOD '00. ACM Press, New York, NY,
DOI= http://doi.acm.org/10..335372
Google Scholar Count in October
Link Mining
===========
#9. PageRank
Brin, S. and Page, L. 1998. The anatomy of a large-scale
hypertextual
Web search engine. In Proceedings of the Seventh
international
Conference on World Wide Web (WWW-7) (Brisbane,
Australia). P. H. Enslow and A. Ellis, Eds. Elsevier Science
Publishers B. V., Amsterdam, The Netherlands, 107-117.
DOI= http://dx.doi.org/10.-10-X
Google Shcolar Count: 2558
Kleinberg, J. M. 1998. Authoritative sources in a
hyperlinked
environment. In Proceedings of the Ninth Annual ACM-SIAM
Symposium on
Discrete Algorithms (San Francisco, California, United States,
25 - 27, 1998). Symposium on Discrete Algorithms. Society
Industrial and Applied Mathematics, Philadelphia, PA,
Google Shcolar Count: 2240
Clustering
==========
#11. K-Means
MacQueen, J. B., Some methods for classification and analysis
multivariate observations, in Proc. 5th Berkeley Symp.
Mathematical
Statistics and Probability, 1967, pp. 281-297.
Google Scholar Count in October
#12. BIRCH
Zhang, T., Ramakrishnan, R., and Livny, M. 1996. BIRCH: an
data clustering method for very large databases. In Proceedings
1996 ACM SIGMOD international Conference on Management of
(Montreal, Quebec, Canada, June 04 - 06, 1996). J. Widom,
SIGMOD '96. ACM Press, New York, NY, 103-114.
DOI= http://doi.acm.org/10..233324
Google Scholar Count in October
Bagging and Boosting
====================
#13. AdaBoost
Freund, Y. and Schapire, R. E. 1997. A decision-theoretic
generalization of on-line learning and an application to
boosting. J. Comput. Syst. Sci. 55, 1 (Aug. 1997), 119-139.
DOI= http://dx.doi.org/10.1006/jcss.
Google Scholar Count in October
Sequential Patterns
===================
Srikant, R. and Agrawal, R. 1996. Mining Sequential
Generalizations and Performance Improvements. In Proceedings of
5th international Conference on Extending Database
Technology:
Advances in Database Technology (March 25 - 29, 1996). P. M.
M. Bouzeghoub, and G. Gardarin, Eds. Lecture Notes In
Science, vol. 1057. Springer-Verlag, London, 3-17.
Google Scholar Count in October
#15. PrefixSpan
J. Pei, J. Han, B. Mortazavi-Asl, H. Pinto, Q. Chen, U. Dayal
M-C. Hsu. PrefixSpan: Mining Sequential Patterns Efficiently
Prefix-Projected Pattern Growth. In Proceedings of the 17th
international Conference on Data Engineering (April 02 - 06,
2001). ICDE '01. IEEE Computer Society, Washington, DC.
Google Scholar Count in October
Integrated Mining
=================
Liu, B., Hsu, W. and Ma, Y. M. Integrating classification
association rule mining. KDD-98, 1998, pp. 80-86.
p.nus.edu.sg/liu98integrating.html
Google Scholar Count in October
Rough Sets
==========
#17. Finding reduct
Zdzislaw Pawlak, Rough Sets: Theoretical Aspects of Reasoning
Data, Kluwer Academic Publishers, Norwell, MA, 1992
Google Scholar Count in October
Graph Mining
============
#18. gSpan
Yan, X. and Han, J. 2002. gSpan: Graph-Based Substructure
Mining. In Proceedings of the 2002 IEEE International Conference
Data Mining (ICDM '02) (December 09 - 12, 2002). IEEE
Society, Washington, DC.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 算法是什么 的文章

 

随机推荐