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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? aprioriapplet.java

?? 窗口版本的java apriori源代碼窗 口版本的java apriori源代碼窗 口版本的java apriori源代碼窗 口版本的java apriori源代碼窗 口版本的java aprior
?? JAVA
字號:
import java.awt.*;
import java.applet.*;
import java.awt.event.*;
import java.lang.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.util.StringTokenizer;
import java.util.Random;
import java.util.Vector;

public class AprioriApplet extends Applet
						implements ActionListener {

	private Label lblItems = new Label("Items");
	private TextField tfItems = new TextField("beef,pork,veel,cheese,bag,milk,juice,salsa,ice-cream,bread,bacon,oil,sausage,onion,tomato,potato,cookies,jam,butter,water");

	private Label lblMinSup = new Label("Minimum Support");
	private TextField tfMinSup = new TextField("5%");

	private Label lblTrans = new Label("Number of Transactions");
	private TextField tfTrans = new TextField("100");

	private Label lblMinConf = new Label("Minimum Confidence");
	private TextField tfMinConf = new TextField("40%");

	private Button btnTransaction = new Button("Create Transactions");
	private Button btnRule = new Button("Identify Rules");
	private List lstTransactions = new List();
	private List lstRules = new List();

	private Apriori assorule = null;

    public void init() {
		btnTransaction.addActionListener(this);
		btnRule.addActionListener(this);

		setLayout(null);
		setSize(600, 600);

		lblItems.setBounds(10, 10, 35, 22);
		add(lblItems);
		tfItems.setBounds(48, 10, 542, 22);
		add(tfItems);

		lblTrans.setBounds(10, 35, 135, 22);
		add(lblTrans);
		tfTrans.setBounds(155, 35, 50, 22);
		add(tfTrans);

		lblMinSup.setBounds(220, 35, 100, 22);
		add(lblMinSup);
		tfMinSup.setBounds(323, 35, 50, 22);
		add(tfMinSup);

		lblMinConf.setBounds(380, 35, 120, 22);
		add(lblMinConf);
		tfMinConf.setBounds(510, 35, 50, 22);
		add(tfMinConf);

		btnTransaction.setBounds(75, 60, 150, 26);
		add(btnTransaction);

		btnRule.setBounds(375, 60, 150, 26);
		add(btnRule);

		lstTransactions.setBounds(10, 90, 285, 500);
		add(lstTransactions);

		lstRules.setBounds(305, 90, 280, 500);
		add(lstRules);

		assorule = new Apriori(lstTransactions, lstRules);
	}

    private double getDoubleValue(String str_num){
		boolean percentage = false;
		if(str_num.indexOf("%") > 0){
			str_num = str_num.substring(0, str_num.length()-1);
			percentage = true;
		}
		double value = Double.parseDouble(str_num);
		if(percentage){
			value /= 100;
		}

		return value;
	}

    public void actionPerformed(ActionEvent ae){
		if(ae.getSource() == btnTransaction){
			int transNum = Integer.parseInt(tfTrans.getText());
			assorule.setOptions(tfItems.getText(), transNum);
			assorule.createTransactions();
		} else {
			if(lstTransactions.getItemCount() == 0){
				int transNum = Integer.parseInt(tfTrans.getText());
				assorule.setOptions(tfItems.getText(), transNum);
				assorule.createTransactions();
			}
			double minSup = getDoubleValue(tfMinSup.getText());
			double minConf = getDoubleValue(tfMinConf.getText());

			assorule.setOptions(minSup, minConf);
			assorule.identifyRules();
		}
	}
}

class Apriori {
	private int trans_number;
	private double min_support;
	private double min_confidence;

	private List lstTransactions;
	private List lstRules;

	Vector vec_items = new Vector();
	Vector vec_transactions = new Vector();
	Vector vec_rules = new Vector();

	public Apriori(List lst_trans, List lst_rules){
		trans_number = 100;
		min_support = 0.2;
		min_confidence = 0.6;

		lstTransactions = lst_trans;
		lstRules = lst_rules;
	}

	public void setOptions(String s_items, int trans_num,
					double min_sup, double min_conf)
	{
		trans_number = trans_num;
		min_support = min_sup;
		min_confidence = min_conf;

		iniItems(s_items);
	}

	public void setOptions(String s_items, int trans_num)
	{
		trans_number = trans_num;
		iniItems(s_items);
	}

