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

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

?? itcc.cc

?? 一種聚類算法,名字是cocluster
?? CC
?? 第 1 頁 / 共 3 頁
字號:
/*  Itcc.cc    Implementation of the information theoretic co-cluster algorithm     with smoothing, local search, and variations of batch/local search update.    Copyright (c) 2005, 2006              by Hyuk Cho    Copyright (c) 2003, 2004    	      by Hyuk Cho, Yuqiang Guan, and Suvrit Sra                {hyukcho, yguan, suvrit}@cs.utexas.edu*/#include <iostream>#include <fstream>#include <stdlib.h>#include "Itcc.h"#include "MatrixVector.h"Itcc::Itcc(Matrix *inputCCS, Matrix *inputCRS, commandLineArgument myCLA): Coclustering(inputCCS, inputCRS, myCLA){//  cout << endl << "Itcc::Itcc()" << endl;  if (myCCS->isHavingNegative()){    cout << "  Invalid matrix for ITCC. Matrix should be non-negative." << endl << endl;    exit(EXIT_FAILURE);  }  PlogP = myCCS->getPlogP();  mutualInfo = myCCS->getMutualInfo();  pX = myCCS->getPX();  pY = myCCS->getPY();  qYxhat = new double *[numRowCluster];  for (int rc = 0; rc < numRowCluster; rc++)    qYxhat[rc] = new double[numCol];  qXyhat = new double *[numColCluster];  for (int cc = 0; cc < numColCluster; cc++)    qXyhat[cc] = new double[numRow];  pxhat = new double[numRowCluster];  pyhat = new double[numColCluster];  memoryUsed += (numRowCluster * numCol + numColCluster * numRow + numRowCluster + numColCluster) * sizeof(double);}Itcc::~Itcc(){  delete [] pxhat;  delete [] pyhat;  for (int cc = 0; cc < numColCluster; cc++)    delete [] qXyhat[cc];  delete [] qXyhat;  for (int rc = 0; rc < numRowCluster; rc++)    delete [] qYxhat[rc];  delete [] qYxhat;//  cout << endl << "Itcc::~Itcc()" << endl;}void Itcc::computeRowCentroid(){  for (int rc = 0; rc < numRowCluster; rc++)    for (int c = 0; c < numCol; c++)      qYxhat[rc][c] = 0;  for (int r = 0; r < numRow; r++){    int rc = rowCL[r];    double pX_r_over_pxhat_rc = pX[r] / pxhat[rc];  // maybe we need to check pX[r] > 0    for (int c = 0; c < numCol; c++){      int cc = colCL[c];      if (Acompressed[rc][cc] > 0)	//qYxhat[rc][c] += Acompressed[rc][cc] * pX[r] / pxhat[rc] * pY[c] / pyhat[cc];	qYxhat[rc][c] += Acompressed[rc][cc] * pX_r_over_pxhat_rc * pY[c] / pyhat[cc];    }  }  for (int rc = 0; rc < numRowCluster; rc++)    normalize_vec_1(qYxhat[rc], numCol);  checkDumpLevel4Centroid(qYxhat, numRowCluster, numCol);}void Itcc::computeColCentroid(){  for (int cc = 0; cc < numColCluster; cc++)    for (int r = 0; r < numRow; r++)      qXyhat[cc][r] = 0;  for (int c = 0; c < numCol; c++){    int cc = colCL[c];    double pY_c_over_pyhat_cc = pY[c] / pyhat[cc];  // maybe we need to check pY[c] > 0    for (int r = 0; r < numRow; r++){      int rc = rowCL[r];      if (Acompressed[rc][cc] > 0)        //qXyhat[cc][r] += Acompressed[rc][cc] * pX[r] / pxhat[rc] * pY[c] / pyhat[cc];        qXyhat[cc][r] += Acompressed[rc][cc] * pX[r] / pxhat[rc] * pY_c_over_pyhat_cc ;    }  }  for (int cc = 0; cc < numColCluster; cc++)    normalize_vec_1(qXyhat[cc], numRow);  checkDumpLevel4Centroid(qXyhat, numColCluster, numRow);}void Itcc::computeRowCentroid4RowCluster(){  myCRS->computeRowCentroid(numRowCluster, rowCL, qYxhat);  isNormalizedRowCentroid = false;}void Itcc::computeColCentroid4ColCluster(){  myCCS->computeColCentroid(numColCluster, colCL, qXyhat);  isNormalizedColCentroid = false;}void Itcc::computeMarginal(){  for (int rc = 0; rc < numRowCluster; rc++)    pxhat[rc] = 0;  for (int cc = 0; cc < numColCluster; cc++)    pyhat[cc] = 0;  for (int rc = 0; rc < numRowCluster; rc++)    for (int cc = 0; cc < numColCluster; cc++)      pxhat[rc] += Acompressed[rc][cc];  for (int rc = 0; rc < numRowCluster; rc++)    for (int cc = 0; cc < numColCluster; cc++)      pyhat[cc] += Acompressed[rc][cc];}void Itcc::computeObjectiveFunction(){  checkDumpLevel4Cocluster(dumpFile);  //objValue = PlogP - myCCS->getPlogQ(Acompressed, rowCL, colCL, pxhat, pyhat);  objValue = mutualInfo - computeMutualInfo(Acompressed, numRowCluster, numColCluster, pxhat, pyhat);}void Itcc::computeObjectiveFunction4RowCluster(){  objValue4RowCluster = mutualInfo - computeMutualInfo(qYxhat, numRowCluster, numCol);}void Itcc::computeObjectiveFunction4ColCluster(){  objValue4ColCluster = mutualInfo - computeMutualInfo(qXyhat, numColCluster, numRow);}void Itcc::doRowFarthestInitialization(){  double maxDis = MY_DBL_MIN;  double *tempVec = new double[numCol];  double ** simMat;  int maxInd = 0;  bool *markPicked = new bool[numRow];  for (int i = 0; i < numRow; i++)    markPicked[i] = false;  for (int i = 0; i < numCol; i++)    tempVec[i] = 0;  for (int i = 0; i < numRow; i++)    myCRS->ith_add_CV(i, tempVec);  for (int i = 0; i < numRow; i++){//    double temp = myCRS->Kullback_leibler(tempVec, i, NO_SMOOTHING, ROW_DIMENSION);//cout << "SMOOTHING_TYPE_4_ROW = " << smoothingType << endl;    double temp = myCRS->Kullback_leibler(tempVec, i, smoothingType, ROW_DIMENSION);    if (temp > maxDis){      maxDis = temp;      maxInd = i;    }  }  markPicked[maxInd] = true;  myCRS->ith_add_CV(maxInd, qYxhat[0]);  normalize_vec_1(qYxhat[0], numCol);  delete [] tempVec;  simMat = new double *[numRowCluster];  for (int i = 0; i < numRowCluster; i++)    simMat[i] = new double[numRow];  for (int i = 0; i < numRow; i++)    simMat[0][i] = rowDistance(i, 0);   for (int i = 1; i < numRowCluster; i++){    double temp;    maxDis = MY_DBL_MIN;    maxInd = 0;    for(int j = 0; j < numRow; j++)      if (!markPicked[j]){        temp = 0;        for (int k = 0; k < i; k++)          temp += simMat[k][j];          if (temp > maxDis){            maxDis = temp;            maxInd = j;          }      }    markPicked[maxInd] = true;    myCRS->ith_add_CV(maxInd, qYxhat[i]);    normalize_vec_1(qYxhat[i], numCol);    for(int j = 0; j < numRow; j++)      simMat[i][j] = rowDistance(j, i);  }  for (int i = 0; i < numRow; i++)    rowCL[i] = 0;  for (int i = 0; i < numRowCluster; i++)    rowCS[i] = 1;            // just to make sure cluster size is >0  reassignRC();  for (int i = 0; i < numRowCluster; i++)    delete [] simMat[i];  delete [] simMat;  delete [] markPicked;}void Itcc::doColFarthestInitialization(){  double maxDis = MY_DBL_MIN;  double *tempVec = new double[numRow];  double **simMat;  int maxInd = 0;  bool *markPicked = new bool[numCol];  for (int i = 0; i < numCol; i++)    markPicked[i] = false;  for (int i = 0; i < numRow; i++)    tempVec[i] = 0;  for (int i = 0; i < numCol; i++)    myCCS->ith_add_CV(i, tempVec);   for (int i = 0; i < numCol; i++){//    double temp = myCCS->Kullback_leibler(tempVec, i, NO_SMOOTHING, COL_DIMENSION);//cout << "SMOOTHING_TYPE_4_COL = " << smoothingType << endl;    double temp = myCCS->Kullback_leibler(tempVec, i, smoothingType, COL_DIMENSION);    if (temp > maxDis){      maxDis = temp;      maxInd = i;    }  }  markPicked[maxInd] = true;  myCCS->ith_add_CV(maxInd, qXyhat[0]);  normalize_vec_1(qXyhat[0], numRow);  delete [] tempVec;  simMat = new double *[numColCluster];  for (int i = 0; i < numColCluster; i++)    simMat[i] = new double [numCol];  for (int i = 0; i < numCol; i++)    simMat[0][i] = colDistance(i, 0);  for (int i = 1; i < numColCluster; i++){    double temp;    maxDis = MY_DBL_MIN;    maxInd = 0;    for(int j = 0; j < numCol; j++)      if (!markPicked[j]){        temp = 0;        for (int k = 0; k < i; k++)          temp += simMat[k][j];        if (temp > maxDis){          maxDis = temp;          maxInd = j;        }      }    markPicked[maxInd] = true;    myCCS->ith_add_CV(maxInd, qXyhat[i]);    normalize_vec_1(qXyhat[i], numRow);    for(int j = 0; j < numCol; j++)      simMat[i][j] = colDistance(j, i);  }  for (int i = 0; i < numCol; i++)    colCL[i] = 0;  for (int i = 0; i < numColCluster; i++)    colCS[i] = 1;              // just to make sure cluster size is >0  reassignCC();  for (int i = 0; i < numColCluster; i++)    delete [] simMat[i];  delete [] simMat;  delete [] markPicked;}       void Itcc::doRowRandomPerturbInitialization(){  double tempNorm;  double *tempVec = new double[numCol];  double *center = new double[numCol];  for (int i=0; i<numCol; i++)    tempVec[i] = randNumGenerator.GetUniform() - 0.5;  normalize_vec_1(tempVec, numCol);  tempNorm = perturbationMagnitude * randNumGenerator.GetUniform();  for (int j = 0; j < numCol; j++)    tempVec[j] *= tempNorm;  for (int i = 0; i < numCol; i++)    center[i] = 0;  for (int i = 0; i < numRow; i++)    myCRS->ith_add_CV(i, center);  for (int i = 0; i < numRowCluster; i++){    for(int j = 0; j < numCol; j++)      qYxhat[i][j] = center[j] * fabs(tempVec[j]+1);    normalize_vec_1(qYxhat[i], numCol);  }  for (int i = 0; i < numRow; i++)    rowCL[i] = 0;  for (int i = 0; i < numRowCluster; i++)    rowCS[i] = 1;            // just to make sure cluster size is >0  reassignRC();  delete [] tempVec;  delete [] center;}void Itcc::doColRandomPerturbInitialization(){  double tempNorm;  double *tempVec = new double[numRow];  double *center = new double[numRow];  for (int i=0; i<numRow; i++)    tempVec[i] = randNumGenerator.GetUniform() - 0.5;  normalize_vec_1(tempVec, numRow);  tempNorm = perturbationMagnitude * randNumGenerator.GetUniform();  for (int j = 0; j < numRow; j++)    tempVec[j] *= tempNorm;  for (int i = 0; i < numRow; i++)    center[i] = 0;  for (int i = 0; i < numCol; i++)    myCCS->ith_add_CV(i, center);  for (int i = 0; i < numColCluster; i++){    for(int j = 0; j < numRow; j++)      qXyhat[i][j] = center[j] * fabs(tempVec[j]+1);    normalize_vec_1(qXyhat[i], numRow);  }  for (int i = 0; i < numCol; i++)    colCL[i] = 0;  for (int i = 0; i < numColCluster; i++)    colCS[i] = 1;            // just to make sure cluster size is >0  reassignCC();  delete [] tempVec;  delete [] center;}double Itcc::rowDistance(int r, int rc){  return myCRS->Kullback_leibler(qYxhat[rc], r, smoothingType, ROW_DIMENSION);}double Itcc::colDistance(int c, int cc){  return myCCS->Kullback_leibler(qXyhat[cc], c, smoothingType, COL_DIMENSION);}void Itcc::reassignRC(){  int rowClusterChange = 0;  for (int r = 0; r < numRow; r++){

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡中文字幕| 国产精品77777| 国内不卡的二区三区中文字幕| 成人精品视频一区| 欧美日本在线观看| 国产精品国产三级国产aⅴ无密码| 午夜精品久久久久久久久| 丁香婷婷综合色啪| 欧美成人女星排行榜| 亚洲高清三级视频| 日本高清免费不卡视频| 国产精品乱码一区二三区小蝌蚪| 久久国产麻豆精品| 在线播放国产精品二区一二区四区| 中文字幕一区二区在线观看| 国产一区二区三区免费看| 9191久久久久久久久久久| 亚洲蜜臀av乱码久久精品蜜桃| 大陆成人av片| 精品国产一区二区三区四区四| 国产精品网站在线播放| 精品一区二区久久久| 青青草97国产精品免费观看| 久草在线在线精品观看| 欧美色图免费看| 国产精品丝袜在线| 婷婷综合久久一区二区三区| 国产一区二区三区香蕉| 成人ar影院免费观看视频| 日韩午夜三级在线| 亚洲欧美韩国综合色| 成人午夜又粗又硬又大| 欧美大片日本大片免费观看| 亚洲二区在线观看| 99国内精品久久| 久久午夜电影网| 美脚の诱脚舐め脚责91| 欧美日韩高清影院| 一区二区三区免费看视频| 99热国产精品| 日本一区二区视频在线| 久久精品国产在热久久| 在线综合亚洲欧美在线视频| 国产欧美日本一区二区三区| 久草在线在线精品观看| 久久精品人人做| 国产一区二区三区免费在线观看| 精品国产伦一区二区三区免费| 免费精品99久久国产综合精品| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲一区二区三区四区在线| 91污片在线观看| 久久老女人爱爱| 国产自产2019最新不卡| 日韩免费一区二区三区在线播放| 亚洲高清视频的网址| 一区二区成人在线| 91久久精品一区二区三| 亚洲精品欧美专区| 一本大道av伊人久久综合| 自拍偷拍欧美激情| 成人av午夜影院| 亚洲欧洲av一区二区三区久久| 99天天综合性| 亚洲美女免费视频| 91在线无精精品入口| 国产精品灌醉下药二区| 成人手机在线视频| 欧美高清在线视频| 欧美三级欧美一级| 奇米综合一区二区三区精品视频| 日韩免费视频一区| 国产成人激情av| 一区二区三区四区乱视频| 欧美三区在线视频| 经典三级视频一区| 日韩一区中文字幕| 欧美在线高清视频| 日本欧美一区二区| 国产日韩欧美精品电影三级在线| 不卡的av网站| 一区二区三区精密机械公司| 91麻豆精品国产91久久久资源速度| 美女一区二区久久| 国产精品免费视频网站| 欧美日韩一区高清| 国产在线观看免费一区| 亚洲精品videosex极品| 日韩一区二区三区精品视频| 成人99免费视频| 日日欢夜夜爽一区| 国产女同互慰高潮91漫画| 欧美亚洲动漫制服丝袜| 日韩电影免费在线看| 欧美丰满一区二区免费视频| 99久久精品国产一区| 免费观看在线色综合| 国产精品久久久久久福利一牛影视| 欧美另类一区二区三区| 国产99久久久久| 日韩和欧美一区二区三区| 国产精品久久久久久妇女6080| 欧美日韩一卡二卡三卡 | 九一九一国产精品| 久久五月婷婷丁香社区| 在线免费视频一区二区| 成人福利视频在线看| 人人精品人人爱| 一区二区三区成人| 欧美激情中文字幕一区二区| 欧美日本在线播放| 色吊一区二区三区| 国产成a人无v码亚洲福利| 日本亚洲一区二区| 夜夜爽夜夜爽精品视频| 欧美精彩视频一区二区三区| 欧美一区二区三区在线视频| 91传媒视频在线播放| 成人国产亚洲欧美成人综合网| 青青青爽久久午夜综合久久午夜 | 久久免费视频一区| 欧美日韩免费视频| 日本二三区不卡| av亚洲精华国产精华| 国产精品一级黄| 国产综合成人久久大片91| 裸体歌舞表演一区二区| 天天综合天天做天天综合| 一区二区三区小说| 亚洲色图视频免费播放| 国产精品久久久久影院老司| 日韩欧美国产三级| 欧美日韩高清不卡| 色婷婷激情综合| 国产成人免费视频网站高清观看视频 | 粉嫩av一区二区三区| 国产专区综合网| 国产激情一区二区三区四区| 激情图片小说一区| 国内精品自线一区二区三区视频| 精品一区二区免费视频| 国产一区在线看| 国产一区二区成人久久免费影院| 国产在线观看一区二区| 粉嫩久久99精品久久久久久夜| 成人激情黄色小说| 91久久线看在观草草青青| 欧美伊人久久大香线蕉综合69| 欧美系列亚洲系列| 777奇米成人网| 日韩一级成人av| 精品国产一区二区亚洲人成毛片| 久久精品日产第一区二区三区高清版| 久久久久亚洲蜜桃| 国产精品色在线观看| 亚洲欧美国产三级| 视频一区在线播放| 国产真实乱对白精彩久久| 成人综合激情网| 日本二三区不卡| 日韩精品影音先锋| 国产亚洲欧美一区在线观看| 国产精品天美传媒沈樵| 亚洲大型综合色站| 久久99热99| 99视频精品免费视频| 欧美日本视频在线| 久久精品欧美日韩| 亚洲激情男女视频| 免播放器亚洲一区| 老司机免费视频一区二区三区| 国产网站一区二区| 亚洲高清在线视频| 国产乱色国产精品免费视频| 色婷婷国产精品综合在线观看| 欧美一级日韩免费不卡| 国产精品久久久99| 久久精品av麻豆的观看方式| 北条麻妃一区二区三区| 在线播放欧美女士性生活| 成人精品视频.| 4438成人网| 亚洲人一二三区| 国产老女人精品毛片久久| 色久综合一二码| 91精品国产91久久久久久一区二区 | 欧美日韩三级在线| 国产精品久线观看视频| 日本女人一区二区三区| 北条麻妃一区二区三区| 精品少妇一区二区三区在线播放| 日韩一区在线播放| 国产一区二区免费看| 欧美美女bb生活片| 亚洲另类在线制服丝袜| 高清国产一区二区三区| 欧美探花视频资源| 国产亚洲精品免费| 精品中文字幕一区二区| 欧美日本一区二区三区|