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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? aprioriall.java

?? 為了下東西 隨便發(fā)了個(gè) datamining 的源代碼
?? JAVA
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/**
 * Title:        XELOPES Data Mining Library
 * Description:  Java Data Mining API. Supported standarts: <a href="http://www.dmg.org">Predictive Model Markup Language (PMML 2.0) </a>;  <a href="http://www.omg.org/cwm">DataMining specification for Common Warehouse Metamodel (OMG)</a>.
 * Copyright:    Copyright (c) 2002 Prudential Systems Software GmbH
 * Company:      <a href="mailto:valentine.stepanenko@zsoft.ru">ZSoft, Spb, Russia</a>
 * @author Victor Borichev
 * @author Valentine Stepanenko (valentine.stepanenko@zsoft.ru)
 * @version 1.0
 */

package com.prudsys.pdm.Models.CustomerSeq.Algorithms;

import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;

import com.prudsys.pdm.Core.Category;
import com.prudsys.pdm.Core.MiningException;
import com.prudsys.pdm.Core.Event.Status.CreationModelBeginMessage;
import com.prudsys.pdm.Core.Event.Status.ReadingBeginMessage;
import com.prudsys.pdm.Core.Event.Status.ReadingEndMessage;
import com.prudsys.pdm.Input.MiningVector;
import com.prudsys.pdm.Models.AssociationRules.ItemSet;
import com.prudsys.pdm.Models.CustomerSeq.CustomSequence;
import com.prudsys.pdm.Models.CustomerSeq.CustomerSequentialAlgorithm;
import com.prudsys.pdm.Models.Sequential.IntVec;
import com.prudsys.pdm.Models.Sequential.Algorithms.Seq.TransactionSet;
import com.prudsys.pdm.Utils.IntHashtable;
import com.prudsys.pdm.Utils.IntVector;

public class AprioriAll extends CustomerSequentialAlgorithm {

  Vector rules = new Vector();

  /** Customer transaction set */
  private CustomTransSet customerTransSet = null;

  /**
   * for litemsets phase of algorithm
   */
  /** Used for Lk on all steps of algorithm */
  private int L[][];
  /** Used for association table: Transaction ID -> large itemsets list */
  private int TIDTable[][];
  /** Used for customer ID of each transaction */
  private int CustomerID[];

  /** All Lk */
  private Vector allLargeItemsets;
  /** Supports for all Lk */
  private Vector allLargeItemsetsSupp;
  /** TID's */
  private Vector allTIDs;
  /** all litemsets */
  private ItemSet[] allLits;


  /** Minimum number of supporting transactions, only used if >0. */
  private int minimumSupportCount = 0;
  /** Minimum support count */
  private int m_minSuppInt;
  /** Minimum item site. */
  private int    m_minItemSize = 1;
  /** Maximum item size. */
  private int    m_maxItemSize = -1;

  /**
   * for sequential phases of algorithm
   */
  /** all large sequences */
  private Vector allLargeSequences;
  /** debug level */
  private int debug = 1;
  /** maximal length of row of tidtable */
  private int maxTidSize = 0;
  /** B1[i] = false if L1[i] doesn't make any child */
  private boolean[] B1;
  /** vector of all Bk for all Lk except for last*/
  private Vector allBk;
  /** all litemset from apriori phase as an arrays */
  private int[][] allLitsArr;
  /** all litemsets supports */
  private int[] allLitsSupp;
  /** d pruning phase */
  private boolean doPruning = true;


  public boolean getDoPruning() { return doPruning; }

  public void setDoPruning( boolean p ) { doPruning = p; }

  /**
   * Returns minimum number of transactions containing item pairs.
   * The relative minimum support value is defined by the minimumSupport
   * parameter.
   *
   * @return minimum support count
   */
  public int getMinimumSupportCount()
  {
    return minimumSupportCount;
  }

  /**
   * Sets minimum number of transactions containing item pairs.
   * The relative minimum support value is defined by the minimumSupport
   * parameter.
   *
   * @param minimumSupportCount new minimum support count
   */
  public void setMinimumSupportCount(int minimumSupportCount)
  {
    this.minimumSupportCount = minimumSupportCount;
  }

  /**
   * The method getMinSupport returns the minimum support.
   *
   * @return minimum support
   */
  public double getMinSupport() {

    return minimumSupport;
  }

  /**
   * The method getMinSupport sets the minimum support.
   *
   * @param minimum support to set
   */
  public void setMinSupport(double minSupp) {

    minimumSupport = minSupp;
  }

