常用数据挖掘算法
- 格式:doc
- 大小:23.50 KB
- 文档页数:10
常用数据挖掘算法
常用数据挖掘算法
常用数据挖掘算法(2012-02—03 22:55:42)
From http://blog。sina。/s/blog_68ffc7a40100wnb4。html
本文对数据挖掘的基础理论,做个框架性的总结概要,罗列一些通用的数据挖掘的算法和思路,对于自己来讲是一个回顾,同时也便于自己以后查阅。
频繁模式挖掘,关系挖掘,以及相互关系挖掘
所谓频繁模式挖掘,指的是比如在商品交易数据库记录中,找出一起出现的商品集合,这些商品集合出现的频率要高于一个阈值,这些经常出现的商品集合称之为频繁模式.
频繁模式的思路很简单,首先统计出每个单个商品出现的次数,这就构成了一个一维表。然后再根据一维表,商品两两组合产生一个二维表。然后再由二维表产生三维表,直至到n维表。其中可以利用apriori,进行剪枝,也就是说一维表中如果出现的频率低于阈值的商品,就可以直接去掉,应为包含该商品的高维商品集合的出现频率不可能高于该阈值,可以直接剪枝去掉。
频繁模式挖掘还有一种更加高效的方式,就是FP Growth,该方法通过扫描一遍数据库,在内存中构造一颗FP
tree,基于这棵树就可以产生所有的频繁模式.很显然FP Growth算法的效率要高很多,但是其缺陷也很明显,在内存中维护一颗FP 常用数据挖掘算法
tree的开销也是很大的。为了解决这个问题,一个直接的思路是将数据库水平分表到各台机器上,在各台机器上执行本地的FP
Growth,然后再将各台机器上的结果汇总起来,得到最终的FP Growth的结果。
所谓关系挖掘,值得是挖掘出各个项目之间的因果关系。关系挖掘的基础是频繁模式挖掘,通过频繁模式挖掘,很容易得出关系,举例就很容易明白,比如我们得到一个频繁集合:
那么通过排列组合可以得到l的子集集合:
那么很容易得到下面的推理集合,也就是挖掘出的关系:
所有的关系挖掘本质上都是基于频繁模式推导出来的。
在关系挖掘中,有一种非常有用的关系模式挖掘:mining quantitative
association
rules.所谓quantitative association rules是这样一种关系模式:
该关系模式的挖掘,首先是确定我们所感兴趣的属性:quan1,quan2,cat,然后根据事先确定的间隔,将quan1,quan2按照一定的间隔划分成一定的catorgory,然后进行频繁模式挖掘,得出一些关系,然后将这些关系按照grid进行聚合,生成最后的关系模式。
常用数据挖掘算法
通过关系挖掘挖出的关系中往往有很多不是非常有用,因此需要通过另外的指标排除一些这样的关系,这个指标就是correlation,如下:
Correlation是用来衡量A,B之间的相关性,从而排除那些没有意义的规则.
对于上述所提到的关系挖掘,有一种称之为constraint—based
association
mining,这是一种特殊的关系挖掘,它对于所挖掘出的条件加了一些限制条件,这些限制条件可能是由用户提出的,其主要目的是排除一些不感兴趣的关系.对于这种关系挖掘,最直接的办法先按照最普通的关系挖掘方法进行挖掘,然后利用条件来对结果进行。但是还有更好的方法,就是在挖掘的过程中利用这些条件,从而缩小整个挖掘过程中的search
space,从而提高效率。这些限制条件分为这么几种:antimonotonic,monotonic,succinct,convertible,inconvertible,针对每一种的限制条件,都有一些通用的方法或策略来缩小挖掘的search
space,可参阅相关资料。
分类和预测
分类树
分类树是一种很常用的分类方法,它该算法的框架表述还是比较清晰的,从根节点开始不断得分治,递归,生长,直至得到最后的结果.根节点代表整个训练样本集,通过在每个节点对某个属性的测试验证,算法递归得将数据集分成更小的数据集。某一节点对应的子树对应着原数据集中满足某一属性测试的部分数据集.这个递归过程一直进行下去. 常用数据挖掘算法
该算法是数据挖掘中常用的一类方法.
贝叶斯分类器
贝叶斯分类的思想很简单,就是计算属性和分类之间的条件概率,选择使得条件概率最大的分类作为最终的分类结果,这是一种基于统计的分类方法,得到了广泛的引用。
贝叶斯分类器分为两种,一种是朴素贝叶斯分类器,它基于贝叶斯理论:
其中X代表特征向量, C代表分类.我们的目标就是找出使得这个后验概率最大的那个类。
其中需要注意的是X中的各个特征分量是分布独立的.这样就有:
朴素贝叶斯分类器最经典的应用场景就是垃圾邮件过滤。
朴素贝叶斯分类器的升级版本就是贝叶斯网络,因为朴素贝叶斯网络假设样本的特征向量的各个特征属性是独立的,但对于现实世界,这样的建模未必合理,因此有人就提出了贝叶斯网络,贝叶斯网络假设各个属性之间是存在条件概率的.贝叶斯网络是一个各个属性组成的有向拓扑网络,每条边代表条件概率,通过贝叶斯网络能够计算出各个属性相互组合的条件概率.
基于规则的分类器
这种分类器利用IF THEN的规则来进行分类。对于如何产生规则,有两种常用数据挖掘算法
方法:
第一种方法,就是从决策树中生成规则。因为决策树天然的就是规则。
第二种方法,是采用Sequential Covering
Algorithm,直接从训练样本中生成规则集。该方法的思路是一种general—to-specific的方法,该方法从一个空规则开始,然后向规则中依次逐渐增加属性测试条件,选择该属性测试值(也就是测试分界点,attr
基于神经网络的分类器
神经网络分类器是依据属性构造一个网络拓扑结构,该拓扑结构的边具有权重值,我们的目的是不断得利用训练样本然后不断得更新神经网络的边权重值.然后利用该网络就可以得到输出的分类。
该算法模拟神经的组成结构,利用了单元之间的反馈机制。但该算法的缺点也很明显,网络拓扑结构的确定没有明确统一的方法论,很多只能靠规划者的经验,因此训练结果往往因人而异,限制了神经网络的使用。
支持向量机分类器
支持向量机是在训练样本空间中构造超平面来对样本进行分类,它的优势是对高维度不敏感。但效率较低,实施较为复杂。
关联分类器
关联分类器的思路很简单,前面我们提到频繁模式挖掘,我们将样本的某一属性的(属性,值)对作为一个条目,我们找出经常在一起出现的条目