Apriori中的hash tree
来源:互联网 发布:天元绘图软件 编辑:程序博客网 时间:2024/05/16 23:55
总算把hash tree算法弄懂了,不敢独乐,特来分享
hash tree(哈希树),是由tree和hash table结合,旨在优化hash table冲突解决方案的一种数据结构。
在链式hash table中,若关键字发生冲突,则创建单个新节点链到冲突节点之后,并把关键字插入到新节点。
而在hash tree结构中,若关键字发生冲突,则创建一组新节点链到冲突节点之后,并把关键字hash后插入到某个新节点中。
在Apriori算法中,hash tree有以结构:
struct node {struct node * branch[m];//指向下一层子节点的m个指针int level;//该节点所处层次int leaf_node;//叶节点标志Item setType * candidate_Itemsets;//指向候选项集}每个非叶节点中含有指向下一层子节点的m指针,而叶节点里存有指向候选项集的指针
项集插入hash tree的过程如下:
1:用k表示插入进行到第几层,初始值为1.
2:对输入项集的第k项进行hash,得到n
3:判断当前层的根节点的第n个子节点是否为叶节点,若非则跳到1继续
4:将项集插入到该叶子节点是否
5:判断该叶子节点是否已满,若是则进行分裂,否则插入结束,分裂过程是
将该节点原有的项集和新项集按第level项进行hash,然后分别插入到下一层
的新叶节点中,而原叶节点变为非叶节点
例如
哈希函数如下图所示,1,4,7映射到左子树,2,5,8映射到中子树,3,6,9映射到右子树
且每个叶子节点最多含有三个项集
现有以下项集待插入:{1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}
插入第一个项集时,用项集的第1项做hash,映射到根节点的左子树,于是得到:
插入第二项集时,仍然用第1项做hash,映射到同一个叶节点:
第三项插入时同理
插入第四项时,仍然映射到同一个叶节点,但由于叶节点最大项数为3,所以需要进行分裂操作,把原来的3项集和新的项集以第2项做hash,映射到新的叶节点:
另外码农小店请支持哦~http://deepdiscuz.taobao.com/
- Apriori中的hash tree
- Apriori中的hash tree
- 基于Hash技术改进Apriori算法
- Apriori算法分析以及FP-tree算法
- Merkle Tree 或 Hash Tree
- hash tree or Merkle tree
- Merkle Hash Tree
- Merkle Hash Tree
- Merkle Hash Tree
- 查找 Hash VS Tree
- Apriori
- Apriori
- Apriori
- Apriori
- Apriori
- apriori
- Apriori
- Apriori
- Devexpress gridview 常用设置
- Linux网络编程socket错误分析【转】
- HSSFWorkBooK用法
- 在webconfig中写好连接后,在程序中如何调用?
- 电梯演说六个要点
- Apriori中的hash tree
- java解析CRL文件
- 好想牵一次你的手 - Qzone日志
- Js实现多张图片有规律的随机切换
- C#与.NET4.0中WCF章节-未解决程序问题
- 有点失落
- 操作系统——文件管理
- poj 3468 A Simple Problem with Integers
- Dijkstra最短路径求解(不考虑权值为负的情况)