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

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

?? myapriori.java

?? apriori algorithm for java paltform
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
package apriori;

/**
 * formatted with JxBeauty (c) johann.langhofer@nextra.at<br>
 */


import  java.util.*;
import  java.sql.*;
import oracle.jdbc.pool.*;


/**
 * A program to find association rules with the apriori algorithm (Agrawal et al. 1993).<br>
 * Other than the standard apriori algorithm, this program enable to find<br>
 * apriori all relation.<br>
 *<br>
 * The program able to run on any SQL92 enable database which have the schema<br>
 * like this:<br>
 * <pre>
 *               Table "web_record"
 *   Attribute  |         Type         | Modifier
 *  -------------+----------------------+----------
 *  customer_id | character varying(5) | not null
 *  view_seq    | integer              | not null
 *  vroot_id    | character varying(4) | not null
 * </pre>
 *<br>
 * Which are the customerID, transactionSequence and transactionID.<br>
 * You should able to modify all data that can be run apriori all algorithm with<br>
 * this data structure.<br>
 *<br>
 * Here is an data parser example to parse the Microsoft Anonymous Web Data<br>
 * http://kdd.ics.uci.edu/databases/msweb/msweb.html<br>
 * <br>
 * Here is the example running command:<br>
 * $JAVA_HOME/bin/java -Xmx128m Apriori -s 1 -c 5 -seq<br>
 * $JAVA_HOME/bin/java -Xmx128m Apriori -s 2 -c 8<br>
 * And the result will display on the screen<br>
 *
 * The command line option:<br>
 * -s: support value, 1 mean only support larger than 1% will display<br>
 * -c: confident value, 5 mean only confident larger than 5% will display<br>
 * -seq: the program will run apriori all algorithm with this value<br>
 */
public class myApriori {
    private String strDriver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
    private String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=master;SelectMethod=cursor";
    private String tableName = "web_record";
    private String countField = "counts";
    private String customerIdField = "vroot_id";
    private String transactionIdField = "customer_id";
    private String transactionSequenceField = "view_seq";

    private double support;
    private double confident;
    private boolean aprioriAll;
    private Connection conn;
    private int totalCustomer = 0;
    private HashMap supportCount;        // Held the itemSet and the support of that itemSet

    private ResultSet execSQL (String sql) throws Exception {
        PreparedStatement stmt = conn.prepareStatement(sql);
        return  stmt.executeQuery();
    }

    private void addRule (List values, List supports, List confidences, List allItemSets,
            List thisSubSet, List remainSet, float wholeCount, float baseCount) {
        if (aprioriAll) {
            List checkList = new ArrayList((List)thisSubSet);
            checkList.addAll(remainSet);
            if (allItemSets.contains(checkList)) {
                values.add(remainSet);
                supports.add(new Float((float)wholeCount/(float)totalCustomer));
                confidences.add(new Float((float)wholeCount/(float)baseCount));
            }
        }
        else {
            values.add(remainSet);
            supports.add(new Float((float)wholeCount/(float)totalCustomer));
            confidences.add(new Float((float)wholeCount/(float)baseCount));
        }
    }

    /**
     * The default construstor, specific the support, confident value, and run
     * apriori all algorithm or not
     * @param     double support
     * @param     double confident
     * @param     boolean aprioriAll
     */
    public myApriori (double support, double confident, boolean aprioriAll) throws Exception
    {
     /* String connectURI = "jdbc:oracle:thin:@192.168.0.224:1521:orahzoa";
      String userName = "apriori";
      String passWord = "apriori";
      Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
      conn = DriverManager.getConnection(connectURI, userName, passWord);
      */
     String userName = "sa";
     String passWord = "sa";
     Class.forName(strDriver).newInstance();
     conn = DriverManager.getConnection(url, userName, passWord);
//  Class.forName(strDriver).newInstance();
      //  conn = DriverManager.getConnection(url);
        supportCount = new HashMap();
        this.support = support;
        this.confident = confident;
        this.aprioriAll = aprioriAll;
    }

    /**
     * The method to parse the string array argumnents
     * @param     String[] args
     * @return
     * @exception Exception
     */
    public static myApriori init (String[] args) throws Exception
    {
        double confidence = 0.0;
        double support = 0.0;
        boolean aprioriAll = false;
        if (args.length > 0) {
            for (int i = 0; i < args.length; i++) {
                if ("-s".equals(args[i])) {
                    int tempSupport = Integer.parseInt(args[i + 1]);
                    if (tempSupport > 0) {
                        support = (double)(tempSupport)/100;
                    }
                    i++;
                }
                if ("-c".equals(args[i])) {
                    int tempConfidence = Integer.parseInt(args[i + 1]);
                    if (tempConfidence > 0) {
                        confidence = (double)(tempConfidence)/100;
                    }
                    i++;
                }
                if ("-seq".equals(args[i])) {
                    aprioriAll = true;
                }
            }
        }
        return new myApriori(support, confidence, aprioriAll);
    }

