亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? frequent1set.java

?? apriori算法 特別有用 主要用JAVA編寫的
?? JAVA
字號:
import java.util.*;

public class frequent1set {
	
	/*
	 * 連接步:對每一個子集,若前面的元素均相同而最后一個不相同時,進行連接
	 */
	public static ArrayList<String> connect(ArrayList<String> preFrequentList)
	{
		ArrayList<String> initCandidate=new ArrayList<String>();//initCandidate為初始候選n項集
		StringBuffer buf1=new StringBuffer();
		
		for(int i=0;i<preFrequentList.size();i++)    //頻繁n-1項集中的所有元素
		{
			String[] s1=preFrequentList.get(i).split(",");//l1
			
			String[] s=new String[s1.length+1];	//l1連接l2后產(chǎn)生的候選集放入s中
			
			for(int j=i+1;j<preFrequentList.size();j++)
			{
				String[] s2=preFrequentList.get(j).toString().split(",");//l2
				
				for(int k1=0;k1<s1.length;k1++)//串內(nèi)部相比較
				{
					if(!s1[k1].equals(s2[k1]))
						if(k1==s1.length-1)//只最后一個不相同時就連接
						{
							for(int k2=0;k2<s1.length;k2++)
							{	
								s[k2]=s1[k2];
							}
							s[s.length-1]=s2[s2.length-1];
							
							for(int k2=0;k2<s.length;k2++)
							{
								buf1.append(",");
								buf1.append(s[k2]);
							}  
							
							initCandidate.add(buf1.substring(1).toString());//將所求的每一個連接產(chǎn)生的候選加入候選n項集initCandidate中
							buf1.delete(buf1.indexOf(buf1.toString()),buf1.length());//刪除,以便下一輪的存入
						}
						else
							break;//若前面有元素不相同時,此次連接退出,進入下一次比較
				}	
			}
	
		}
		return initCandidate;
	}
	
	/*剪枝步:刪除非頻繁的候選
	 * 即求出初始候選n項集b2中的每個子集
	 * 若都在頻繁n-1項集beforeFrequent中,則加入真正的候選n項集b3
	 * 從而得出候選n項集b3*/
	public static ArrayList<String> pruning(ArrayList<String> tempList,ArrayList<String> beforeFrequent)
	{
		ArrayList b3=new ArrayList();
		StringBuffer buf1=new StringBuffer();
		
		int n = tempList.get(0).split(",").length;
		for(int i=0;i<tempList.size();i++)
		{
			ArrayList b=new ArrayList();
			
			String[] s1=tempList.get(i).toString().split(",");
			
			for(int j=0;j<s1.length&&j<n-1;j++)//對候選集中的每一個求其子集n-1項集存入b 
			{
				for(int k1=j+1;k1<s1.length;k1++)
				{
					int m=1;//m用于對候選n項集的每個子集的個數(shù)計數(shù)
					buf1.append(",");
					buf1.append(s1[j]);
					
					for(int k2=k1;k2<s1.length&&m<n-1;k2++)
					{
						buf1.append(",");
						buf1.append(s1[k2]);
						m++;	
					}
					b.add(buf1.substring(1).toString());
					buf1.delete(buf1.indexOf(buf1.toString()),buf1.length());
				}
			}//每一個求子集完畢
			int signal=1;
			//與頻繁n-1項集firstList進行比較,求出真正的候選n項集b3
			for(int k=0;k<b.size();k++)//若候選集的子集都是頻繁項集的元素,則加入b3
				if(!beforeFrequent.contains(b.get(k).toString()))
					signal=0;
				
			if(signal==1)
			{	
				buf1.append(tempList.get(i).toString());
				b3.add(buf1.toString());
				buf1.delete(buf1.indexOf(buf1.toString()),buf1.length());
			}

	//要		System.out.println(b);

		}
		return b3;
	}
	
	//與最小支持度比較,得出頻繁項集:若小于最小支持度,則從候選集中刪除,得到頻繁項集
	public static void findFrequent(ArrayList<String> candidate, int[] supportArray, int minSupport)
	{
		int m = 0;
		System.out.println();
		for(int i = 0; i < candidate.size(); i ++)
		{
			if(supportArray[m] < minSupport)
			{
				candidate.remove(i);
				i --;
			}
			m ++;
		}
	}

	
	
