2024年4月28日发(作者:)
web挖掘一些经典算法总结
l、Apriori算法
Apriori算法是1994年由l等人提出来的,APriori算法是关联规则挖
掘的经典算法,后来的许多算法的思想都源于该算法。该算法的名字来源于算法
中应用了频繁项集的先验知识,它有如下两个基本性质。
(l)频繁模式的下闭包特性:频繁项集的任何非空子集也都是频繁的,例如:若
{beer,diaPer,nuts}是频繁的,则{beer,di即er}、{diaPer,nuts}和{beer,nuts}等也是频
繁的。
(2)Apriori剪枝原理:如果一个项集是非频繁的,它的任一超集一定是非频繁的,故
就不必再被产生和测试了。该算法的基本思想:算法首先扫描一遍数据库计算各
个1-项集的支持度,从
而得到频繁1-项集Ll,然后采用迭代合并的方式,生成2一项集,再次扫描数据库,
计算2-项集的支持度,得到频繁2-项集玩,依次类推,分别找出频繁3一项集,……,
直至不再产生新的频繁项集为止。在计算频繁卜项集Lk(k=2,3,……)时,先通过
Lt-;自连接产生候选集Ck,利用一定的剪枝策略缩减Ck;在通过扫描数据库来计
算候选集的出现频度,消除非频繁项,从而得到玩。Apriori算法能够有效地产生所
有关联规则,但该算法存在以下问题:
(l)数据库扫描次数太多,每计算一次频繁k一项集,都需要扫描一次数据库。
(2)产生的候选集过大,虽然采取了一定的剪枝策略,但候选集仍较大。
(3)计算候选集的支持度的工作量巨大。
2、FP一Growth算法
FP一Growth算法是由Han等人提出的基于频繁模式树(FP一树)的频繁模
式挖掘算法。FP一树是一种高压缩比的存储结构,它将每个事物的频繁项按其频
度从大到小排列,树中的每个节点都保存着该结点的频度计数,并将所有相同结点
都连到头指针指向的链中。与APriori算法相比,该算法具有以下的特点:
(1)采用FP一树存放数据库的主要信息、算法只需扫描数据库两次,然后将Markov
链和关联规则的用户访问预测算法信息以FP一树的形式存放在内存中,避免了
多次扫描数据库。
(2)不需要产生候选集,从而减少了由于产生和测试候选集耗费的时间。对FP一树
的挖掘是一个分而治之的过程:按照头指针表,沿着各个频繁项p的指针链遍历FP
一树,收集项p的所有不同前缀路径(transformedprefixPaths),形成p的条件模式基,
构造条件模式库和条件FP一树,如果条件FP一树只有一个分支,则将其结点进行
合并得到频繁项集;否则继续递归挖掘直至得到条件FP一树。
3、预测替换算法PUR-SNS
该算法的步骤如下.
1)初始化预测模型.先根据SNS用户的中心度,计算出每个用户的中心性.
2)构建预测模型.根据用户的中心度,对每个用户发布的信息进行预测价值判
断,构建预测对象集Q.
3)寻找替换对象.由原有的替换算法在替换候选集中选出缓存对象中键值最小
的对象Rx.
4)若Rx∈Q,则该对象不被替换,退出替换候选集.重复步骤3)直至找到合
适的替换对象,使缓存具有足够空间容纳新的请求.
5)将Rx 替换掉,缓存新的请求.
算法1 预测模型(PURM)初始化
PURM的初始化过程为:根据SNS计算每个用户的中心性,形成一张映射表,
算法伪码如下.
输入:SNS网络结构.
输出:网站用户中心性映射表.
步骤1 将网络中各点依次编号为1,2,…,n;
步骤2 for 网络结构中的点数n{根据网络结构,获取当前点x的度数d x ,
计算Cx =d(x)/n-1;将<节点编号x,Cx >插入中心性映射表;}
步骤3 return网站用户中心性映射表.
算法2 构建预测对象集
预测对象集的构建过程为:预测对象集中记录的是作为预测对象的集合,该
集合具有一定的阈值.对于每个用户发布的信息均进行预测价值判断,当已存储
的预测对象超过阈值时,若新页面信息发布者的中心性高于预测对象集中信息的
发布者,则将中心性最小发布者的信息替换出来,将新页面信息加入预测对象
集.算法伪码如下.
输入:用户中心性映射表;用户新发布的信息
队列new_page;阈值.
输出:预测对象集Q.
步骤1 设置当前Q中最小中心性Cmin=0;
步骤2 new_page{p1,p2,…,pn},
for每个pj∈用户x
{ 查中心性映射表,得Cx;
if(Cx≥Cmin){
if(sizeof(Q)<阈值)
预测对象集Q=:Q+pj;
else{
pj 随机替换掉Q中具有最小中心
性用户发布的信息pmin;
重置Cmin;}
}
}
步骤3 return Q.
算法3 PUR-SNS
经过PURM的初始化和预测对象集的构建,PUR-SNS算法初始化工作已
完成,算法伪码如下.
输入:系统的缓存容量;预测对象集Q;用户访问请求队列R={R1,R2,…,
Rn}.
输出:缓存对象集S.
步骤1 for访问请求队列R={R1,R2,…,Rn}
{ if(S+Ri <系统的缓存容量)
S:=S+Ri;
else{
选出S中键值最小的缓存对象Rx;
while(Rx∈Q){Rx =S中其余键值最小的对象;}
S:=S-Rx;
S:=S+Rj;
}
}
步骤2 return缓存对象集S.
4、隐马尔可夫模型(HMM)
马尔可夫(Markov)过程是指在事件的发展过程中,若每次状态的转移都仅与
前一时刻的状态有关,而与过去的状态无关,或者说状态转移过程是无后效性的,
则这样的状态转移过程就称为马尔可夫过程。马尔可夫预测法就是一种预测事件
发生的概率的方法,它是基于马尔可夫链,根据事件的目前状况预测其将来各个
时刻 (或时期)变动状况的一种预测方法。
隐马尔可夫模型的状态则不是确定可测的,而是有一定的观测概率分布,因
此根据观测量无法确定具体是哪个状态,隐马尔可夫模型(HMM)可以用五个
元素来描述,包括2个状态集合和3个概率矩阵:
1. 隐含状态 S,这些状态之间满足马尔可夫性质,是马尔可夫模型中实际所
隐含的状态。这些状态通常无法通过直接观测而得到。(例如S1、S2、S3等等)
2. 可观测状态 O,在模型中与隐含状态相关联,可通过直接观测而得到。(例
如O1、O2、O3等等,可观测状态的数目不一定要和隐含状态的数目一致。)
3. 初始状态概率矩阵 π,表示隐含状态在初始时刻t=1的概率矩阵,(例如
t=1时,P(S1)=p1、P(S2)=P2、P(S3)=p3,则初始状态概率矩阵 π=[ p1 p2 p3 ].
4. 隐含状态转移概率矩阵 A。描述了HMM模型中各个状态之间的转移概
率。其中Aij = P( Sj | Si ),1≤i,,j≤N.表示在 t 时刻、状态为 Si 的条件下,在 t+1 时
刻状态是 Sj 的概率。
5. 观测状态转移概率矩阵 B (英文名为Confusion Matrix,直译为混淆矩阵
不太易于从字面理解)。令N代表隐含状态数目,M代表可观测状态数目,则:
Bij = P( Oi | Sj ), 1≤i≤M,1≤j≤N.表示在 t 时刻、隐含状态是 Sj 条件下,观察状态
为 Oi 的概率。
总结:一般的,可以用λ=(A,B,π)三元组来简洁的表示一个隐马尔可夫模型。
隐马尔可夫模型实际上是标准马尔可夫模型的扩展,添加了可观测状态集合和这
些状态与隐含状态之间的概率关系。
⎟
⎠
⎞
⎜
⎜
⎜
⎝
⎛


发布评论