    /**
     * Find the total no. of customer and use this to calculate the support for
     * the rules belong to that customer.
     * @return
     * @exception Exception
     */
    public int getTotalCustomer () throws Exception {
        if (totalCustomer == 0) {
            String sql = "select  count(distinct("+customerIdField+")) from "+tableName+"";
            ResultSet rs = execSQL(sql);
            if (rs.next())
                totalCustomer = rs.getInt(1);
        }
        return  totalCustomer;
    }

    /**
      * Construct the SQL<br>
      * <br>
      * 1) select a0.transactionId, count(a0.customerId) from tableName a0 group by a0.transactionId;<br>
      * 2) select a0.transactionId, a1.transactionId, count(a0.customerId) from tableName a0, tableName a1 where<br>
      *      a0.transactionSequence < a1.transactionSequence and a0.customerId=a1.customerId and <br>
      *      a0.transactionId in ([previous appear item]) and a0.transactionId in ([previous appear item])<br>
      *      group by a0.transactionId, a1.transactionId;<br>
      *  .....<br>
      *  .....<br>
      * 3) select a0.transactionId, ...., aN.transactionId, count(a0.customerId) from tableName a0, ......, tableName aN where <br>
      *      a0.transactionSequence < a1.transactionSequence and .... and a(N-1).transactionSequence < aN.transactionSequence and<br>
      *      a0.customerId=a1.customerId and .... and a(N-1).customerId=aN.customerId<br>
      *      a0.transactionId in ([previous appear item]) and .... and aN.transactionId in ([previous appear item])<br>
      *      group by a0.transactionId, ...., aN.transactionId;<br>
      *<br>
      * If we not do the ApriorAll algorithm, we just need to remove the statement:<br>
      *      a0.transactionSequence < a1.transactionSequence and .... and a(N-1).transactionSequence < aN.transactionSequence<br>
      * and add the following statement:<br>
      *      a0.transactionId < a1.transactionId and .... and a(N-1).transactionId < aN.transactionId<br>
      * because we can remove the duplication entries<br>
      *
      * @param noOfItem     the SQL of that no. of itemsets
      * @param previous     the previous items find
      * @return     The SQL
      */
    public String getSQL (int noOfItem, List previous) {
        String transactionIDs = " a0."+transactionIdField+"";
        String tables = " "+tableName+" a0";
        String aprioriAllFreq = "";
        String skipDupTransaction = "";
        String customerIDs = "";
        String previousItems = "";
        String searchItems = " ";

        if (previous != null) {
            StringBuffer sb = new StringBuffer(100);
            // Extrace the items from the previous itemsets gotten
            for (int i = 0; i < previous.size(); i++) {
                ArrayList itemSet = (ArrayList)previous.get(i);
                for (int j = 0; j < itemSet.size(); j++) {
                    String item = Integer.toString(((Integer)itemSet.get(j)).intValue());
                    if ( sb.toString().indexOf(item) == -1 )
                        sb.append(",").append(item);
                }
            }
            previousItems = sb.substring(1);    //Don't need the first ','
        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频一区二区| 欧美中文字幕一二三区视频| 亚洲精品在线网站| 极品瑜伽女神91| 久久久久久久久久久久久久久99 | 老司机免费视频一区二区| 欧美一区二区私人影院日本| 久久99久久久久久久久久久| 欧美国产日韩a欧美在线观看| av在线不卡免费看| 国产精品一级片在线观看| 2021国产精品久久精品| 成人高清伦理免费影院在线观看| 成人免费小视频| 欧美日韩免费观看一区二区三区| 日日夜夜免费精品视频| 2024国产精品视频| 成人ar影院免费观看视频| 亚洲在线视频网站| 精品福利一二区| 91美女福利视频| 日韩电影网1区2区| 国产精品美女久久久久久久| 欧美在线三级电影| 国产麻豆精品在线| 亚洲制服丝袜一区| 久久久久国产精品厨房| 一本一道波多野结衣一区二区| 丝袜a∨在线一区二区三区不卡| 久久久美女毛片| 在线欧美日韩精品| 国产一区二区在线观看视频| 尤物在线观看一区| 久久综合久久久久88| 欧美在线播放高清精品| 国产精品主播直播| 午夜av一区二区| 国产精品嫩草影院av蜜臀| 欧美一区二区三区视频免费| 波多野结衣精品在线| 久久精品国产网站| 亚洲国产精品尤物yw在线观看| 国产亚洲欧美日韩俺去了| 欧美高清精品3d| 99精品视频在线播放观看| 蜜乳av一区二区三区| 亚洲乱码国产乱码精品精98午夜| 久久久亚洲午夜电影| 日韩伦理电影网| 欧美精品一区二区三| 欧美日韩三级一区二区| 91亚洲国产成人精品一区二三| 久久成人18免费观看| 天天操天天色综合| 亚洲精品久久久蜜桃| 国产精品免费人成网站| 欧美xxxxxxxxx| 在线成人免费视频| 欧美体内she精视频| 97成人超碰视| 99久久国产综合精品女不卡| 国产精品中文字幕一区二区三区| 免费av网站大全久久| 午夜精品视频一区| 亚洲尤物在线视频观看| 亚洲精选免费视频| ...xxx性欧美| 日韩理论电影院| 中文字幕中文字幕中文字幕亚洲无线 | 91日韩一区二区三区| 成人综合在线网站| 国产jizzjizz一区二区| 国产成都精品91一区二区三| 国产一区二区在线视频| 国产精品香蕉一区二区三区| 国产一区二区成人久久免费影院| 久久精品国产在热久久| 激情成人综合网| 国产麻豆精品视频| 高清久久久久久| 成人午夜在线视频| 成人黄色网址在线观看| 91在线视频免费观看| 91美女片黄在线观看| 欧洲亚洲精品在线| 7777精品伊人久久久大香线蕉| 欧美日韩国产一二三| 一区在线中文字幕| 亚洲天天做日日做天天谢日日欢| 亚洲你懂的在线视频| 亚洲激情在线播放| 午夜不卡av免费| 久久99国产乱子伦精品免费| 国产精品99久久久| 99久久国产综合精品女不卡| 欧美在线999| 日韩欧美区一区二| 国产日韩欧美精品电影三级在线 | 欧美一区二区三区白人| 精品国产免费久久| 国产精品二三区| 亚洲电影第三页| 久久精品国产77777蜜臀| 国产盗摄一区二区三区| www.99精品| 欧美一区二区三区男人的天堂| 2017欧美狠狠色| 亚洲欧美日韩国产综合在线| 日韩精品一级二级| 懂色av中文字幕一区二区三区 | 在线观看国产日韩| 日韩三级免费观看| 亚洲国产成人午夜在线一区| 一区二区三区在线观看欧美| 老司机精品视频在线| av一区二区三区四区| 欧美丰满美乳xxx高潮www| 国产亚洲午夜高清国产拍精品 | 亚瑟在线精品视频| 狠狠色2019综合网| 欧美视频一区二区三区四区| 久久亚洲综合av| 亚洲国产综合人成综合网站| 国产精品一级片在线观看| 欧美日本韩国一区二区三区视频| 国产日韩欧美精品在线| 无码av中文一区二区三区桃花岛| 成人免费视频一区二区| 日韩午夜中文字幕| 亚洲精品欧美综合四区| 国产一区二区三区免费在线观看| 在线观看91精品国产入口| 国产日韩欧美精品电影三级在线| 亚洲国产日韩一区二区| 成人激情综合网站| 精品国偷自产国产一区| 亚洲二区在线观看| 91网址在线看| 欧美国产精品久久| 久久精品国产在热久久| 欧美精品日日鲁夜夜添| 亚洲视频一区二区在线| 国产精品18久久久久久久久久久久| 国产日本欧美一区二区| 日韩高清电影一区| 欧美丝袜丝交足nylons图片| 国产精品白丝在线| 国产成人av影院| 久久午夜电影网| 美日韩一区二区三区| 欧美精三区欧美精三区| 一区二区成人在线| 91亚洲永久精品| 国产精品欧美精品| 丁香一区二区三区| 国产亚洲制服色| 国产一本一道久久香蕉| 日韩精品一区二| 久久精品国产免费看久久精品| 欧美高清性hdvideosex| 日韩精品乱码av一区二区| 欧美男男青年gay1069videost| 亚洲综合一区二区三区| 欧洲色大大久久| 亚洲午夜免费电影| 欧美丝袜第三区| 亚洲成人免费电影| 777久久久精品| 蜜臀a∨国产成人精品| 欧美一区二区免费观在线| 日本欧美一区二区三区乱码| 欧美一区二区三区日韩视频| 青青草97国产精品免费观看无弹窗版 | 亚洲资源在线观看| 欧美色图激情小说| 日日夜夜免费精品| 日韩一区二区三区精品视频| 蜜臀久久99精品久久久久久9| 日韩视频免费观看高清完整版在线观看 | 亚洲欧美日韩国产中文在线| 91欧美一区二区| 亚洲一区二区三区在线看| 欧美日韩中文字幕一区二区| 日韩高清一区二区| 精品不卡在线视频| 成人三级在线视频| 亚洲精品成人悠悠色影视| 欧美人与禽zozo性伦| 久久超碰97中文字幕| 日本一区二区免费在线观看视频 | 91色.com| 日本特黄久久久高潮| 久久久久97国产精华液好用吗| 成人午夜激情影院| 亚洲一区在线看| 亚洲欧美二区三区| 制服丝袜成人动漫| 国产成人av一区二区三区在线观看| 亚洲女厕所小便bbb| 日韩色在线观看|