  public int getMinItemSize() {
    return m_minItemSize;
  }

  public void setMinItemSize(int minItemSize) {
    m_minItemSize = minItemSize;
  }

  public int getMaxItemSize() {
    return m_maxItemSize;
  }

  public void setMaxItemSize(int maxItemSize) {
    m_maxItemSize = maxItemSize;
  }


  /**
   * Checks mining algorithm for completeness by calling verify method
   * of superclass. Adiitionally, it checks whether minimumItemSize and
   * maximumItemSize are admissible.
   *
   * @throws IllegalArgumentException if some algorithm attributes are incorrect
   */
  public void verify() throws IllegalArgumentException
  {
    super.verify();
    if (m_minItemSize < 0)
      throw new IllegalArgumentException("minimumItemSize can't be negative");
    if (m_maxItemSize > -1 && m_minItemSize > m_maxItemSize)
      throw new IllegalArgumentException("minimumItemSize can't be larger than maximumItemSize");

    if (generateRules && doPruning)
      throw new IllegalArgumentException("can't generate rules with pruning");
  }

  //               << By Alexey Grinyuk >>

  /**
   * Implements the Algorithm AprioriTID.
   *
   * @param transSet transaction set
   * @return result as list of association rules
   * @author Alexey Grinyuk
   */
  private void apriori(CustomTransSet customTransSet) {
    int L1Supp[];

    m_minSuppInt = minimumSupportCount;
    if (m_minSuppInt <= 0)
      m_minSuppInt = (int)Math.ceil( minimumSupport * customTransSet.getSize() );
    System.out.println("---------minSuppCount: " + m_minSuppInt + "--------");

    // build L1 and TIDTable
    L1Supp = createL1(customTransSet);
    sortArrays(L, L1Supp);
    createTIDTable(customTransSet);

    System.out.println("|L1| = " + L.length);

    // add L1 to general result
    allLargeItemsets.add(L);
    allLargeItemsetsSupp.add(L1Supp);
    allTIDs.add(TIDTable);

    createAllLk();  // recursive function for build next Lk
    System.out.println("createAllLk finished");

  }


  /**
   * Create L1 and store it in L[]
   *
   * @param transSet transaction set
   * @return supports for L1
   * @author Alexey Grinyuk
   */
  private int[] createL1(CustomTransSet customTransSet)
  {
    int i, j, item, supp;
    int customer;
    IntHashtable hashtable = new IntHashtable();
    IntHashtable hashtableTest = new IntHashtable();
    Integer suppCount;
    Integer test;
    int newItem;
    boolean addFlag;
    TransactionSet transSet;

    ItemSet transactionItemSet;
    int itemCounter;
    int tmpL[][];
    int tmpLSupp[];
    int result[];

    for(customer=0; customer<customTransSet.getSize(); customer++) {
      transSet = customTransSet.getCustomerTransSet(customer);
      // for all transactions
      for(i=0; i<transSet.getSize(); i++) {
        transactionItemSet = (ItemSet)transSet.getTransactionAt(i);
        // for all items of transaction
        for(j=0; j<transactionItemSet.getSize(); j++) {

          newItem = transactionItemSet.getItemAt(j);

          test = hashtableTest.get(newItem);
          // if item not found in hashtableTest
          if(test == null) {
            hashtableTest.put(newItem, customer); // add item to hashtableTest
            addFlag = true;
          } else if( test.equals(new Integer(customer)) ) {
            addFlag = false;
          } else {
            addFlag = true;
            hashtableTest.put(newItem, customer);
          }

          if(addFlag) {
            suppCount = hashtable.get(newItem);

            // if item not found in hashtable
            if(suppCount == null) {
              // add item to hashtable
              hashtable.put(newItem, 1);
            } else {
              // increment support counter
              hashtable.put(newItem, suppCount.intValue() + 1);
            }
          }

        }
      }
    }

    itemCounter = hashtable.size();
    tmpL = new int[itemCounter][1]; // allocate memory for L
    tmpLSupp = new int[itemCounter]; // allocate memory for supports

    Enumeration em = hashtable.keys();
    i = 0;

    // find large itemsets (build L1)
    while(em.hasMoreElements()) {
      item = ((Integer)em.nextElement()).intValue();
      supp = ((Integer)hashtable.get( item )).intValue();
      if(supp >= m_minSuppInt) {
        tmpL[i][0] = item;
        tmpLSupp[i] = supp;
        i++;
      }
    }

    L = new int[i][1];
    result = new int[i];

    // rebuild arrayas
    for(j=0; j<i; j++) {
      L[j] = tmpL[i - j - 1];
      result[j] = tmpLSupp[i - j - 1];
    }

    // return supports for L1
    return result;
  }