	/*
	 * 支持度計數(shù):掃描事務(wù)集transList,對剪枝后的頻繁項集candidateSet中的每一個子集計數(shù)
	 */
	public static int[] getSupport(ArrayList<String> candidateSet, ArrayList<String> transList)
	{
		int[] supportArray = new int[candidateSet.size()];
		String strTemp1, strTemp2;
		
		for(int i=0;i<candidateSet.size();i++)//對候選頻繁項集中的每一項
		{
			supportArray[i]=0;

			strTemp1=candidateSet.get(i);

			for(int j=0;j<transList.size();j++)//對事務(wù)集transList中的每個事務(wù)
			{
				strTemp2 = transList.get(j);
		
				if( compare(strTemp1,strTemp2))
				{
					supportArray[i]++;
				}
			}
		//	System.out.println("頻繁xxxxxxxxxx"+b3.size()+"項集:"+b3.get(i).toString()+"  "+num1[i]);
		}
		return supportArray;
	}
	
	/*
	 * 比較,用于計數(shù)
	 */
	public static boolean compare(String str1, String str2)
	{
		String[] strtemp1=str1.split(",");
		
		//String[] strn=str2.split(",");
		
		int count =0;
		/*若事務(wù)集中的子集str2包含頻繁項集中的子集strtemp1的每一個元素,則count+1;
		 * 若count與頻繁項集中的子集的元素個數(shù)相同,則返回true
		*/
		for(int i=0;i<strtemp1.length;i++)
		{
			if(str2.contains(strtemp1[i]))
				count++;
		}
		if(count==strtemp1.length)
			return true;
			
		return false;
	}
	
	
	/*
	 * 求出所有的成員存入candidateList1
	 */
	public static void putContent(ArrayList<String> candidateList1,ArrayList<String> transList )
	{
		String[] strtemp;
		for(int i=0; i<transList.size(); i++)
		{
			strtemp=transList.get(i).split(",");
			for(int j=0; j<strtemp.length; j++)
			{
				
				if(!candidateList1.contains( strtemp[j].trim()))
					candidateList1.add( strtemp[j].trim());				
			}			
		}
	}
	
	/*
	 * 排序:升序
	 */
	public static void sort(ArrayList<String> strList)
	{
		for(int i=0;i<strList.size()-1;i++)
		{
			String strTemp1=strList.get(i);
			String temp=strTemp1;
			for(int j=i+1;j<strList.size();j++)
			{
				String strTemp2=strList.get(j);
				if(strTemp1.compareTo(strTemp2)>0)//s1>s2時需交換位置
				{
					temp=strTemp1;
					strTemp1=strTemp2;
					strTemp2=temp;
					strList.remove(i);
					strList.add(i,strTemp1);
					strList.remove(j);
					strList.add(j,strTemp2);
				}
			}
		}  
	}
	
	
	
