![64ae1ba2c33ac3424c9bb389b8888b23.png](https://i-blog.csdnimg.cn/blog_migrate/5d3a9e8a3378f87fcd650deed0610300.jpeg)
我叫水水,很高兴认识大家!
这是专栏的第11篇文章。其实本文章已经在我的公众号(公众号中不只有学习专题,还有很多大学学习资源分享、工具分享等等,文末有相关指路哦,欢迎关注撒~【微信搜索“CodingBugott”即可~】)中持续更新了,因为还想更新到知乎上,让更多的小伙伴可以看到啦~
Aprior
- 1. 基本思想
![ef3bda2c98e7f1d4bc2890d5aa79df74.png](https://i-blog.csdnimg.cn/blog_migrate/da1086ea8f4ebacf04fabe5e636deb50.jpeg)
![63756fdc7dfbfe56a2dca58541bd5567.png](https://i-blog.csdnimg.cn/blog_migrate/54741c7e8fb715f76fc1584d91bece01.jpeg)
![6cc58739ccd7619674a38d7aed429214.png](https://i-blog.csdnimg.cn/blog_migrate/85d2b0391f7bddc8bf289cbe4946005c.jpeg)
![2ee1f5ff5d51b00ac81323fdff6bf3a2.png](https://i-blog.csdnimg.cn/blog_migrate/051b942ff32c3eeca7ca656ec12bbb69.jpeg)
- 2. 例题解析
![d2aea761adc4654648d1c83e5d6ac5fd.png](https://i-blog.csdnimg.cn/blog_migrate/a4cc6064f1ccda227df74f7f61c62d25.jpeg)
![5e052288ee24730eb1e2b4e2b2eaadf1.png](https://i-blog.csdnimg.cn/blog_migrate/0514f14d49791cbc3ed168ced905a9c2.jpeg)
- 3. Matlab实现
1%Apriori算法主函数
2function [R, sup, conf] = apriori(D, min_sup, min_conf)
3R = [];
4sup = [];
5conf = [];
6%找出频繁集
7F = frequent(D, min_sup);
8
9%计算强关联规则
10m = size(F,1);
11for i = 1:m
12 Fk = F(i,:);
13 FL = find(Fk(1,:)>0);
14 for lSize = 1:size(FL,2)-1
15 FLChild = nchoosek(FL, lSize);
16 [FLX,FLY] = size(FLChild);
17 for x = 1:FLX
18 FP = F(i,:);
19 for y = 1:FLY
20 FP(FLChild(x,y)) = -1;
21 end
22 if compute_conf(FP,D) > min_conf
23 R = [R; FP];
24 sup = [sup;compute_sup(abs(FP),D)];
25 conf = [conf;compute_conf(FP,D)];
26 end
27 end
28 end
29end
30
31%计算可信度,S为要计算可信度的项集(有分条件与结论项)
32function [conf] = compute_conf(S, D)
33conf = compute_sup(abs(S),D) / compute_sup(S(1,:)<0,D);
34
35========================================
36%
37计算支持度,S为要计算支持度的项集
38function [sup] = compute_sup(S, D)
39count = 0;
40for i = 1:size(D,1);
41 if(all((D(i,:) - S) >= 0))
42 count = count + 1;
43 end
44end
45sup