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

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

?? aprioriall.java

?? 為了下東西 隨便發了個 datamining 的源代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
    // noprune
    if(doPruning)
      Bk = new boolean[Lk.length];
    for(i=k=m=0;i<Lk.length;i++)  // for each k-sequence
    {
      if(boundsLk[i][0]==-1) {  // if doesn't make any candidate
        Sk[i][0] = -1;
        continue;   // to next k-sequence
      }
      Sk[i][0] = k;
      n = boundsLk[i][1] - boundsLk[i][0];  // number of parents it can be merged with
      for(j=0;j<=n;j++)
      {
        l = boundsLk[i][2]+j; // candidate number
        if(suppCk[l]>=m_minSuppInt)
        {
          newLk[k] = new int[3];
          newLk[k][0] = i; newLk[k][1] = j+boundsLk[i][0]; newLk[k][2] = suppCk[l];
          suppCk[l] = -m-1;
          // noprune
          if(doPruning)
          {
            Bk[i] = true; // mark as not maximal
            Bk[boundsLk[i][0] + j] = true;
          }
          k++;
        } else m++;
      }
      if(k!=Sk[i][0]) Sk[i][1] = k-1;
      else Sk[i][0] = -1;
    }
    allLargeSequences.add(Lk);  // add to results
    // noprune
    if(doPruning)
      allBk.add(Bk);
    Lk = newLk;
    System.out.print("lits");  // debug
    tidTable = checkTIDs(newTidTable,suppCk); // correct tidTable
    if(debug>1)
    {
      System.out.println("Lk"+nStep);
      printLk(Lk);
      System.out.println("TID"+nStep);
      printTIDs(tidTable);
    }
  }

  allLargeSequences.add(Lk);  // add to results last Lk
  allBk.add(null);

  if(debug>0)
  {
    System.out.println("Maximum customer sequence length "+maxCustSeqLen);
    System.out.println("Maximum tid table size was "+maxTidSize);
  }

    saveResults();
  }

  /**
   * Corrects tidTable: indices in Ck -> indices in Lk
   * @param lits new generated tidTable
   * @param supp support counters of candidates
   * @return corrected tidTable as an arrays
   */
  private int[][][] checkTIDs(int[][][] lits, int[] supp)
  {
    int i,j,k,l,m,n,p,q;
    // number of non-empty customers
    for(i=n=0;i<lits.length;i++) if(lits[i]!=null) n++;
    int[][][] newTID = new int[n][][];
    for(i=k=0;i<lits.length;i++)  // for each customer
    {
      if(lits[i]==null) continue;
      // actual number of rows
      for(j=n=0;j<lits[i].length;j++) if(lits[i][j]!=null) n++;
      newTID[k] = new int[n][];
      for(j=m=0;j<lits[i].length;j++)
      {
        if(lits[i][j]==null) continue;
        // number of supported candidates in row
        for(p=n=0;p<lits[i][j].length;p++) if(supp[lits[i][j][p]]<0) n++;
        if(n==0) continue;
        if(maxTidSize<n) maxTidSize = n;  // for debug
        newTID[k][m] = new int[n];  // new row
        for(p=q=0;p<lits[i][j].length;p++)
        {
          l = lits[i][j][p];  // element of old row
          // supp[l] must be < 0 for supported candidate cause it contains -m-1
          if(supp[l]<0) newTID[k][m][q++] = lits[i][j][p] + supp[l] + 1;
        }
        java.util.Arrays.sort(newTID[k][m]);
        m++;
      }
      k++;
    }
    return newTID;
  }

  private int findStart(int[] arr, int lo, int hi)
  {
    if(hi<arr[0]||lo>arr[arr.length-1]) return -1;
    if(lo<arr[0]) return 0;
    int p = java.util.Arrays.binarySearch(arr,lo);
    if(p<0) p = -p-1;
    return p;
  }

/*
  private void addResult(CustomItemSetList cisl, int[] ab, int supp)
  {
    int i;
    CustomSequence cs = new CustomSequence();
    for(i=0;i<ab.length;i++)
      cs.addItemSet(allLits[ab[i]]);
    cs.setSupportCount(supp);
    cisl.addItemSetList(cs);
  }
*/

/**
 * Save results in specified way
 * process each large k-sequence begin from L2
 * excluding sequences which are parents of L(k+1) sequences as it's marked in Bk
 * and exclude large sequences contained in other large sequences
 */