	public static void main(String[] args)
	{
		ArrayList<String> transList=new ArrayList<String>();//事務(wù)集
		ArrayList<String> candidateList1=new ArrayList<String>();
		
		StringBuffer buf1=new StringBuffer();
		StringBuffer output = new StringBuffer();

		int min_support=2;
		transList = Util.getList("d:\\input.txt"); 
		
		/*
		 * 求頻繁一項集
		 */
		putContent(candidateList1, transList);//求候選1項集
		sort(candidateList1);//候選1項集排序
		
		int[] supportArray = getSupport(candidateList1,transList);//求一項集的支持度存入supportArray
		
		findFrequent(candidateList1,supportArray,min_support);//與最小支持度進行比較,求出頻繁1項集
		supportArray = getSupport(candidateList1,transList);//支持度計數(shù)
		
		
		//將頻繁1項集的結(jié)果存入output.txt文件中
		output.append("頻繁1項集:");
		output.append("\n");
		output.append("項集   "+"支持度計數(shù)");
		output.append("\n");
		for(int i = 0; i < candidateList1.size(); i++ )
		{
			output.append(candidateList1.get(i));
			output.append("   "+supportArray[i]);
			output.append("\n");
		}
		
		ArrayList<String> preFrequentList=new ArrayList<String>();
		preFrequentList.addAll(candidateList1);

		ArrayList<String> initCandidate = preFrequentList;
		
		/*
		 * 求頻繁二項集以及其后頻繁項集
		 */
		while(initCandidate.size() > 0)
		{
			initCandidate = connect(preFrequentList);//連接步,得到初始候選集
			
			ArrayList<String> candidate=new ArrayList<String>();
			
			candidate = pruning(initCandidate, preFrequentList);//剪枝步,刪除非頻繁的候選,得到真正的候選集

			supportArray = getSupport(candidate,transList);//支持度計數(shù)
			
			/*for(int i = 0; i < supportArray.length; i ++)
			{
				System.out.print(" " + supportArray[i] + " ");
			}*/
			
			findFrequent(candidate,supportArray,min_support);//求頻繁項集
			if(candidate.size()>0)
			{
				supportArray = getSupport(candidate,transList);//支持度計數(shù)
								
					//將頻繁n項集的結(jié)果存入output.txt文件中
					
					Integer lm=new Integer(candidate.get(0).split(",").length);

					output.append("頻繁");
					output.append(lm.toString());
					output.append("項集: ");
					output.append("\n");
					output.append("項集   "+"支持度計數(shù)");
					output.append("\n");
					for(int i = 0; i < candidate.size(); i++ )
					{
						output.append(candidate.get(i));
						output.append("   "+supportArray[i]);
						output.append("\n");
					}
					
				//	output.append(candidate.toString());
				//	output.append("\n");

			}
			initCandidate = candidate;
			preFrequentList = initCandidate;
				
		}		
		
		Util.writeFile(output.toString(), "d:\\output.txt");
	}
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲一区二区在线| 精品写真视频在线观看 | 日韩av二区在线播放| 色先锋aa成人| 亚洲一区二区三区四区不卡| 欧美亚洲一区三区| 三级在线观看一区二区| 日韩欧美不卡一区| 国产一区二区三区av电影 | 91国内精品野花午夜精品| 亚洲自拍欧美精品| 欧美一级欧美一级在线播放| 韩国精品一区二区| 亚洲国产精品激情在线观看| 99re6这里只有精品视频在线观看| 亚洲日本va午夜在线影院| 91成人免费在线| 日韩激情在线观看| 国产日产亚洲精品系列| 成人av在线播放网站| 亚洲自拍偷拍图区| 精品国产91乱码一区二区三区 | 91免费精品国自产拍在线不卡| 亚洲午夜激情网站| 精品国产乱码久久久久久浪潮| 成人在线综合网站| 婷婷成人综合网| 欧美激情一区二区在线| 欧美日韩不卡一区| 国产91综合一区在线观看| 亚洲一区在线免费观看| 精品国产免费人成电影在线观看四季| 国产不卡视频一区| 日本不卡高清视频| 国产精品久久一级| 欧美一区二区福利视频| 99re在线精品| 国产精品77777| 一本色道久久综合亚洲aⅴ蜜桃 | 成人激情黄色小说| 蜜桃一区二区三区四区| 亚洲精品乱码久久久久久久久| 日韩免费福利电影在线观看| 91福利视频久久久久| 国产成人亚洲综合a∨婷婷图片| 亚洲午夜视频在线观看| 国产精品全国免费观看高清 | 亚洲福利一区二区| 国产精品久久午夜夜伦鲁鲁| 日韩欧美高清dvd碟片| 色偷偷久久人人79超碰人人澡| 国产一区二三区好的| 天天操天天色综合| 不卡av电影在线播放| 国产欧美一区二区在线| 秋霞午夜鲁丝一区二区老狼| 18成人在线观看| 国产人妖乱国产精品人妖| 日韩欧美你懂的| 在线91免费看| 欧美日韩在线三区| 欧洲精品视频在线观看| 成人一区二区三区视频在线观看| 久久狠狠亚洲综合| 日本欧美加勒比视频| 天堂成人免费av电影一区| 有码一区二区三区| 综合av第一页| 亚洲欧美aⅴ...| 最新久久zyz资源站| 欧美国产激情二区三区 | 韩国女主播一区| 日本午夜一本久久久综合| 五月综合激情婷婷六月色窝| 亚洲国产美国国产综合一区二区| 亚洲精品第一国产综合野| 国产精品福利一区| 国产精品久久久久永久免费观看 | 欧美一区二视频| 欧美老年两性高潮| 欧美美女bb生活片| 制服丝袜中文字幕亚洲| 91精品一区二区三区在线观看| 欧美日韩一区二区三区视频| 欧美裸体bbwbbwbbw| 欧美三级日韩三级国产三级| 欧美日韩不卡一区二区| 欧美一区二区高清| 欧美变态口味重另类| 久久久久久**毛片大全| 欧美高清一级片在线观看| 亚洲色图视频免费播放| 亚洲精选在线视频| 日本道在线观看一区二区| 色综合久久综合| 欧美三日本三级三级在线播放| 在线播放/欧美激情| 久久综合色8888| 国产欧美一区视频| 一区二区三区久久久| 日韩中文字幕一区二区三区| 免费亚洲电影在线| 国产成人99久久亚洲综合精品| 成人高清在线视频| 欧美三级乱人伦电影| 91精品国产aⅴ一区二区| 久久女同精品一区二区| 亚洲天堂中文字幕| 午夜精品免费在线观看| 激情综合网天天干| 9人人澡人人爽人人精品| 欧美日韩电影在线播放| 国产视频不卡一区| 一区二区三区欧美在线观看| 九九热在线视频观看这里只有精品| 国产91丝袜在线18| 欧美美女黄视频| 中国色在线观看另类| 亚洲自拍偷拍九九九| 黄色资源网久久资源365| 99热在这里有精品免费| 91麻豆精品国产91久久久久久久久| 久久久天堂av| 亚洲线精品一区二区三区八戒| 国产一区二区福利| 欧美乱妇20p| 中文字幕一区二区三区四区不卡| 日韩不卡免费视频| 97国产一区二区| 久久综合av免费| 日产国产高清一区二区三区| 成人激情视频网站| 精品嫩草影院久久| 午夜精品在线看| 不卡一区二区中文字幕| 日韩欧美国产麻豆| 亚洲成人在线观看视频| 99久久精品国产一区| 日韩精品一区二区三区四区| 亚洲最大色网站| 成熟亚洲日本毛茸茸凸凹| 欧美日韩卡一卡二| 亚洲美女免费在线| 国产成人精品www牛牛影视| 91精品国产手机| 亚洲综合免费观看高清在线观看| 国产91精品在线观看| 欧美成人aa大片| 午夜久久福利影院| 欧美在线不卡一区| 亚洲欧洲中文日韩久久av乱码| 国产成人免费av在线| 精品国产乱码久久久久久蜜臀 | 国产不卡在线视频| 久久精品亚洲精品国产欧美 | 成人一区二区在线观看| 美女脱光内衣内裤视频久久网站| 欧美丝袜自拍制服另类| 亚洲男人都懂的| 波多野结衣中文一区| 中文子幕无线码一区tr| 国产成人午夜精品5599| 亚洲线精品一区二区三区八戒| 日韩精品中文字幕在线不卡尤物| 奇米精品一区二区三区四区 | 国产精品女主播av| 国产麻豆精品theporn| 国产精品免费看片| 色综合久久综合网欧美综合网| 18成人在线观看| www国产成人| 日韩av成人高清| 欧美一级精品在线| 精品一区二区三区蜜桃| 欧美精品一区二区三| 极品尤物av久久免费看| 欧美不卡一二三| 国产在线精品一区二区不卡了| 欧美成人女星排名| 久久99久久精品欧美| 26uuu国产一区二区三区| 极品美女销魂一区二区三区| 久久久亚洲欧洲日产国码αv| 久久精品国产99国产精品| 久久这里都是精品| 成人少妇影院yyyy| 一区二区在线观看视频在线观看| 色婷婷激情久久| 日韩成人免费在线| 2023国产一二三区日本精品2022| 国内精品久久久久影院色| 国产欧美日产一区| 在线影院国内精品| 日韩精品成人一区二区三区| 蜜芽一区二区三区| 精品久久久久久久久久久久包黑料 | 91麻豆精品一区二区三区| 一区二区三区视频在线看| 7777精品伊人久久久大香线蕉| 国产曰批免费观看久久久|