	public void setOptions(double min_sup, double min_conf){
		min_support = min_sup;
		if(min_support > 1.0){
			min_support /= trans_number;
		}
		min_confidence = min_conf;
	}

	public void iniItems(String stritems) {
		vec_items.removeAllElements();
		StringTokenizer st = new StringTokenizer(stritems, ",");
		int index = 0;

		while(st.hasMoreElements()) {
			String str_item = st.nextToken().trim();
			Item item = new Item(index, str_item);
			vec_items.add(item);
			index++;
        }
	}

	public void createTransactions() {
		vec_transactions.removeAllElements();
		lstTransactions.removeAll();

		Random rnd_num = new Random();
		Random rnd_item = new Random();

		int allitems = vec_items.size();
		int maxitems = allitems/2;
		for(int i=0; i<trans_number; i++) {
			StringBuffer transaction = new StringBuffer();
			StringBuffer s_trans = new StringBuffer();
			int num = rnd_num.nextInt(maxitems-2)+2;	//number of items in this transaction

			Vector created = new Vector();
			while (num>0)
			{
				int item_no = rnd_item.nextInt(allitems);
				if(created.indexOf(new Integer(item_no)) < 0)
				{
					Item temp_item = (Item)vec_items.elementAt(item_no);
					transaction.append(""+item_no);
					s_trans.append(temp_item.getItemName());
					if(num > 1) {
						transaction.append(",");
						s_trans.append(",");
					}

					num--;
					created.addElement(new Integer(item_no));
				}
			}
			created = null;

			vec_transactions.addElement(transaction.toString());

			lstTransactions.add(""+(i+1)+":"+s_trans);
		}//end for i
	}

	public void identifyRules() {
		vec_rules.removeAllElements();
		lstRules.removeAll();

		indexItems();

		//start with two item rules
		int item_count = vec_items.size();
		int min_supp = (int)(min_support*trans_number);
		for(int i=0; i<item_count-1; i++){
			Item item1 = (Item)vec_items.elementAt(i);
			if(item1.getTransSetSize() < min_supp){
				continue;
			}
			//lstRules.add(item1.toString());
			for(int j=i+1; j<item_count; j++){
				Item item2 = (Item)vec_items.elementAt(j);
				if(item2.getTransSetSize() < min_supp){
					continue;
				}
				//lstRules.add(item2.toString());

				Vector v_intersect = item1.interTransSet(item2);
				int supp = v_intersect.size();
				double conf = (double)supp/(double)item1.getTransSetSize();
				if(supp >= min_supp && conf >= min_confidence) {
					Vector vec1 = new Vector();
					vec1.add(item1);
					Vector vec2 = new Vector();
					vec2.add(item2);
					Rule new_rule = new Rule(vec1, vec2, (double)supp/trans_number,
						conf, item1.getTransSet(), item2.getTransSet(), v_intersect);
					vec_rules.add(new_rule);

					lstRules.add(new_rule.toString());
				}

				conf = supp/item2.getTransSetSize();
				if(supp >= min_supp && conf >= min_confidence) {
					Vector vec1 = new Vector();
					vec1.add(item2);
					Vector vec2 = new Vector();
					vec2.add(item1);
					lstRules.add(""+supp+" "+conf);
					Rule new_rule = new Rule(vec1, vec2, (double)supp/trans_number,
						conf, item2.getTransSet(), item1.getTransSet(), v_intersect);
					vec_rules.add(new_rule);

					lstRules.add(new_rule.toString());
				}
			}
		}

		//find all others
		int new_num = 0;
		int start_pos = 0;
		boolean done = false;
		while(!done){
			done = true;
			start_pos = new_num;
			new_num = vec_rules.size();
			lstRules.add("");
			for(int i=0; i<item_count; i++){
				Item item = (Item)vec_items.elementAt(i);
				if(item.getTransSetSize() < min_supp){
					continue;
				}
				for(int j=start_pos; j<new_num; j++) {
					Rule rule = (Rule)vec_rules.elementAt(j);

					//check support first
					Vector v_intersect = rule.interSuppSet(item);
					int supp = v_intersect.size();
					if(supp < min_supp){
						v_intersect = null;
						continue;
					}

					//check association
					if(!rule.isInCause(item) && !rule.isInEffect(item)){
						Vector v_new_cause_trans = rule.interCauseSet(item);
						double conf = (double)supp/(double)v_new_cause_trans.size();
						if(conf >= min_confidence){
							Vector v_new_cause = new Vector(rule.cause);
							v_new_cause.add(item);
							Rule new_rule = new Rule(v_new_cause, rule.effect,
								(double)supp/trans_number, conf, v_new_cause_trans,
								rule.vec_effect, v_intersect);
							addRule(start_pos, vec_rules.size(), new_rule);
							//vec_rules.add(new_rule);
							//lstRules.add(new_rule.toString());
							done = false;
						}

						Vector v_new_effect_trans = rule.interEffectSet(item);
						conf = (double)supp/(double)v_new_effect_trans.size();
						if(conf >= min_confidence){
							Vector v_new_effect = new Vector(rule.effect);
							v_new_effect.add(item);
							Rule new_rule = new Rule(rule.cause, v_new_effect,
								(double)supp/trans_number, conf, rule.vec_cause,
								v_new_effect_trans, v_intersect);
							addRule(start_pos, vec_rules.size(), new_rule);
							//vec_rules.add(new_rule);
							//lstRules.add(new_rule.toString());
							done = false;
						}
					}
				}
			}
		}

		if(vec_rules.size() == 0){
			lstRules.add("no association rules found.");
		}
	}