private Vector saveResults()
{
  int i,j,l,k,c;
  int[][] Lk;
  boolean[] Bk = null;
  Vector cisl = new Vector(); // result sequences list
  Vector all = new Vector();
  for(i=0;i<allLits.length;i++) // for litemset
  {
    // noprune
    if(doPruning)
    {
      if(B1!=null&&B1[i]) continue; // if it make and 2-sequence exclude it
      for (j = 0; j < allLits.length; j++) // for each litemset except for same

        // i-th litemsets contained in j-th
        if (i != j && subset(allLitsArr[i], allLitsArr[j]))
          break;
      if (j != allLits.length)
        continue; // take next i-th litemset
    }
    int[] l1 = new int[2];  // 1-sequence with support
    l1[0] = i; l1[1] = allLitsSupp[i];
    all.add(l1);
  }
  if(debug>0) System.out.println("L1 done: "+all.size());
  if(allLargeSequences.size()!=0) // if there is any L2 and more sequences
  {
    Lk = (int[][])allLargeSequences.get(0); // take L2 sequences
    // noprune
    if(doPruning)
      Bk = (boolean[])allBk.get(0); // take L2's mask
    int[][] ab = new int[Lk.length][3]; // sequences as arrays indices in litemsets array
    Vector v = new Vector();
    for(i=0;i<Lk.length;i++)
    {
      ab[i][0] = Lk[i][0];  // copy to ab
      ab[i][1] = Lk[i][1];
      ab[i][2] = Lk[i][2];  // support
      if(Bk==null||!Bk[i])  // if mask exists and L2[i] isn't marked as not maximal
        v.add(ab[i]);
    }
    // noprune
    if(doPruning)
    {
      // contains all sequences not ejected at previous step
      int[][] arr = new int[v.size()][];
      for (i = 0; i < v.size(); i++)
        arr[i] = (int[]) v.get(i);
      sweep(all, arr); // sweep all k-sequences which contained in other k-sequences
    }
    else all.addAll(v);

    if(debug>0) System.out.println("L2 done: "+all.size());
    int[][] newab;  // new (k+1)-sequences maked from k-sequences
    for(l=1;l<allLargeSequences.size();l++) // for all Lk begin from L3
    {
      Lk = (int[][])allLargeSequences.get(l); // take pairs of parents
      // noprune
      if(doPruning)
        Bk = (boolean[])allBk.get(l); // take Lk's mask

      newab = new int[Lk.length][l+3];  // (k+1)-sequences as arrays of indices
      v.clear();
      for(i=0;i<Lk.length;i++)
      {
        System.arraycopy(ab[Lk[i][0]],0,newab[i],0,l+1); // first k elements
        newab[i][l+1] = ab[Lk[i][1]][l];  // last k+1 element
        newab[i][l+2] = Lk[i][2]; // support
        if(Bk==null||!Bk[i])
          v.add(newab[i]);
      }
      // no prune
      if(doPruning)
      {
        int[][] arr = new int[v.size()][];
        for (i = 0; i < v.size(); i++)
          arr[i] = (int[]) v.get(i);
        sweep(all, arr);
      }
      else all.addAll(v);

      ab = newab;
      if(debug>0) System.out.println("L"+(l+2)+" done: "+all.size());
    }
  }
  // all large sequences which are not ejected yet
  int[][] allArr = new int[all.size()][];
  for(i=0;i<all.size();i++)
    allArr[i] = (int[])all.get(i);
  all = null;
  // noprune
  boolean bAdd = true;
  for(i=0;i<allArr.length;i++)  // for each sequence
  {
    // noprune
    if(doPruning)
    {
      for (j = 0; j < allArr.length; j++)
        if (i != j) { // for each another sequence
          // check if i-th sequence contained in j-th sequence
          for (l = k = 0;
               k < allArr[j].length - 1 && l < allArr[i].length - 1; k++)
            if (subset(allLitsArr[allArr[i][l]], allLitsArr[allArr[j][k]]))
              l++;
          if (l == allArr[i].length - 1)
            break; // contained
        }
      if (j == allArr.length) { // not contained => add to result
        bAdd = true;
      } else bAdd = false;
    }
    if(bAdd) {
      CustomSequence cs = new CustomSequence();
      for(j=0;j<allArr[i].length-1;j++)
        cs.addItemSet(allLits[allArr[i][j]]);
      cs.setSupportCount(allArr[i][allArr[i].length-1]);
      cisl.add(cs);
    }
  }
  rules = cisl;
  cleanup();
  return rules;
}

  public Vector getSequentialRules() {
    return rules;
  }

  private void sweep(Vector all, int[][] arr)
  {
    int i,j,k,c;
    for(i=0;i<arr.length;i++)
    {
      for(j=0;j<arr.length;j++)
      if(i!=j)
      {
        for(k=c=0;k<arr[i].length-1;k++)
        {
          int[] ai = allLitsArr[arr[i][k]];
          int[] bi = allLitsArr[arr[j][k]];
          if(!subset(ai,bi)) break;
        }
        if(k==arr[i].length-1) break;
      }
      if(j==arr.length) all.add(arr[i]);
    }
  }

  /**
   * return true if bi contains ai
   * @param ai first itemset
   * @param bi second itemset
   * @return true if bi contains ai
   */
  private boolean subset(int[] ai, int[] bi)
  {
    int i,k;
    if(ai.length>bi.length) return false;
    for(i=k=0;i<ai.length;i++)
    {
      while(k<bi.length&&bi[k]<ai[i]) k++;
      if(k==bi.length) return false;
      if(bi[k]!=ai[i]) return false;
    }
    return true;
  }

  /**
   * initialize vectors used in algorithms for containing data
   * associated with result
   */
  private void initVectors()
  {
    allLargeItemsets = new Vector(20);
    allLargeItemsetsSupp = new Vector(20);
    allTIDs = new Vector(20);
    allLargeSequences = new Vector(20);
    allBk = new Vector(20);
    rules.clear();
  }

  /**
   * clear algorithm internal data
   */
  private void cleanup()
  {
    allLits = null;
    allLargeSequences = null;
    allBk = null;
    B1 = null;
    allLitsArr = null;
    allLitsSupp = null;
  }

  /**
   * clear apriori phase internal data
   */
  private void clearApriori()
  {
    L = null;
    TIDTable = null;
    CustomerID = null;
    allLargeItemsets = null;
    allLargeItemsetsSupp = null;
    allTIDs = null;
  }

  /**
   * prints Lk, used debugging
   */
  private void printLk(int[][] Lk)
  {
    for(int i=0;i<Lk.length;i++)
      if(Lk[i]!=null)
      {
        System.out.print(i+":");
        for(int j=0;j<Lk[i].length;j++) System.out.print(" "+Lk[i][j]);
        System.out.println();
      }
  }

  /**
   * prints tidTable, used for debugging
   */
  private void printTIDs(int[][][] lits)
  {
    for(int i=0;i<lits.length;i++)
    {
      System.out.println("Customer #"+i+":");
      if(lits[i]!=null)
        for(int j=0;j<lits[i].length;j++)
        {
          System.out.print("\t");
          if(lits[i][j]!=null)
            for(int k=0;k<lits[i][j].length;k++) System.out.print(lits[i][j][k]+" ");
          else System.out.print("empty");
          System.out.println();
        }
      else System.out.println("\tempty");
    }
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
18涩涩午夜精品.www| 免费观看一级特黄欧美大片| 欧美一区二区三区白人| 色综合久久久久久久久久久| 成人中文字幕合集| 国产不卡视频在线播放| 东方aⅴ免费观看久久av| 国产精品一卡二卡| 国产专区综合网| 国产一区二区电影| 国产电影精品久久禁18| 国产999精品久久| www.久久精品| 91成人网在线| 5566中文字幕一区二区电影| 欧美一区二区福利在线| www一区二区| www久久久久| 一区在线观看免费| 中文字幕一区二区视频| 亚洲综合免费观看高清完整版在线| 亚洲美女在线一区| 日韩高清不卡在线| 国产米奇在线777精品观看| 成人性生交大片免费看在线播放| 波多野结衣中文字幕一区二区三区 | 99久久精品国产一区二区三区| 国产91色综合久久免费分享| 99精品视频在线观看| 欧美视频一区二区三区在线观看| 日韩欧美卡一卡二| 国产精品黄色在线观看| 亚洲电影你懂得| 国产米奇在线777精品观看| 色综合中文综合网| 国内精品伊人久久久久av影院 | 亚洲欧美色图小说| 日本欧美一区二区三区乱码| 成人在线综合网站| 日韩精品一区二区三区在线观看 | 亚洲已满18点击进入久久| 日本午夜一本久久久综合| 国产乱一区二区| 色吊一区二区三区| www亚洲一区| 三级精品在线观看| 99久久国产综合色|国产精品| 欧美肥妇bbw| **网站欧美大片在线观看| 日韩和欧美一区二区| 高清av一区二区| 日韩一区二区三区在线观看| 亚洲欧美激情在线| 国产乱码精品一区二区三区av| 在线视频你懂得一区| 国产亚洲综合性久久久影院| 亚洲成a人v欧美综合天堂下载 | av电影在线不卡| 欧美va亚洲va在线观看蝴蝶网| 亚洲一线二线三线视频| 国产成人在线视频网站| 精品国产免费一区二区三区四区 | 麻豆精品久久精品色综合| 91婷婷韩国欧美一区二区| 久久亚洲精品小早川怜子| 亚洲国产中文字幕| 99re视频精品| 欧美国产乱子伦 | 亚洲欧洲av色图| 国产精品一区二区三区网站| 日韩三级精品电影久久久 | 欧美一级免费观看| 夜夜精品浪潮av一区二区三区| 国产白丝网站精品污在线入口| 久久先锋影音av鲁色资源网| 免费看日韩精品| 欧美一个色资源| 老司机精品视频导航| 日韩一级二级三级| 六月丁香婷婷久久| 日韩女优电影在线观看| 日本伊人色综合网| 精品国产乱码久久久久久浪潮| 久久99国产精品免费| 日韩欧美一级二级| 国产精品91xxx| 久久久国产精华| 成人黄页毛片网站| 亚洲欧美一区二区不卡| 色素色在线综合| 亚洲午夜在线观看视频在线| 91免费版在线看| 亚洲欧洲成人自拍| 色偷偷久久一区二区三区| 亚洲精品久久嫩草网站秘色| 色悠悠久久综合| 日韩成人精品视频| 久久亚洲一级片| 色妞www精品视频| 午夜精品久久久久久久蜜桃app| 在线一区二区三区| 日本成人在线电影网| 久久综合精品国产一区二区三区| 国产盗摄精品一区二区三区在线| 亚洲视频在线一区观看| 欧美人妇做爰xxxⅹ性高电影| 美女视频黄 久久| 国产欧美精品一区aⅴ影院 | 亚洲国产欧美在线| 日韩一卡二卡三卡国产欧美| 国产精品99久久久久久宅男| 亚洲同性同志一二三专区| 在线成人高清不卡| 国产综合色在线视频区| 亚洲综合视频在线| 久久久99精品免费观看| 成人黄色小视频在线观看| 亚洲国产日韩一级| 国产精品国产三级国产aⅴ无密码| 成人国产精品免费观看| 日韩成人一级大片| 亚洲免费毛片网站| 久久综合久久综合久久| 精品视频一区二区不卡| 国产成人午夜精品5599| 日韩国产欧美在线观看| 国产三级精品三级| 日韩午夜中文字幕| 91在线无精精品入口| 九九国产精品视频| 午夜精品影院在线观看| 中文字幕一区二区三区不卡 | 色综合 综合色| 丝袜a∨在线一区二区三区不卡| 国产精品另类一区| 精品区一区二区| 亚洲欧美另类久久久精品 | 日韩精品一区二区三区视频在线观看 | 国产精品99久久久| 精品一区二区在线免费观看| 亚洲最大成人综合| 国产精品久线观看视频| 久久综合久久久久88| 欧美不卡一区二区三区| 欧美人与禽zozo性伦| 欧美日韩另类一区| 91行情网站电视在线观看高清版| 成人午夜短视频| 国产大陆精品国产| 国产69精品久久久久毛片| 国产精品一区二区三区网站| 国产一区二区三区视频在线播放| 日韩 欧美一区二区三区| 午夜精品久久久久影视| 午夜av区久久| 三级成人在线视频| 老司机免费视频一区二区 | 亚洲视频一二三区| 成人免费高清视频在线观看| 国产成人免费在线| 成人综合在线观看| 91视频在线看| 在线一区二区视频| 在线不卡的av| 精品sm捆绑视频| 精品久久人人做人人爽| 久久尤物电影视频在线观看| 亚洲精品乱码久久久久久日本蜜臀| 欧美伦理视频网站| 精品欧美一区二区三区精品久久 | 美美哒免费高清在线观看视频一区二区| 香蕉成人伊视频在线观看| 日日噜噜夜夜狠狠视频欧美人 | 欧美日韩高清不卡| 日韩美女一区二区三区四区| 精品国产污网站| 综合久久综合久久| 日日摸夜夜添夜夜添国产精品| 男人的天堂久久精品| 国产乱码字幕精品高清av| 91在线国内视频| 91精品国产综合久久久蜜臀粉嫩| 久久99国产精品久久99果冻传媒| 国产在线播放一区二区三区| 成人毛片视频在线观看| 欧美撒尿777hd撒尿| 久久免费看少妇高潮| 亚洲欧美日韩在线播放| 免费观看在线综合| 91视频xxxx| 26uuu久久天堂性欧美| 中文字幕日韩av资源站| 国产成人av电影在线| 国产在线视频一区二区三区| 成人精品视频一区二区三区尤物| 欧美系列亚洲系列| 久久久久99精品一区| 五月激情六月综合| 成人综合婷婷国产精品久久 | 天天色图综合网|