资源简介
Java语言实现的Apriori算法,数据可由excel数据表格提供,eclipse导入即可运行

代码片段和文件信息
package asocciationRule.apriori;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
public class AprioriAlgorithm {
private Map> txDatabase; // 事务数据库
private Float minSup; // 最小支持度
private Float minConf; // 最小置信度
private Integer txDatabaseCount; // 事务数据库中的事务数
private Map>> freqItemSet; // 频繁项集集合
private Map Set>> assiciationRules; // 频繁关联规则集合
public AprioriAlgorithm(Map> txDatabase Float minSup
Float minConf) {
this.txDatabase = txDatabase;
this.minSup = minSup;
this.minConf = minConf;
this.txDatabaseCount = this.txDatabase.size();
freqItemSet = new TreeMap>>();
assiciationRules = new HashMap Set>>();
}
public Map Float> getFreq1ItemSet() {//zzx 生成一阶频繁项集
Map Float> freq1ItemSetMap = new HashMap Float>();
Map Integer> candFreq1ItemSet = this.getCandFreq1ItemSet();
Iterator Integer>> it = candFreq1ItemSet
.entrySet().iterator();
while (it.hasNext()) {
Map.Entry Integer> entry = it.next();
// 计算支持度
Float supported = new Float(entry.getValue().toString())
/ new Float(txDatabaseCount);
if (supported >= minSup) {
freq1ItemSetMap.put(entry.getKey() supported);
}
}
return freq1ItemSetMap;
}
public Map Integer> getCandFreq1ItemSet() {
Map Integer> candFreq1ItemSetMap = new HashMap Integer>();
Iterator>> it = txDatabase.entrySet()
.iterator();
// 统计支持数,生成候选频繁1-项集
while (it.hasNext()) {
Map.Entry> entry = it.next();
Set itemSet = entry.getValue();
for (String item : itemSet) {
Set key = new HashSet();
key.add(item.trim());
if (!candFreq1ItemSetMap.containsKey(key)) {
Integer value = 1;
candFreq1ItemSetMap.put(key value);
} else {
Integer value = 1 + candFreq1ItemSetMap.get(key);
candFreq1ItemSetMap.put(key value);
}
}
}
return candFreq1ItemSetMap;
}
/*
* zzx生成m+1阶候选项集
*/
public Set> aprioriGen(int m Set> freqMItemSet) {
Set> candFreqKItemSet = new HashSet>();
Iterator> it = freqMItemSet.iterator();
Set originalItemSet = null;
while (it.hasNext()) {
originalItemSet = it.next();
Iterator> itr = this.getIterator(originalItemSetfreqMItemSet);
while (itr.hasNext()) {
Set identicalSet = new HashSet(); // 两个项集相同元素的集合(集合的交运算)
identicalSet.addAll(originalItemSet);
Set set = itr.next();
identicalSet.retainAll(set); // identicalSet中剩下的元素是identicalSet与set集合中相同的元素
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9780 2016-03-23 20:58 apriori\AprioriAlgorithm.java
文件 2248 2014-09-15 15:15 apriori\ProperSubsetCombination.java
文件 2242 2014-09-15 15:15 apriori\TestAprioriAlgorithm.java
目录 0 2018-10-27 21:30 apriori\
- 上一篇:计算机专业毕业设计-外文翻译
- 下一篇:java文件资源管理器
相关资源
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
- Java 文件加密传输
- java做的房产管理系统
- 基于jsp的bbs论坛 非常详细
- [免费]java实现有障碍物的贪吃蛇游戏
- java Servlet投票实例
评论
共有 条评论