  /**
   * Create association table: Transaction ID -> large itemsets list
   * Store rezult in TIDTable[][]
   *
   * @param transSet transaction set
   * @author Alexey Grinyuk
   */
  private void createTIDTable(CustomTransSet customTransSet) {
    int i, j, customer, transactionSize;
    int counter = 0;
    int transactionCounter = 0;
    int customerTransCounter;
    TransactionSet transSet;
    ItemSet transactionItemSet;

    for(i=0; i<customTransSet.getSize(); i++) {
      transSet = customTransSet.getCustomerTransSet(i);
      transactionCounter += transSet.transactionList.size();
    }

    TIDTable = new int[transactionCounter][];
    CustomerID = new int[transactionCounter];

    for(customer=0; customer<customTransSet.getSize(); customer++) {
      transSet = customTransSet.getCustomerTransSet(customer);
      customerTransCounter = transSet.transactionList.size();
      // for all transactions
      for(i=0; i<customerTransCounter; i++, counter++) {
        transactionItemSet = (ItemSet)transSet.transactionList.get(i);
        transactionSize = transactionItemSet.getSize();
        TIDTable[counter] = new int[transactionSize];
        for(j=0; j<transactionSize; j++) {
          // TIDTable[counter][j] = reference to item L1
          TIDTable[counter][j] = findInArray( L, transactionItemSet.getItemAt(j) );
        }
        CustomerID[counter] = customer;
      }
    }
  }


  /**
   * Sort L1 (int[][1])
   *
   * @param arrayL - L1
   * @param arraySupp - supports for L1
   */
  private void sortArrays(int arrayL[][], int arraySupp[]) {
    int i, j, k, tmpVal, tmpSupp;
    int arraySize = arrayL.length;

    for(i=0; i < arraySize-1; i++) {
      for(j=0; j < arraySize-1-i; j++) {

        if(arrayL[j][0] > arrayL[j + 1][0]) {
          tmpVal = arrayL[j + 1][0];
          tmpSupp = arraySupp[j + 1];
          arrayL[j + 1][0] = arrayL[j][0];
          arraySupp[j + 1] = arraySupp[j];
          arrayL[j][0] = tmpVal;
          arraySupp[j] = tmpSupp;
        }
      }
    }
  }