	private void addRule(int start_pos, int end_pos, Rule rule){
		for(int i=start_pos; i<end_pos; i++){
			if(vec_rules.elementAt(i).equals(rule)){
				return;
			}
		}

		vec_rules.add(rule);
		lstRules.add(rule.toString());
	}

	private void indexItems() {
		for(int i=0; i<vec_items.size(); i++){
			Item temp_item = (Item)vec_items.elementAt(i);
			temp_item.clearTransSet();
		}

		for(int i=0; i<vec_transactions.size(); i++){
			String str_trans = (String)vec_transactions.elementAt(i);
			StringTokenizer st = new StringTokenizer(str_trans, ",");
			while(st.hasMoreElements()) {
				int item_no = Integer.valueOf(st.nextToken().trim()).intValue();
				Item item = (Item)vec_items.elementAt(item_no);
				item.addTransaction(i);
        	}
		}
	}
}

class Item {

	private int item_no = -1;
	private String item_name;
	private Vector trans_set = new Vector();

	public Item(int new_no, String name) {
		item_no = new_no;
		item_name = name;
	}

	public int getItemNo(){
		return item_no;
	}

	public String getItemName(){
		return item_name;
	}

	public void addTransaction(int trans_no) {
		if(trans_set.indexOf(new Integer(trans_no)) < 0) {
			trans_set.addElement(new Integer(trans_no));
		}
	}

	public void clearTransSet(){
		trans_set.removeAllElements();
	}

	public int getTransSetSize(){
		return trans_set.size();
	}

	public String getTransSetText(){
		String str_set=""+item_no+":";
		for(int i=0; i<trans_set.size(); i++){
			str_set += ((Integer)trans_set.elementAt(i)).intValue();
			str_set += ",";
		}
		return str_set;
	}

	public String toString(){
		return getItemName();
	}

	public Vector getTransSet(){
		return trans_set;
	}

	public Vector interTransSet(Item item2){
		Vector intersection = new Vector();
		Vector trans_set2 = item2.getTransSet();
		for(int i=0; i<trans_set.size(); i++){
			if(trans_set2.indexOf(trans_set.elementAt(i)) >= 0){
				intersection.add(trans_set.elementAt(i));
			}
		}
		return intersection;
	}
}

class Rule {

	Vector cause;
	Vector effect;
	double support = 0.0;
	double confidence = 0.0;

	Vector vec_cause;
	Vector vec_effect;
	Vector vec_support;

	public Rule(Vector v_cause, Vector v_effect, double supp,
			double conf, Vector v_cause_trans, Vector v_effect_trans, Vector v_supp_trans) {
		cause = v_cause;
		effect = v_effect;
		support = supp;
		confidence = conf;
		vec_cause = v_cause_trans;
		vec_effect = v_effect_trans;
		vec_support = v_supp_trans;
	}

	public boolean isInCause(Item item) {
		return (cause.indexOf(item) >= 0);
	}

	public boolean isInEffect(Item item){
		return (effect.indexOf(item) >= 0);
	}

