• 大小: 47KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签: Apriori  Hadoop  mapreduce  

资源简介

基于Apriori算法的频繁项集Hadoop mapreduce

资源截图

代码片段和文件信息


import java.util.BitSet;  
import java.util.ArrayList;  
import java.util.Iterator;
import java.util.List;
import java.util.Arrays;

public class FindSubset
{  
    private boolean[] start;  
    private boolean[] end;  
    private List> subsets;
private String[] elements;
    public FindSubset(List items)
    {  
        initrun(items);
    }
private void initrun(List items)
{
int n = items.size();
this.start = new boolean[n];
        this.end = new boolean[n];
        this.subsets = new ArrayList>();
        this.elements = new String[n];
        items.toArray(elements);
}
    public void execute(int n)
    {
        int size = elements.length;
boolean former last;
boolean startBit endBit;
int i j;
        this.subsets.clear();
        if(n > size)
         return;
        for (i = 0; i < n; i++) {
start[i] = true;
end[i+size-n] = true;
        }  
        for (i = 0; i < size-n; i++) {  
end[i] = false;
start[i+n] = false;
}      
        update();
       
        for (;Arrays.equals(startend)==false; ) { 

endBit = start[size - 1]; 
            for (i = size - 1; i > 0; i--) {  
former = start[i - 1];  
last = start[i];
                if (former == true && last == false) {
                    break;  
                }  
            }  
if (i == 0) {
                break;  
            } else {
i--;
start[i] = false;
                start[i + 1] =  true;
                if (endBit == false) {  
                    update();                    
                } else {  
                    i++;  
                    for (j = i + 1; j < size; j++) {  
                        if (start[j] == true) {                  
                            start[j] =  false;  
                            start[i + 1] = true;
                            i++;
                            update(); 
                        }  
                    }
                }
            }
        }
    }  
    public void update() {
        List temp = new ArrayList();
int i;
        for (i = 0; i < elements.length; i++) {  
            if (start[i] == true) {
                temp.add(elements[i]);
            }
        }
        if(subsets.contains(temp)==false)
         subsets.add(temp);
    }  
    public List> getSubsets() {  
        return this.subsets;
    }  
      
    public void clearSubsets(){
int i;
for(i = 0; i subsets.get(i).clear();
        this.subsets.clear();  
    }

public static void main(String[] args)
{
//for test do not use it
FindSubset sbr = null;
ArrayList ls = new ArrayList();
List> res = null;
String str = “abcdefghijklmnopqrstuvwxyz“;
int s = Integer.parseInt(args[0]);
int k = Integer.parseInt(args[1]);
int ij;
for(i = 0; i ls.add(new String(str.substring(ii+1)));
sbr = new FindSubset(ls);
sbr.execute(k);
res

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-09-18 19:14  CH 10.5 - FreqItemSet\
     文件        7278  2014-08-02 18:15  CH 10.5 - FreqItemSet\ReadMe-FreqItemSet.html
     文件       45578  2014-08-02 18:17  CH 10.5 - FreqItemSet\ReadMe-FreqItemSet.pdf
     目录           0  2014-09-18 19:14  CH 10.5 - FreqItemSet\src\
     文件          86  2014-07-22 19:50  CH 10.5 - FreqItemSet\src\data
     文件        3064  2014-07-22 19:50  CH 10.5 - FreqItemSet\src\FindSubset.java
     文件        2649  2014-07-22 19:50  CH 10.5 - FreqItemSet\src\FreqItemSetMain.java
     文件        2693  2014-07-22 19:50  CH 10.5 - FreqItemSet\src\FreqItemSetRun.java

评论

共有 条评论