亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
国产一区 二区 三区一级| 日韩一区二区三区四区| 337p亚洲精品色噜噜| 国产视频不卡一区| 日韩精品免费专区| 波多野结衣一区二区三区| 91精品国产欧美日韩| 亚洲二区在线视频| 波多野结衣中文一区| 精品少妇一区二区三区视频免付费 | 欧美精品丝袜久久久中文字幕| 久久久久久久久久久99999| 亚洲午夜在线电影| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩精品一区国产麻豆| 亚洲午夜三级在线| 91丨porny丨首页| 国产日韩精品一区二区浪潮av| 日日夜夜免费精品视频| 欧美综合一区二区三区| 国产精品免费观看视频| 国产.精品.日韩.另类.中文.在线.播放 | 偷拍一区二区三区四区| 国内外成人在线视频| 欧美老肥妇做.爰bbww| 一区二区三区日韩精品| 国产91露脸合集magnet | 久久精品一区二区| 毛片一区二区三区| 91精品国产综合久久蜜臀| 亚洲国产精品一区二区久久恐怖片 | 国产亚洲美州欧州综合国| 久久99热这里只有精品| 日韩西西人体444www| 日本午夜一本久久久综合| 欧美精品乱人伦久久久久久| 国产精品夜夜爽| 欧美精品一区二区三区在线| 精品夜夜嗨av一区二区三区| 精品久久久久99| 精品一区二区国语对白| 26uuu精品一区二区| 国产乱码精品1区2区3区| 久久久青草青青国产亚洲免观| 国产一区福利在线| 国产欧美1区2区3区| 床上的激情91.| 亚洲日本在线a| 欧美日韩国产美女| 久久99热99| 国产欧美日韩在线| 91香蕉视频黄| 亚洲v日本v欧美v久久精品| 欧美日韩成人高清| 国产一区啦啦啦在线观看| 国产精品高潮久久久久无| 在线看日韩精品电影| 丝袜亚洲另类欧美综合| 久久久不卡影院| 91小视频在线观看| 日本色综合中文字幕| 国产无人区一区二区三区| 欧洲精品中文字幕| 另类人妖一区二区av| 国产蜜臀97一区二区三区| 91国内精品野花午夜精品| 日本欧美韩国一区三区| 国产精品国产三级国产三级人妇 | 天涯成人国产亚洲精品一区av| 日韩精品一区二区在线| 成人综合在线网站| 天天影视网天天综合色在线播放| 久久精品亚洲一区二区三区浴池| 91国产成人在线| 国产在线国偷精品免费看| 亚洲激情自拍视频| 久久影视一区二区| 精品污污网站免费看| 国产成人午夜精品5599 | 最新国产の精品合集bt伙计| 91麻豆精品国产91久久久资源速度| 国产成人精品免费在线| 五月婷婷久久丁香| 亚洲男人天堂av网| 久久日韩精品一区二区五区| 91麻豆免费看| 国产精品1024| 毛片一区二区三区| 亚洲一区精品在线| 亚洲三级免费电影| 欧美国产欧美综合| 久久色中文字幕| 欧美三级资源在线| 99这里都是精品| 国产69精品久久久久777| 毛片基地黄久久久久久天堂| 性做久久久久久久免费看| 亚洲黄色免费网站| 综合久久综合久久| 欧美激情一区二区三区不卡| 日韩女优av电影| 91精品国产综合久久精品app | 国产在线国偷精品产拍免费yy| 亚洲成人精品一区| 亚洲五月六月丁香激情| 一区精品在线播放| 中文字幕亚洲精品在线观看| 国产午夜精品福利| 久久久.com| 亚洲精品在线三区| 久久久蜜桃精品| 国产亚洲欧洲一区高清在线观看| 欧美成人a视频| 欧美videossexotv100| 欧美va亚洲va在线观看蝴蝶网| 欧美一级艳片视频免费观看| 欧美一级免费大片| 91精品国产一区二区三区蜜臀| 91精品国产综合久久久久久久久久| 欧美日韩你懂得| 91精品国产综合久久久久| 日韩欧美亚洲一区二区| 精品成人在线观看| 久久久久青草大香线综合精品| 久久久综合精品| 中文字幕在线观看不卡| 亚洲伦理在线精品| 午夜激情一区二区三区| 日韩中文字幕亚洲一区二区va在线| 亚洲第一电影网| 日本欧美一区二区| 国产超碰在线一区| 99久久久精品免费观看国产蜜| 色综合中文字幕国产| 欧美在线999| 欧美一区二区三区人| 久久蜜桃一区二区| 亚洲欧美日韩一区二区三区在线观看| 樱桃国产成人精品视频| 日韩精品久久理论片| 国产河南妇女毛片精品久久久| 成人性生交大片免费看中文网站| av资源站一区| 欧美日韩一区三区四区| 精品福利av导航| 亚洲另类中文字| 美国欧美日韩国产在线播放| www.日韩av| 欧美日韩国产片| 国产日韩欧美a| 亚洲国产色一区| 国产精品1区2区3区在线观看| 波多野结衣亚洲| 91精品国产免费久久综合| 亚洲国产精品黑人久久久| 亚洲成在线观看| 国产精品资源网站| 欧美色中文字幕| 久久精品欧美一区二区三区麻豆| 亚洲一区二区影院| 国产福利不卡视频| 欧美一区二区三区成人| 国产精品国产三级国产aⅴ入口| 日韩精品欧美成人高清一区二区| 成人免费视频国产在线观看| 911国产精品| 亚洲免费观看高清完整版在线观看熊 | 一区二区三区在线免费视频| 黑人巨大精品欧美一区| 欧美自拍偷拍一区| 国产精品热久久久久夜色精品三区| 日韩不卡免费视频| 91国产成人在线| 中国色在线观看另类| 精品一区二区三区免费播放| 欧美手机在线视频| 亚洲乱码中文字幕| 播五月开心婷婷综合| 久久婷婷成人综合色| 奇米综合一区二区三区精品视频| 91视视频在线观看入口直接观看www| 精品国内二区三区| 日韩av一级电影| 欧美无砖专区一中文字| 亚洲精品国产第一综合99久久| 国产成人综合精品三级| 精品国产91九色蝌蚪| 日韩高清一区二区| 欧美精品一卡二卡| 亚洲高清视频的网址| 欧洲另类一二三四区| 亚洲免费av高清| 色婷婷久久99综合精品jk白丝| 国产精品免费视频一区| 成人一区在线看| 国产精品美女久久久久久久久 | 美女脱光内衣内裤视频久久网站| 欧美日韩免费不卡视频一区二区三区| 一区二区三区欧美日| 91美女福利视频|