	public String toString() {
		String srule = getItemsText(cause) + " --> " + getItemsText(effect);
		srule += "  ("+(int)(support*100)+"%, "+(int)(confidence*100)+"%)";
		return srule;
	}

	private String getItemsText(Vector vec) {
		String str_items = "[";

		for(int i=0; i<vec.size(); i++) {
			if(i!=0){
				str_items += ",";
			}
			str_items += vec.elementAt(i).toString();
		}
		str_items += "]";

		return str_items;
	}

	public Vector interCauseSet(Item item){
		Vector intersection = new Vector();
		Vector trans_set = item.getTransSet();
		for(int i=0; i<vec_cause.size(); i++){
			if(trans_set.indexOf(vec_cause.elementAt(i)) >= 0){
				intersection.add(vec_cause.elementAt(i));
			}
		}
		return intersection;
	}

	public Vector interEffectSet(Item item){
		Vector intersection = new Vector();
		Vector trans_set = item.getTransSet();
		for(int i=0; i<vec_effect.size(); i++){
			if(trans_set.indexOf(vec_effect.elementAt(i)) >= 0){
				intersection.add(vec_effect.elementAt(i));
			}
		}
		return intersection;
	}

	public Vector interSuppSet(Item item){
		Vector intersection = new Vector();
		Vector trans_set = item.getTransSet();
		for(int i=0; i<vec_support.size(); i++){
			if(trans_set.indexOf(vec_support.elementAt(i)) >= 0){
				intersection.add(vec_support.elementAt(i));
			}
		}
		return intersection;
	}