  /**
   * Find in array int[][1]

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩日av一区二区| 日韩国产欧美三级| 成人97人人超碰人人99| 国产精品久久久久一区| 丁香六月综合激情| 综合电影一区二区三区| 色噜噜狠狠色综合欧洲selulu| 有码一区二区三区| 欧美精品在线一区二区三区| 麻豆精品一区二区三区| 久久久三级国产网站| 成人在线一区二区三区| 综合婷婷亚洲小说| 欧美日韩国产系列| 久久精品国产**网站演员| 久久久精品综合| 91在线观看视频| 午夜精品久久久久久久久久久| 欧美草草影院在线视频| 成人av电影在线播放| 一区二区三区四区不卡在线 | 99久久精品国产导航| 亚洲精品免费看| 91精品国产综合久久久久久漫画| 精品中文字幕一区二区小辣椒| 欧美韩国日本一区| 欧美日韩国产另类一区| 国产成人免费网站| 亚洲午夜激情av| www成人在线观看| 日本精品视频一区二区三区| 麻豆精品久久精品色综合| 国产精品美女久久久久aⅴ国产馆| 欧美亚州韩日在线看免费版国语版| 蜜桃av一区二区在线观看| 最新欧美精品一区二区三区| 日韩一区二区三区av| www.久久精品| 六月丁香婷婷色狠狠久久| 亚洲欧美国产三级| 久久先锋资源网| 一本大道久久a久久精品综合| 久久电影网电视剧免费观看| 悠悠色在线精品| 国产三级一区二区三区| 日本道色综合久久| 大白屁股一区二区视频| 久久精品国产精品青草| 亚洲伦理在线免费看| 国产亚洲精品免费| 欧美一区午夜精品| 欧洲一区在线观看| 97久久精品人人做人人爽| 国产自产2019最新不卡| 日韩电影在线观看网站| 亚洲综合无码一区二区| 亚洲欧洲另类国产综合| 久久久久久久久久久黄色| 欧美一区午夜视频在线观看| 欧美少妇bbb| 91香蕉视频污在线| 国产精品69毛片高清亚洲| 免费观看30秒视频久久| 亚洲电影第三页| 亚洲电影一级黄| 亚洲综合网站在线观看| 樱桃国产成人精品视频| 亚洲另类在线视频| 日韩美女视频一区二区| 国产精品嫩草影院com| 久久久精品一品道一区| 久久婷婷久久一区二区三区| 欧美精品一区在线观看| www激情久久| 久久亚洲精精品中文字幕早川悠里| 日韩一区二区在线观看视频播放| 69成人精品免费视频| 欧美日韩国产影片| 91麻豆精品国产91久久久久久久久 | 日韩一区二区视频| 欧美日韩成人综合| 欧美精品777| 8x8x8国产精品| 日韩手机在线导航| 欧美成人r级一区二区三区| 精品国产乱码久久久久久老虎| 日韩一区二区中文字幕| 精品少妇一区二区三区免费观看| 日韩免费看的电影| 精品久久99ma| 国产区在线观看成人精品 | 国产精品一区二区91| 国模套图日韩精品一区二区| 国产一区久久久| 国产成人精品免费看| 成人动漫一区二区三区| 91麻豆视频网站| 69av一区二区三区| 精品99一区二区| 国产精品久久看| 伊人一区二区三区| 日韩精品欧美成人高清一区二区| 美女脱光内衣内裤视频久久影院| 韩国中文字幕2020精品| 91亚洲永久精品| 91精品国产综合久久福利软件| 久久久精品欧美丰满| 亚洲日本乱码在线观看| 日韩国产欧美一区二区三区| 国产成人aaa| 欧美日韩一区 二区 三区 久久精品| 9191成人精品久久| 欧美国产一区在线| 艳妇臀荡乳欲伦亚洲一区| 毛片一区二区三区| 91在线高清观看| 91精品国产福利在线观看 | 色香色香欲天天天影视综合网| 欧美三级电影在线看| 国产视频一区二区三区在线观看 | 日韩精品电影在线| 国产成人在线色| 欧美日韩一区二区三区四区| 久久久美女毛片| 午夜精品一区二区三区电影天堂| 国产精品夜夜嗨| 欧美日韩国产成人在线免费| 欧美激情在线观看视频免费| 五月婷婷欧美视频| k8久久久一区二区三区 | 亚洲成人黄色小说| 成人h动漫精品| 欧美成人乱码一区二区三区| 亚洲精品成人少妇| 国产乱妇无码大片在线观看| 91精品国产高清一区二区三区 | 午夜日韩在线电影| av中文字幕亚洲| 精品成人a区在线观看| 同产精品九九九| 色呦呦网站一区| 国产精品夫妻自拍| 国产乱国产乱300精品| 欧美一区二区观看视频| 亚洲精品久久久蜜桃| 成人av在线观| 26uuu国产日韩综合| 日韩在线一区二区三区| 91免费版在线| 国产精品麻豆欧美日韩ww| 久久爱www久久做| 在线电影欧美成精品| 亚洲激情图片一区| 91麻豆自制传媒国产之光| 国产精品视频在线看| 国产精品一卡二卡在线观看| 日韩一级黄色大片| 爽好久久久欧美精品| 欧美亚洲综合一区| 亚洲一二三四久久| 色狠狠综合天天综合综合| 国产精品乱码妇女bbbb| 国产成人一级电影| 久久久国产精华| av一二三不卡影片| 日本不卡的三区四区五区| 在线视频一区二区免费| 国产日韩欧美精品在线| 国产在线视频一区二区三区| 欧美xxx久久| 国产福利一区二区三区在线视频| 久久久三级国产网站| 国产成人av一区二区| 久久久不卡网国产精品一区| 国产精品888| 中文字幕中文字幕一区二区| 99久久免费国产| 一区二区在线观看不卡| 日本韩国一区二区三区| 一区二区欧美视频| 欧美日韩国产一区二区三区地区| 香蕉成人伊视频在线观看| 欧美一区二区久久久| 激情综合网激情| 国产日韩欧美精品在线| 99久久伊人网影院| 亚洲人成小说网站色在线| 欧美三级韩国三级日本三斤| 日韩精品一区第一页| 精品国产成人在线影院| 成人性色生活片免费看爆迷你毛片| 国产精品久久久久影视| 91丨porny丨蝌蚪视频| 亚洲一区二区三区免费视频| 3d动漫精品啪啪1区2区免费| 国产一区欧美日韩| 亚洲欧美激情一区二区| 欧美一区二区三区四区五区| 国产精品1024| 一区二区三区色|