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

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

?? aprioriall.java

?? 為了下東西 隨便發了個 datamining 的源代碼
?? 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一区二区三区免费野_久草精品视频
依依成人综合视频| 亚洲视频在线一区| 99久久99久久精品免费看蜜桃| 夜夜嗨av一区二区三区网页| 精品成人在线观看| 欧美性感一区二区三区| 国产精品影视天天线| 午夜伦欧美伦电影理论片| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日一区二区三区| 中文欧美字幕免费| 精品理论电影在线| 欧美视频中文字幕| 波多野结衣中文一区| 黑人巨大精品欧美一区| 日韩国产欧美一区二区三区| 一区二区中文视频| 国产午夜精品久久| 久久亚区不卡日本| 欧美成va人片在线观看| 欧美日韩精品欧美日韩精品一综合| 成人黄色片在线观看| 国产制服丝袜一区| 国产在线精品一区二区不卡了| 免费一级片91| 丝袜美腿亚洲一区二区图片| 亚洲精品日韩综合观看成人91| 国产欧美日本一区二区三区| 欧美大片一区二区三区| 欧美一级高清片| 欧美日韩日日骚| 欧美日韩夫妻久久| 欧美三级韩国三级日本一级| 91色porny| eeuss鲁片一区二区三区在线看| 国产精品香蕉一区二区三区| 激情综合色综合久久| 人人狠狠综合久久亚洲| 奇米影视一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎| 日本中文字幕一区| 麻豆高清免费国产一区| 久久国产尿小便嘘嘘尿| 国产综合成人久久大片91| 九九精品视频在线看| 狠狠色丁香婷婷综合久久片| 国产美女娇喘av呻吟久久| 国产麻豆一精品一av一免费| 国产一区在线观看视频| 国产在线国偷精品免费看| 国产成人综合在线| 成人免费视频视频| 91麻豆精东视频| 欧洲一区在线观看| 欧美久久久久免费| 精品盗摄一区二区三区| 国产午夜精品福利| 亚洲日本欧美天堂| 偷窥少妇高潮呻吟av久久免费| 日韩精品91亚洲二区在线观看| 日韩不卡一二三区| 国产一区999| 97精品电影院| 7777精品伊人久久久大香线蕉超级流畅| 欧美日韩色一区| 精品国产伦理网| 国产精品人人做人人爽人人添| 18成人在线观看| 日韩成人一级片| 国产精品亚洲人在线观看| 成人福利视频网站| 欧美三级韩国三级日本一级| 日韩你懂的在线播放| 国产精品妹子av| 亚洲成国产人片在线观看| 久久精品国产亚洲高清剧情介绍| 国产aⅴ综合色| 欧美午夜在线观看| 久久一日本道色综合| 中文字幕免费不卡| 一区二区三区在线视频免费| 人人超碰91尤物精品国产| 国产91精品一区二区麻豆亚洲| 色老头久久综合| 日韩免费观看高清完整版| 综合色中文字幕| 另类人妖一区二区av| 99国产一区二区三精品乱码| 5566中文字幕一区二区电影| 国产亚洲精品资源在线26u| 亚洲第一会所有码转帖| 国产不卡高清在线观看视频| 欧美日韩性生活| 国产人成亚洲第一网站在线播放| 亚洲黄色av一区| 国产精品自产自拍| 欧美久久久久久久久| 国产精品久久久久一区二区三区| 首页欧美精品中文字幕| 91性感美女视频| 久久久国际精品| 日本欧美在线观看| 一本色道综合亚洲| 国产精品欧美久久久久无广告 | 亚洲电影中文字幕在线观看| 国产福利精品一区二区| 91精品麻豆日日躁夜夜躁| 亚洲日本乱码在线观看| 国产成人免费视频精品含羞草妖精| 色综合久久久久| 国产精品理伦片| 国产一区二区免费在线| 豆国产96在线|亚洲| 国产三级三级三级精品8ⅰ区| 亚洲丰满少妇videoshd| 欧美中文字幕亚洲一区二区va在线 | 亚洲一区二区三区四区的| 国产91丝袜在线播放九色| 精品国产乱码久久久久久免费 | 国产欧美一区在线| 一区二区三区中文字幕精品精品 | 亚洲欧洲制服丝袜| 国产成人在线电影| wwww国产精品欧美| 久久 天天综合| 日韩美女天天操| 另类调教123区 | 欧美午夜电影在线播放| 亚洲欧洲美洲综合色网| 国产福利91精品一区二区三区| 亚洲精品一区二区三区香蕉| 婷婷亚洲久悠悠色悠在线播放| 色欧美88888久久久久久影院| 国产精品乱人伦一区二区| 国产ts人妖一区二区| 久久久久高清精品| 国产精品123区| 国产日韩欧美电影| 成人免费毛片片v| 日韩一区欧美一区| 97精品视频在线观看自产线路二| 最新欧美精品一区二区三区| 99久久精品一区| 亚洲一区二区三区四区中文字幕| 色噜噜夜夜夜综合网| 亚洲国产aⅴ天堂久久| 欧美精品色一区二区三区| 视频在线观看一区二区三区| 欧美一区二区啪啪| 国内偷窥港台综合视频在线播放| 久久久久久9999| 99这里都是精品| 亚洲一区二区视频在线观看| 欧美日本在线一区| 黄页视频在线91| 中文字幕在线观看一区二区| 99精品国产热久久91蜜凸| 亚洲一区二区欧美日韩| 欧美一区午夜精品| 国产麻豆午夜三级精品| 日韩一区在线看| 欧美嫩在线观看| 国模冰冰炮一区二区| 中文字幕国产一区| 欧美午夜理伦三级在线观看| 日本不卡不码高清免费观看| 欧美精品一区二区三区视频| 成人中文字幕在线| 亚洲成人免费看| 久久噜噜亚洲综合| 色综合久久精品| 麻豆91精品91久久久的内涵| 国产精品色噜噜| 欧美精品一卡二卡| 国产v综合v亚洲欧| 午夜久久电影网| 欧美国产精品一区二区| 欧美日韩国产小视频在线观看| 久久精品国产久精国产爱| 国产精品传媒入口麻豆| 制服丝袜亚洲色图| 成人激情电影免费在线观看| 亚洲成人一区在线| 久久久精品免费观看| 在线免费观看日本欧美| 精品午夜久久福利影院| 一区二区三区不卡在线观看| 欧美一级在线视频| 色婷婷综合久久久中文一区二区| 美女高潮久久久| 亚洲精品中文在线影院| 精品av久久707| 欧美性大战久久久久久久蜜臀 | 成人激情免费视频| 日本午夜精品视频在线观看 | 色哟哟国产精品免费观看| 久久97超碰色| 亚洲综合色婷婷| 久久久久国产一区二区三区四区| 欧美亚洲免费在线一区|