	public boolean equals(Rule rule2){
		boolean same = (cause.size() == rule2.cause.size());
		same &= (effect.size() == rule2.effect.size());
		if(!same){
			return false;
		}

		for(int i=0; i<cause.size(); i++){
			if(rule2.cause.indexOf(cause.elementAt(i)) < 0){
				return false;
			}
		}

		for(int i=0; i<effect.size(); i++){
			if(rule2.effect.indexOf(effect.elementAt(i)) < 0){
				return false;
			}
		}

		return true;
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合久久| 国产偷国产偷精品高清尤物| 亚洲综合一区二区三区| 91丨九色丨蝌蚪丨老版| 一区二区三区四区视频精品免费| 色av成人天堂桃色av| 亚洲精品v日韩精品| 欧美精品色一区二区三区| 日韩高清在线观看| 精品播放一区二区| 成人免费视频caoporn| 亚洲欧美一区二区久久| 欧美日韩国产中文| 激情亚洲综合在线| 国产精品传媒在线| 欧美久久免费观看| 国产精品888| 亚洲在线一区二区三区| 日韩欧美一级二级三级| 99久久精品国产一区二区三区| 欧美伦理电影网| 欧美性猛交一区二区三区精品| 精品中文av资源站在线观看| 久久午夜国产精品| 成人精品视频一区二区三区 | 国产精品99久久久久久似苏梦涵 | 国产一区999| 亚洲精品国产高清久久伦理二区| 欧美日韩成人在线| 国产91丝袜在线观看| 婷婷国产在线综合| 亚洲国产高清在线| 欧美精品视频www在线观看| 成人黄色av网站在线| 五月激情六月综合| 中文字幕在线免费不卡| 欧美一区二区三级| 91免费观看国产| 国产老妇另类xxxxx| 亚洲成人精品影院| 国产精品高潮久久久久无| 91精品国产综合久久久久久久久久| 成人免费电影视频| 精一区二区三区| 亚洲第一综合色| 亚洲欧洲成人精品av97| xnxx国产精品| 欧美一区二区三区的| 色久综合一二码| 丁香一区二区三区| 久久成人av少妇免费| 亚洲午夜激情网页| 亚洲婷婷综合色高清在线| 久久久久久免费毛片精品| 欧美精品日韩精品| 中文字幕在线一区| 亚洲精品一区二区三区精华液| 欧美性色黄大片| 91蜜桃传媒精品久久久一区二区| 国产精品一区二区无线| 久久精品国产一区二区三 | 精品欧美一区二区久久| 欧美视频日韩视频| 91久久精品国产91性色tv | 国产白丝精品91爽爽久久| 久久激情五月激情| 久久精品国产成人一区二区三区 | 精品动漫一区二区三区在线观看| 欧美日韩精品欧美日韩精品一综合 | 久久久天堂av| 精品国产一区二区三区久久影院 | 99这里都是精品| 粉嫩av一区二区三区在线播放| 久久爱www久久做| 久草精品在线观看| 久久精品国产澳门| 久久91精品国产91久久小草| 六月婷婷色综合| 精品一区二区免费看| 久久se精品一区二区| 激情久久五月天| 国产一区不卡视频| 成人黄色777网| 99国产精品国产精品毛片| 99久久99精品久久久久久| 99精品视频免费在线观看| 97国产一区二区| 欧美中文字幕一区| 欧美精品久久天天躁| 日韩女优电影在线观看| 久久午夜国产精品| 中文字幕亚洲成人| 亚洲一区二区三区四区的| 偷窥少妇高潮呻吟av久久免费| 日韩中文字幕不卡| 韩国精品免费视频| 懂色av噜噜一区二区三区av| 91麻豆精品视频| 91精品国产综合久久久久久| 精品国产乱码久久久久久1区2区 | 欧美xxxxxxxx| 国产日韩亚洲欧美综合| **性色生活片久久毛片| 亚洲妇女屁股眼交7| 麻豆视频观看网址久久| 国产福利一区在线观看| 在线观看av一区二区| 欧美日韩五月天| 久久嫩草精品久久久精品| 亚洲欧美日韩国产另类专区| 91精彩视频在线观看| 777精品伊人久久久久大香线蕉| 久久免费偷拍视频| 亚洲精品ww久久久久久p站| 美脚の诱脚舐め脚责91 | 国产资源在线一区| www.日韩大片| 91精品国产入口在线| 国产日本亚洲高清| 亚洲成人激情av| 国产成a人亚洲精品| 欧美色手机在线观看| 久久精品亚洲精品国产欧美 | 欧美大胆人体bbbb| 美女视频黄 久久| 国产精品嫩草影院av蜜臀| 欧美大肚乱孕交hd孕妇| 国产欧美日本一区视频| 亚洲精品美腿丝袜| 精品一区二区三区在线观看| 色欧美乱欧美15图片| 精品国产污网站| 亚洲永久精品大片| 高潮精品一区videoshd| 91精品福利在线一区二区三区| 中文字幕精品三区| 麻豆精品一区二区综合av| 91成人在线精品| 国产精品久久久久久久久久免费看| 日韩专区欧美专区| 欧美亚洲动漫另类| 亚洲欧洲精品天堂一级| 国产精品亚洲专一区二区三区| 欧美精品aⅴ在线视频| 亚洲精品国产a| 成人爱爱电影网址| 久久精品一区八戒影视| 精品制服美女丁香| 91精品国产综合久久久久| 亚洲午夜免费视频| 日本久久电影网| 国产精品美女久久久久久| 精品亚洲aⅴ乱码一区二区三区| 欧美美女bb生活片| 亚洲成av人片在www色猫咪| 色狠狠桃花综合| 亚洲视频网在线直播| 成人精品视频一区二区三区 | 99久久99久久精品免费看蜜桃| 久久美女高清视频| 韩国欧美国产1区| 日韩女优av电影在线观看| 日本成人在线视频网站| 3d成人h动漫网站入口| 香蕉加勒比综合久久| 在线免费精品视频| 亚洲在线视频一区| 欧美日韩精品二区第二页| 图片区日韩欧美亚洲| 91.com在线观看| 日韩av一级片| 欧美xxxxx牲另类人与| 国产伦精品一区二区三区免费| 久久婷婷色综合| 国产精华液一区二区三区| 亚洲国产精品国自产拍av| 成人性生交大片免费看中文 | 日韩欧美国产一二三区| 老司机精品视频一区二区三区| 日韩免费观看2025年上映的电影| 玖玖九九国产精品| 久久久蜜桃精品| 国产a久久麻豆| ●精品国产综合乱码久久久久| 色诱亚洲精品久久久久久| 亚洲一区二区三区四区在线免费观看 | 久久久久久一级片| 不卡在线观看av| 亚洲综合丁香婷婷六月香| 欧美日韩精品一区视频| 另类小说视频一区二区| 久久久久久**毛片大全| av电影在线观看完整版一区二区| 一区二区三区四区视频精品免费| 51精品视频一区二区三区| 狠狠色综合色综合网络| 国产精品女人毛片| 欧美视频日韩视频| 国产一级精品在线| 亚洲精品免费播放|