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

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

?? aprioriall.java

?? 一個數據挖掘軟件ALPHAMINERR的整個過程的JAVA版源代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
    // init all vectors
    initVectors();
    if (customerTransSet == null) {
      customerTransSet = convertMiningminingInputStream();
    };

    fireMiningEvent(new CreationModelBeginMessage(getAlgorithmLevel()));
    
    // apply modified apriori tid for finding of litemsets
    apriori(customerTransSet);
    if(debug>1)
    {
      System.out.println("Litemsets:");
      for(i=n=0;i<allLargeItemsets.size();i++)
      {
        int[][] lk = (int[][])allLargeItemsets.get(i);
        for(j=0;j<lk.length;j++,n++)
        {
          System.out.print(n+":");
          for(k=0;k<lk[j].length;k++)
            System.out.print(" "+lk[j][k]);
          System.out.println();
        }
      }
    }
    // transformation using information found at previous phase
    // allTIDs and allLargeItemsets was created in the apriori method

    // total number of transactions of all customers
    int nTotalTrans = ((int[][])allTIDs.get(0)).length;
    int[][] lits;
    // ts will contain all transformed transactions
    int[][] ts = new int[nTotalTrans][];
    for(i=0;i<nTotalTrans;i++)
    {
      // for each transaction #i
      // counting number of all litemsets it contains
      for(l=n=0;l<allTIDs.size();l++)
      {
        lits = (int[][])allTIDs.get(l);
        if(lits[i]!=null)
        {
          for(m=0;m<lits[i].length;m++)
            if(lits[i][m]!=-1) n++; // increment counter
        } else break;
      }
      if(n==0) continue;  // take next transaction if no litemsets
      ts[i] = new int[n];
      // copying litemsets indices adding with previous number of litemsets
      // lits[i][j] on l-level is an index in L(l-1) litemsets
      // q - correction of index and is a sum of |L(i)| for each i in [1:l-2]
      for(l=q=n=0;l<allTIDs.size();l++) // for each level (length of litemsets)
      {
        lits = (int[][])allTIDs.get(l); // take litemsets indices on l-level
        if(lits[i]!=null)
        {
          for(m=0;m<lits[i].length;m++)
            if(lits[i][m]!=-1) ts[i][n++] = lits[i][m]+q;
        } else break;
        q += ((int[][])allLargeItemsets.get(l)).length;
      }
    }

    if(debug>1)
    {
      System.out.println("\nTS:");
      for(i=0;i<ts.length;i++)
      {
        System.out.print(i+":");
        if(ts[i]!=null)
        {
          for(j=0;j<ts[i].length;j++) System.out.print(" "+ts[i][j]);
          System.out.println();
        } else System.out.println(" empty");
      }
    }
    // number of customers in original transaction set
    int nCustom = customerTransSet.getSize();
    // stores number of non-empty transactions for each customer
    int[] nCustomTrans = new int[nCustom];
    // k - counter of customers after transformation
    for(i=k=0,w=-1;i<nTotalTrans;i++)
      if(ts[i]!=null)
      {
        nCustomTrans[CustomerID[i]]++;
        if(CustomerID[i]!=w)
        {
          w = CustomerID[i];
          k++;
        }
      }
    if(k==0) return;
    if(debug>0) System.out.println(k+" customers retained");
    // transformed customer sequences
    int[][][] tts = new int[k][][]; // k customers, k <= nCustom
    int maxCustSeqLen = 0;          // maximum customer's sequences length
    // w - last customer ID
    for(i=n=0,w=k=-1;i<nTotalTrans;i++)
    {
      if(ts[i]==null) continue;
      if(CustomerID[i]!=w)    // new customer
      {
        int custLen = nCustomTrans[CustomerID[i]];
        k++; tts[k] = new int[custLen][]; // add new customer
        if(maxCustSeqLen<custLen) maxCustSeqLen = custLen;
        n = 0;
        w = CustomerID[i];
      }
      tts[k][n++] = ts[i];
    }
    if(debug>1)
    {
      System.out.println("Transformed transaction set:");
      for(i=0;i<tts.length;i++)
      {
        System.out.println("Customer #"+i+":");
        if(tts[i]!=null)
          for(j=0;j<tts[i].length;j++)
          {
            System.out.print("Transaction #"+j+":");
            if(tts[i][j]!=null)
              for(k=0;k<tts[i][j].length;k++) System.out.print(" "+tts[i][j][k]);
            else System.out.print(" empty");
            System.out.println();
          }
        else System.out.println(" empty");
      }
    }
    allTIDs = null;

    // creating L2
    int nL1;  // number of all litemsets
    for(l=nL1=0;l<allLargeItemsets.size();l++) nL1 += ((int[][])allLargeItemsets.get(l)).length;
    allLits = new ItemSet[nL1];   // litemsets as itemsets for results list
    allLitsArr = new int[nL1][];  // litemsets as arrays for maximal phase
    allLitsSupp = new int[nL1];   // litemsets supports

    for(l=k=0;l<allLargeItemsets.size();l++)
    {
      int[][] L1 = (int[][])allLargeItemsets.get(l);  // litemsets of length l
      int[] S1 = (int[])allLargeItemsetsSupp.get(l);  // their supports
      for(i=0;i<L1.length;i++)
      {
        allLits[k] = new ItemSet();
        allLitsArr[k] = L1[i];
        allLitsSupp[k] = S1[i];
        for(j=0;j<L1[i].length;j++) allLits[k].addItem(L1[i][j]);
        k++;
      }
    }

    clearApriori();

    int nC12 = nL1*nL1; // number of candidates of length 2
    if(debug>0)
    {
      System.out.println("nL1 = "+nL1);
      System.out.println("nC2 = "+nC12+" ("+(long)nC12*8l+" bytes)");
    }
    int suppCk[] = new int[nC12]; // support counters for candidates
    int cidCk[] = new int[nC12];  // customer id's for candidates
    for(i=0;i<nC12;i++) cidCk[i] = -1;
    int a,b;
    int[][][] tidTable = new int[tts.length][][];
    IntVec[] tvec = new IntVec[maxCustSeqLen-1];
    for(i=0;i<maxCustSeqLen-1;i++) tvec[i] = new IntVec();
    // counting support of candidates of length 2
    for(k=0;k<tts.length;k++)   // for each customer k
    {
      for(i=0;i<tts[k].length-1;i++)  // for its each transformed transaction
      {
        tvec[i].clear();
        for(j=0;j<tts[k][i].length;j++) // for each element of that transaction
        {
          a = tts[k][i][j];
          for(m=i+1;m<tts[k].length;m++)  // for each transaction after i-th
            for(n=0;n<tts[k][m].length;n++) // for its each element
            {
              b = tts[k][m][n];
              l = a*nL1+b;    // candidate's number
              // if it is not incremented by i-th transaction of k-th customer
              if(cidCk[l]!=k+i+1)
              {
                cidCk[l] = k+i+1;
                // add to list of candidates of i-th transaction of k-th cust.
                tvec[i].add(l);
              }
            }
        }
      }
      // convert vectors to arrays
      tidTable[k] = new int[tts[k].length-1][];
      for(i=0;i<tts[k].length-1;i++)
      {
        l = tvec[i].size();
        if(l==0) continue;
        tidTable[k][i] = new int[tvec[i].size()];
        tvec[i].copy(tidTable[k][i]);
//        java.util.Arrays.sort(tidTable[k][i]);
        for(j=0;j<tidTable[k][i].length;j++)
        {
          l = tidTable[k][i][j];
          // if candidate's support counter is not incremented by k-th customer
          if(cidCk[l]!=k)
          {
            suppCk[l]++;  // increment it
            cidCk[l] = k;
          }
        }
      }
    }
    // k - counter of supported candidates
    for(i=k=0;i<nC12;i++) if(suppCk[i]>=m_minSuppInt) k++;
    if(k==0) {
      saveResults();  // save L1 and exit
      return;
    }
    int Lk[][] = new int[k][];  // L2 sequences
    int Sk[][] = new int[nL1][2];
    // noprune
    if(doPruning)
      B1 = new boolean[nL1];
    for(i=k=l=m=0;i<nL1;i++)  // for each 1-sequence
    {
      Sk[i][0] = k; // number of first 2-sequence which have
                    // i-th 1-sequence as first parent
      for(j=0;j<nL1;j++,l++)
        if(suppCk[l]>=m_minSuppInt)
        {
          Lk[k] = new int[3]; // new large 2-sequence
          Lk[k][0] = i; Lk[k][1] = j; Lk[k][2] = suppCk[l];
          suppCk[l] = -m-1; // (-m-1) value used for correcting tidTable
          // noprune
          if(doPruning)
          {
            B1[i] = true; // mark i-th and j-th 1-sequences
            B1[j] = true; // as not maximal
          }
          k++;  // counter of large 2-sequences
        }
        else m++; // counter of not supported candidates
      if(k!=Sk[i][0]) Sk[i][1] = k-1; // number of last 2-sequence which have
                                      // i-th 1-sequence as first parent
      else Sk[i][0] = -1; // i-th 1-sequences doesn't have any children
                          // with it as first parent
    }
    tidTable = checkTIDs(tidTable,suppCk);  // correct tidTable

    if(debug>1)
    {
      System.out.println("L2:");
      for(i=0;i<Lk.length;i++) System.out.println(i+": "+Lk[i][0]+","+Lk[i][1]);
      System.out.println("TID Table #2:");
      printTIDs(tidTable);
    }

  int ckCounter;  // counter of generated candidates
  int newTidTable[][][];
  int newLk[][];
  int nStep = 2;
  // for each k-sequence boundsLk[i][0] - number of first k-sequence it can be
  // merged with, boundsLk[i][1] - number of last k-sequence it can be merged
  // with, boundsLk[i][2] - number of first candidate it generated
  // boundsLk[i][0] = -1 if k-sequence doesn't generate any candidates
  int[][] boundsLk;
  boolean [] Bk = null;
  int hi,lo,cand,s;
  while(true)
  {
    nStep++;
    System.out.println("\t"+Lk.length+" large sequences #"+(nStep-1));
    if(debug>0) System.out.println("Level = "+nStep+" Lk = "+Lk.length);
    newTidTable = new int[tidTable.length][][];
    boundsLk = new int[Lk.length][3];
    ckCounter = 0;
    if(debug>1) System.out.print("Making bounds...");
    for(i=0;i<Lk.length;i++)  // for each large sequence found at previous step
    {
      b = Lk[i][1]; // second parent
      if(Sk[b][0]!=-1)  // if it has generated any large k-sequence
      {
        boundsLk[i][0] = Sk[b][0];
        boundsLk[i][1] = Sk[b][1];
        boundsLk[i][2] = ckCounter;
        ckCounter += Sk[b][1]-Sk[b][0]+1;
      } else boundsLk[i][0] = -1;
    }
    if(debug>1)
    {
      System.out.println("\tok:");
      printLk(boundsLk);
      System.out.println("\nckCounter = "+ckCounter);
    }
    if(ckCounter==0) break; // no candidates
    System.out.print(ckCounter+" candidates");
    suppCk = new int[ckCounter];  // support counters
    cidCk = new int[ckCounter];   // last customer id's
    for(i=0;i<ckCounter;i++) cidCk[i] = -1;
    int nPoints = tidTable.length / 20; // for debug
    if(nPoints==0) nPoints = 1;  // for debug
    for(i=0;i<tidTable.length;i++)  // take i-th customer
    {
      if(i%nPoints==0) System.out.print(".");  // for debug
      if(tidTable[i]==null||tidTable[i].length<2) continue; // can't generate any pairs
      for(j=n=0;j<tidTable[i].length-1;j++,n=0) // for each row of tidTable except for last
      {
        tvec[j].clear();  // clear vector of candidates numbers
        if(tidTable[i][j]==null) continue; // empty row => take next
        s = i+j+1;  // used for excluding repeating candidates numbers in new rows
        for(k=0;k<tidTable[i][j].length;k++)  // for each element of j-th row
        {
          a = tidTable[i][j][k];  // element
          lo = boundsLk[a][0];  // first parent it can be merged with
          if(lo!=-1)  // if no take next
          {
            hi = boundsLk[a][1];  // last parent
            cand = boundsLk[a][2] - lo; // first candidate number
            for(m=j+1;m<tidTable[i].length;m++) // for each next row of tidTable
            {
              if(tidTable[i][m]==null) continue;  // empty => next row
              // find position of first parent
              l = findStart(tidTable[i][m],lo,hi);
              if(l<0) continue; // not found => next row
              while(l<tidTable[i][m].length)
              {
                b = tidTable[i][m][l++];
                if(b>hi) break; // more number than last parent => next row
                b += cand;  // candidate number
                if(cidCk[b]!=s) // if not processed by j-th row of i-th customer
                {
                  tvec[j].add(b); // add to vector of candidates numbers of j-th row
                  cidCk[b] = s;
                }
              }
            }
          }
        }
      }
      // make new tidTable for i-th customer
      newTidTable[i] = new int[tidTable[i].length-1][];
      for(j=0;j<tidTable[i].length-1;j++)
      {
        if(tvec[j].size()==0) continue; // empty row
        newTidTable[i][j] = new int[tvec[j].size()];
        tvec[j].copy(newTidTable[i][j]);
//        java.util.Arrays.sort(newTidTable[i][j]);
        for(k=0;k<newTidTable[i][j].length;k++)
        {
          b = newTidTable[i][j][k]; // candidate number
          if(cidCk[b]!=i) // if candidate support counter isn't incremented
          {               // by i-th customer
            cidCk[b] = i;
            suppCk[b]++;  // increment support counter
          }
        }
      }
    }
    if(debug>1)
    {
      System.out.println("newTidTable:");
      printTIDs(newTidTable);
    }
    // number of large (k+1)-sequences
    for(i=k=0;i<ckCounter;i++) if(suppCk[i]>=m_minSuppInt) k++;
    if(debug>0)
    {
      if(k==0) System.out.println("no supported candidates");
    }
    if(k==0) break; // no large sequences
    newLk = new int[k][]; // new large sequences as an arrays
    Sk = new int[Lk.length][2];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲色大成网站www久久九九| 久久精品国产久精国产| 成人av在线资源网| 中文字幕亚洲电影| 欧美在线短视频| 日本不卡高清视频| 久久综合久久综合久久| 国产成人免费视| 亚洲男人都懂的| 欧美精品成人一区二区三区四区| 免费在线观看一区二区三区| 精品成人佐山爱一区二区| 国产91精品入口| 亚洲久草在线视频| 51精品秘密在线观看| 精品一区二区三区免费视频| 欧美高清一级片在线观看| 色94色欧美sute亚洲线路一ni| 亚洲综合自拍偷拍| 欧美美女直播网站| 日本欧美一区二区| 久久久欧美精品sm网站| 午夜成人在线视频| 欧美又粗又大又爽| 午夜视频在线观看一区二区 | 欧美伦理影视网| 日韩影视精彩在线| 精品国产凹凸成av人导航| 国产999精品久久| 一区二区三区加勒比av| 91国在线观看| 久久久久久毛片| 亚洲视频资源在线| 激情五月播播久久久精品| 喷白浆一区二区| 成人精品国产免费网站| 欧美一区二区三区四区五区| 国产嫩草影院久久久久| 国产人成一区二区三区影院| 一区二区免费在线播放| 精品一区二区在线观看| 欧美一区二区三区在线观看视频| 精品一区二区在线播放| 精品美女被调教视频大全网站| 久久电影网站中文字幕| 国产欧美日韩一区二区三区在线观看| 99久久er热在这里只有精品15 | 欧美日韩高清影院| 国内国产精品久久| 亚洲综合丁香婷婷六月香| 精品久久久久久久久久久久久久久 | 欧美成人bangbros| 91麻豆国产福利在线观看| 美女视频一区二区| 综合色天天鬼久久鬼色| 欧美一区二区免费视频| 成人午夜视频在线观看| 丝袜美腿亚洲综合| 亚洲欧美综合色| 91精品久久久久久久久99蜜臂| 国产美女在线观看一区| 亚洲国产精品久久久久秋霞影院 | 欧美亚洲免费在线一区| 国产成人免费高清| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲精品国产a久久久久久| 久久亚洲综合色一区二区三区 | 亚洲欧洲av色图| 久久久高清一区二区三区| 91麻豆精品国产91久久久久| www.99精品| 精品影视av免费| 亚洲福利一区二区三区| 亚洲日本一区二区| 欧美高清在线一区二区| 欧美一区二区视频免费观看| 欧美亚洲一区三区| 一本到高清视频免费精品| 国内精品嫩模私拍在线| 亚洲mv在线观看| 国产精品日产欧美久久久久| 欧美xxxxxxxxx| 91麻豆精东视频| 国产精品综合一区二区三区| 一区二区三区不卡视频| 亚洲高清免费观看高清完整版在线观看| 91色九色蝌蚪| 日本不卡视频一二三区| 亚洲日韩欧美一区二区在线| 欧美一级国产精品| 国产精品一二三在| 亚洲超碰精品一区二区| 精品国产91久久久久久久妲己| 91在线看国产| 亚洲综合一二区| 亚洲国产精品传媒在线观看| 欧美成人aa大片| 日韩欧美激情一区| 欧美成人精品福利| 2020国产精品| 国产亚洲人成网站| 国产亚洲精品aa午夜观看| 国产午夜久久久久| 26uuu亚洲综合色| 日韩美女视频在线| 欧美日韩精品一区二区三区 | 另类小说图片综合网| 三级影片在线观看欧美日韩一区二区 | 国产一区欧美日韩| 国产成人精品免费在线| 99精品视频中文字幕| 91福利精品第一导航| 欧美午夜片在线观看| 欧美三电影在线| 日韩视频免费直播| 精品久久国产字幕高潮| 欧美日韩国产首页在线观看| 欧美高清视频不卡网| 精品欧美一区二区三区精品久久| 26uuu国产在线精品一区二区| 亚洲国产高清不卡| 亚洲国产成人va在线观看天堂| 日韩精品电影在线观看| 国产美女在线精品| 99久久精品免费| 在线播放91灌醉迷j高跟美女| 久久久久久黄色| 亚洲欧美日韩一区| 日韩电影在线一区二区| 国产很黄免费观看久久| 91官网在线免费观看| 日韩视频中午一区| 日本一区二区成人| 亚洲图片欧美一区| 国产成人精品免费一区二区| 在线一区二区三区四区| 日韩精品一区在线| 亚洲免费av观看| 激情综合网激情| 色系网站成人免费| 日韩欧美综合一区| 中文在线资源观看网站视频免费不卡| 一区二区在线观看视频| 极品美女销魂一区二区三区| 日韩av在线免费观看不卡| 琪琪一区二区三区| 久久精品无码一区二区三区| 亚洲成av人片在www色猫咪| 久久99久久精品欧美| 538prom精品视频线放| 亚洲一区二区综合| www.欧美精品一二区| 欧美亚洲图片小说| 亚洲色图在线视频| 成人97人人超碰人人99| 久久久久88色偷偷免费| 99热这里都是精品| 欧亚洲嫩模精品一区三区| 欧美mv日韩mv| 亚洲一区二区精品久久av| 国产a精品视频| 91精品国产免费| 亚洲人成人一区二区在线观看| 久久99精品国产.久久久久| 色噜噜偷拍精品综合在线| 国产精品午夜春色av| 久久国产精品99久久久久久老狼| 精品在线观看免费| 欧美色图天堂网| 欧美精品一区二区三区在线| 亚洲电影一区二区三区| 精品伊人久久久久7777人| 欧美日韩一区中文字幕| 国产精品久久久久三级| 国产伦精品一区二区三区在线观看 | 欧美一级理论性理论a| 亚洲一区免费观看| jizzjizzjizz欧美| 欧美极品xxx| 蜜桃av一区二区三区电影| 欧美日韩亚洲丝袜制服| 18成人在线观看| 大美女一区二区三区| 亚洲精品在线网站| 日日摸夜夜添夜夜添亚洲女人| 亚洲精品老司机| 国产精品一区二区三区四区| 亚洲大片在线观看| 欧美又粗又大又爽| 色综合久久久久久久久久久| 亚洲欧美一区二区久久 | 亚洲视频网在线直播| 国产精品自拍毛片| 国产女主播视频一区二区| 色综合久久久久久久久久久| 国产精品大尺度| 99re成人精品视频| 亚洲午夜一区二区三区| 欧美一区二区三区性视频| 久久99精品久久只有精品|