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

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

?? aprioriall.java

?? 一個數據挖掘軟件ALPHAMINERR的整個過程的JAVA版源代碼
?? 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一区二区三区免费野_久草精品视频
国产欧美日韩在线| 99久久99久久综合| 成人性生交大合| 在线不卡的av| 亚洲欧洲精品一区二区精品久久久| 麻豆91在线看| 欧美高清www午色夜在线视频| 欧美激情一区二区三区| 极品瑜伽女神91| 欧美喷水一区二区| 亚洲激情在线激情| 高清国产一区二区| 久久综合成人精品亚洲另类欧美 | 欧美日韩国产免费| 国产精品久久久久久久蜜臀| 国产综合色视频| 日韩欧美一区在线| 亚洲成人激情自拍| 在线观看视频欧美| 亚洲精品第1页| 91美女在线观看| 亚洲欧洲无码一区二区三区| kk眼镜猥琐国模调教系列一区二区| 欧美电影免费提供在线观看| 丝袜亚洲另类丝袜在线| 欧美日韩在线不卡| 亚洲小说欧美激情另类| 在线观看视频一区二区| 亚洲国产日韩综合久久精品| 日本高清视频一区二区| 一区二区三区中文在线| 色悠悠亚洲一区二区| 亚洲精品免费在线| 欧美日韩在线观看一区二区| 午夜精品久久久| 欧美一区二区视频免费观看| 免费xxxx性欧美18vr| 欧美成人女星排名| 狠狠v欧美v日韩v亚洲ⅴ| 久久久精品天堂| 99久久久久久| 有坂深雪av一区二区精品| 欧美午夜精品免费| 蜜臀av性久久久久蜜臀aⅴ| 精品国产乱码91久久久久久网站| 韩国成人精品a∨在线观看| 欧美韩国日本综合| 色网站国产精品| 日韩电影在线一区二区| 久久亚洲精精品中文字幕早川悠里| 大尺度一区二区| 亚洲最新在线观看| 日韩欧美激情在线| 成人精品国产一区二区4080| 亚洲国产视频网站| 精品国产乱码久久久久久久久| 高清久久久久久| 亚洲国产精品麻豆| 精品国产乱码久久久久久老虎| 成人激情免费视频| 日韩主播视频在线| 久久久高清一区二区三区| 91免费国产在线| 亚洲成精国产精品女| 国产视频一区二区在线观看| 在线亚洲一区观看| 国产自产2019最新不卡| 亚洲色欲色欲www在线观看| 日韩一区二区免费在线电影| 97精品超碰一区二区三区| 同产精品九九九| 亚洲国产精品高清| 这里只有精品免费| 91首页免费视频| 国产综合久久久久影院| 亚洲与欧洲av电影| 国产精品毛片无遮挡高清| 欧美精品第一页| 色综合天天综合网天天狠天天 | 日韩欧美中文字幕精品| 99vv1com这只有精品| 国产在线乱码一区二区三区| 亚洲激情网站免费观看| 欧美激情资源网| 精品88久久久久88久久久| 欧美日韩精品一区二区三区四区 | 亚洲激情在线播放| 久久精品欧美一区二区三区麻豆| 欧美日韩国产天堂| 色诱亚洲精品久久久久久| 成人天堂资源www在线| 麻豆精品视频在线观看视频| 亚洲1区2区3区4区| 亚洲综合免费观看高清完整版| 中文一区二区在线观看| 国产视频视频一区| 久久麻豆一区二区| 久久亚洲精华国产精华液| 欧美一区二区在线免费播放| 欧美午夜电影网| 欧亚一区二区三区| 在线精品视频一区二区| 91麻豆国产福利在线观看| 成人免费高清视频| 成人一级片在线观看| www.日本不卡| 99riav一区二区三区| 色综合久久综合中文综合网| 91香蕉国产在线观看软件| 91色九色蝌蚪| 色综合色狠狠综合色| 色婷婷综合久久久久中文| 色综合久久88色综合天天| 一本高清dvd不卡在线观看| 91年精品国产| 欧美在线播放高清精品| 91成人免费在线| 欧美日韩视频在线一区二区| 777xxx欧美| 精品嫩草影院久久| 国产午夜精品一区二区三区嫩草| 久久精品男人的天堂| 国产精品美女久久久久久久久 | 久久久蜜桃精品| 国产女同性恋一区二区| 国产精品你懂的在线| 亚洲精品日韩综合观看成人91| 亚洲高清免费观看 | 波多野结衣中文字幕一区二区三区| 国产**成人网毛片九色| 91在线观看免费视频| 欧美日韩中文国产| 欧美一区二区三区在线观看| 国产一区二区三区电影在线观看| 成人午夜视频福利| 欧美日韩一区二区三区在线看| 91精品国产欧美一区二区成人| 久久久久99精品一区| 亚洲乱码国产乱码精品精小说 | 五月天亚洲精品| 国产一区在线看| 91视视频在线观看入口直接观看www| 欧美亚洲禁片免费| 日韩免费高清电影| 中文字幕一区二区三区色视频 | 五月天激情综合网| 国产一区二区三区黄视频| 色综合久久99| 欧美哺乳videos| 一区二区三区四区高清精品免费观看| 日韩成人免费电影| 本田岬高潮一区二区三区| 欧美日韩国产bt| 国产精品九色蝌蚪自拍| 蜜桃视频一区二区三区在线观看| 成人免费高清视频| 日韩精品中文字幕一区| 亚洲狼人国产精品| 国产精品一区二区在线观看不卡| 色综合久久久久网| 久久亚区不卡日本| 亚洲大片精品永久免费| 不卡的看片网站| 精品国产凹凸成av人导航| 亚洲综合另类小说| 不卡视频一二三| 久久久久久9999| 久久精品国产亚洲aⅴ| 欧美视频一区在线观看| 国产精品国产精品国产专区不蜜 | 亚洲福利视频一区| 成人的网站免费观看| 精品国产成人在线影院| 亚洲成av人片在线观看无码| a在线欧美一区| 亚洲精品一区二区三区精华液| 五月天丁香久久| 欧洲亚洲国产日韩| 亚洲免费色视频| 99re成人精品视频| 国产精品毛片大码女人| 国产激情偷乱视频一区二区三区| 欧美一二三区在线观看| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲永久免费av| av电影天堂一区二区在线观看| 亚洲精品在线一区二区| 久久国产精品99精品国产 | 日本不卡视频一二三区| 欧美日产国产精品| 亚洲一级二级三级| 欧美亚男人的天堂| 一区二区视频免费在线观看| 一本色道久久综合精品竹菊| 亚洲私人影院在线观看| 91亚洲大成网污www| 一区二区三区日韩欧美| 在线亚洲免费视频| 亚洲 欧美综合在线网络| 亚洲人被黑人高潮完整版|