论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
p= ai.head of node ;//p指向ai在模式树中
的位置
While (p!= null and ai.count>= Min_Sup)
{
查找p的前缀基,将p的前缀基和p连接,构
成模式b;
if (bi.count>= Min_Sup)
then
{
//bi.count 为模式b中p与p的前缀基中
的最小计数
在模式bi中保留p及其前缀基;
bi = bi. node_link
}
else
{
根据模式b中的p及其前缀基删除
PatternTree中的相应节点,重构子节点
与父节点,同时修改项目头表中的ai;
p=p. node_next//p指向 在模式树中的
下一个位置;
}
}
}
else
{
修改项目头结点的ai值;
删除模式树中相应的节点及其前缀基,重构父子
节点;
i++;
}
}
}
通过模式树的建立可以避免多次扫描事务数据库;同时利用count域有效的保留了项集的数目,避免大量产生频繁项集,对于减小空间时间复杂度起到了一定的作用。通过树形结构可以避免产生大量冗余规则。
通过对模式树的剪枝,可以减除在模式树产生过程中产生的大量冗余分枝,起到了减小空间复杂度的作用,同时可以利用输出模式B产生规则,避免了多项集的频繁出现,减小了时间复杂度。
4 结束语
本项目中通过模式树结构改进了Apriori算法,弥补了Apriori算法存在的缺陷。此种方法既能够对Apriori算法从时间复杂度和空间复杂度上进行改进,同时又避免了中间规则的产生。本研究表明,通过利用一个模式树结构来降低Apriori算法的存储复杂度,并同时减少冗余规则的出现,这对于Apriori算法的改进是一种有效的措施。
本文来自中国科教评价网