对于Apriori算法,Apriori算法是一种挖掘关联规则的频繁项集算法,在很多领域中应用广泛。

它的算法思想是:

1先找到所有的小频繁项集,

2然后做连接步骤,将小频繁项集拼接作为候选集,

3然后对候选集做剪枝步骤。

4将候选集中支持度小于最小支持度的项删除。

5循环上述步骤,直到找到所有最大项集。

这个算法的核心是运用了频繁项集的反单调性。即先验性质

频繁项集的所有非空子集都是频繁的

利用上述思想,我准备用java来实现它,能够对给定的数据进行挖掘关联规则。

首先我准备使用文件来作为数据输入,因为对于要挖掘的数据集肯定是巨大的,利用文件输入才比较合适。

1.对于文件格式,以行为单位输入,每行表示一个事务集。

2.对于数据在java中存储结构我使用Map来进行存储的。

3.代码可以展示程序的步骤,输出算法每次进行的中间结果。最后得到频繁项集。

4.数据集中的项在程序中只能为单个字符,读者可以修改成处理字符串的项。

5.程序的复杂度可能存在很多改进的地方,对于大型数据集的处理还有待优化。

下面为具体代码实现:

package pack1;

import java.io.*;

import java.util.*;

import java.util.Map.Entry;

public class apriori {

//字符串排序(冒泡实现)

public static String sort(String str){

char[]

list=str.toCharArray();

for (int i = 1; i <

str.length(); i++) {

for (int j =

i - 1; j > -1; j--) {

if

(list[j + 1] < list[j]) {

char

a = list[j + 1];

list[j

+ 1] = list[j];

list[j]

= a;

}

}

}

return new String(list);

}

//字符串去重方法

public static String fun(String str){

String[]

arr=str.split("");

StringBuilder sb= new

StringBuilder(); //这里要注意

for(int i=1;i

if(sb.indexOf(arr[i]) < 0){

sb.append(arr[i]);

}

}

return sb.toString();

}

//抽取出 求对于给定集的频繁度的方法

public static int pin(String s, List al){

int count=0;

for(int i=0;i

boolean b=true;

for(int k=0;k

b=b&&al.get(i).contains(""+s.charAt(k));

}

if(b)

count++;

}

return count;

}

public static void main(String[] args) throws

IOException{

// System.out.println(sort(fun("bcdsaffaklaslk")));

int min=3;

// 定义文件输入流

BufferedReader br=new

BufferedReader( new FileReader("G:\\aaa.txt"));

// 定义存储数据文件

File f=new

File("G:\\bbb.txt");

// 定义文件输输出流

// 定义map集合

HashMap hm=new

HashMap<>();

ArrayList al=new ArrayList<>();

List houl=new ArrayList<>();

// 按行读取文件,装入集合

String line;

while((line=br.readLine())!=null){

al.add(line);

String[]

arr=line.split(" ");

Set

key=hm.keySet();

for (int i =

0; i < arr.length; i++) {

if(key.contains(arr[i])){

int

value=hm.get(arr[i])+1;

hm.put(arr[i],

value);

}else{

hm.put(arr[i],1);

}

}

}

br.close(); while(houl.size()!=1){

java实现数据挖掘_数据挖掘Apriori算法的java实现相关推荐

  1. java红包记录_微信红包算法(java)

    package com.example.ant.common.tools; import java.util.LinkedList; import java.util.List; /** * 描述:红 ...

  2. java环形链表_数据结构和算法(四)Java实现环形链表

    1. 数据结构和算法(四)Java实现环形链表 1.1 约瑟夫问题 约瑟夫问题:公元66年,约瑟夫不情愿地参与领导了犹太同胞反抗罗马统治的起义,后来起义失败,他和一些宁死不降的起义者被困于一个山洞之中 ...

  3. Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(

    2019独角兽企业重金招聘Python工程师标准>>> 在Java ME游戏开发中,碰撞检测算法在Java?ME中的实现(百搜技术) 在Java ME游戏开发中,经常需要进行碰撞检测 ...

  4. 数据挖掘之关联规则(Apriori算法)

    整理写一份比较易懂的Apriori算法: 关联规则想必大家都是听说过 尿布和啤酒的故事: 在一家超市里,有一个有趣的现象:尿布和啤酒赫然摆在一起出售.但是这个奇怪的举措却使尿布和啤酒的销量双双增加了. ...

  5. 数据挖掘实验之Apriori算法

    数据挖掘实验Apriori算法,在指导书上看着写的,仅供参考. 数据集如下: 购物单号    购物项目 T1    1 3 4 T2    2 3 5 T3    1 2 3 5 T4    2 5 ...

  6. python数据挖掘(5.Apriori算法)

    数据源 第一章我们介绍了最基础的亲和性分析,尝试了所有的规则计算了所有的置信度和支持度,但是这个方法效率不高而且我们使用的数据集只有5种商品,但是实际生活中即使是小商店的商品也会超过百种,而网店商品的 ...

  7. python电子病历数据挖掘_数据挖掘技术在基于XML的电子病历中的应用研究

    第1章绪论. 1论文的选题及其研究意义 2医院信息系统的发展状况................................ -- 选题的国内外研究现状 论文的研究内容及组织........ -- ...

  8. java 求最大公因数_三种算法求最大公约数——Java实现 | 学步园

    求两个自然数m和n的最大公约数. 连续整除检测: 1. t=min{m,n}: 2. m除以t,如果余数为0,则执行步骤3,否则,执行步骤4: 3. n除以t,如果余数为0,返回t的值作为结果,否则, ...

  9. java微信红包开发_微信红包算法(java)

    package com.example.ant.common.tools; import java.util.LinkedList; import java.util.List; /** * 描述:红 ...

最新文章

  1. 计算机组成考试题及答案,计算机组成测试题一参考答案
  2. Java服务提供_JAVA 服务提供者框架介绍
  3. java多线程的同步
  4. Session分布式共享 = Session + Redis + Nginx
  5. codeforces 501 C,D,E
  6. Oracle 11g 安装后续——开发工具篇
  7. Linux隐藏文件标识
  8. golang的一个简单小爬虫demo学习记录
  9. matlab根据结构体数组,用邻接矩阵和序遍历创建树形结构:
  10. 【渝粤教育】广东开放大学 网络市场调查与预测 形成性考核 (23)
  11. Centos7 安装netcat(NC瑞士军刀)
  12. paip.JAVA的几大优点与缺点相比C#.NET.txt
  13. 计算机专业学科建设3,学科建设-华中科技大学计算机科学与技术学院
  14. 强化学习之Q-Learning(附代码)
  15. 怎样解决迅雷下载时的版权限制-两招解决迅雷下载版权限制
  16. 英国资深律师称加密货币和智能合约必然将成为社会主流
  17. 新手前端程序员就职指南之 - 入职第一天
  18. JRE和JDK的区别(笔记)
  19. 本地数据库迁移至服务器数据库的教程
  20. 我的世界我服务器注册密码大全,网易账号密码大全我的世界 | 手游网游页游攻略大全...

热门文章

  1. OBPS开发平台——导入功能vb代码解析
  2. 相机内参 k_4K相机与智能手机中的4K视频相比如何
  3. Django基础之MVT
  4. U盘超级加密3000
  5. Automatic extrinsic calibration between a camera and a 3D Lidar using 3D point and plane corresponde
  6. 播音主持如何运气发声?早上应该如何练声?
  7. TI DSP系列分类
  8. 侏罗纪世界手游显示无法登陆到服务器,侏罗纪世界手游闪退怎么办 游戏闪退解决方法...
  9. 一个误操作导致 5.4 万 Star 全部归零,10年的心血...
  10. swagger no content