⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fpgrowth.java

📁 网上下载的用java写的fpgrowth算法的源代码
💻 JAVA
字号:
package association.fptree;

import java.io.*;
import java.util.LinkedList;
import association.fptree.ITree.Node;
/**
 * FP_growth算法
 * @author qjt
 *
 */
public class FPGrowth {
    int minSupport=1;
    CreateFPTree ct;
    ITree iTree;                                         //存储挖掘出的所有项集的树
    FPGrowth(){
    	ct=new CreateFPTree();
    }
    /*主程序*/
    public void Start(FPTree tree,ITree itr,int supp){
    	iTree=itr;
    	minSupport=supp;
    	FP_growth(tree,itr.head);
    }
    /**
     * fp-growth算法
     * @param  tree   FPtree
     * @param  head   频繁项集树的头结点
     * */
public void FP_growth(FPTree tree,LinkedList<Node> head){
    	FPTree           branch;                     //条件FPTree
    	String           itemName;
    	int              len,i=0,count;
    	LinkedList<Node> l,cl;
    	ITree            itr=new ITree();
    	ITree.Node       node;
 
    	l=head;
    	len=tree.itemTb.Length();
    	while(i<len){
    		count=tree.itemTb.ReadCount(i);
    		if (count<minSupport){
    			i++;
    			continue;
    		}
    		itemName=tree.itemTb.ReadItem(i);
    		node=itr.new Node(itemName,count);
    		l.add(node);
    		branch=ct.ConditionFPT(tree,itemName);       //产生条件FP树
    	    if (branch==null){                           /*如果没有产生条件FPTree,
    	    	                                              当一个项只是root结点下的子结点是就不会产生条件FPTree */
    	        i++;
    	    	continue;
    	    }	
    	    cl=new LinkedList<Node>();
    	    node.cNode=cl;
    		FP_growth(branch,cl);
    		branch=null;
    	    i++;
    	}
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -