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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? coclustering.cc

?? 一種聚類算法,名字是cocluster
?? CC
?? 第 1 頁 / 共 3 頁
字號(hào):
/*  Coclustering.cc    Implementation of the super class of all co-cluster algorithms    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 <algorithm>#include <assert.h>#include <time.h>#include <stdlib.h>#include "Coclustering.h"#include "MatrixVector.h"Coclustering::Coclustering(Matrix *inputCCS, Matrix *inputCRS, commandLineArgument &myCLA){  assert(inputCCS != NULL && inputCRS != NULL);  assert(myCLA.numRowCluster > 0 && myCLA.numRowCluster <= inputCCS->getNumRow());  assert(myCLA.numColCluster > 0 && myCLA.numColCluster <= inputCCS->getNumCol());   isShowingEachCluster = myCLA.showingEachCluster;  isTakingReverse = myCLA.takingReverse;  isHavingVariation = false;  isComputingOneWayObjective = myCLA.computingOneWayObjective;  dumpLevel = myCLA.dumpLevel;  dumpAccessMode = myCLA.dumpAccessMode;  batchUpdateType = myCLA.batchUpdateType;  rowBatchUpdateThreshold = myCLA.rowBatchUpdateThreshold;  colBatchUpdateThreshold = myCLA.colBatchUpdateThreshold;  localSearchType = myCLA.localSearchType;  rowLocalSearchThreshold = myCLA.rowLocalSearchThreshold;  colLocalSearchThreshold = myCLA.colLocalSearchThreshold;  rowLocalSearchLength = myCLA.rowLocalSearchLength;  colLocalSearchLength = myCLA.colLocalSearchLength;  if (rowLocalSearchLength == RESUME_LOCAL_SEARCH)    isAvoidingEmptyRowCluster = true;  else    isAvoidingEmptyRowCluster = false;  if (colLocalSearchLength == RESUME_LOCAL_SEARCH)    isAvoidingEmptyColCluster = true;  else    isAvoidingEmptyColCluster = false;  hasReadRowSeedingFile = false;  hasReadColSeedingFile = false;    numRowCluster = myCLA.numRowCluster;  numColCluster = myCLA.numColCluster;  smoothingType = myCLA.smoothingType;  rowAnnealingFactor = myCLA.rowAnnealingFactor;		// not used...  colAnnealingFactor = myCLA.colAnnealingFactor;		// not used...  rowSmoothingFactor = myCLA.rowSmoothingFactor;		// not used...  colSmoothingFactor = myCLA.colSmoothingFactor;		// not used...  rowSmoothingFactor = myCLA.smoothingFactor;  colSmoothingFactor = myCLA.smoothingFactor;  perturbationMagnitude = myCLA.perturbationMagnitude;  rowSeedingOffsetType = myCLA.rowSeedingOffsetType;  colSeedingOffsetType = myCLA.colSeedingOffsetType;  numRowSeedingSet = myCLA.numRowSeedingSet;  numColSeedingSet = myCLA.numColSeedingSet;  rowSeedingAccessMode = myCLA.rowSeedingAccessMode;  colSeedingAccessMode = myCLA.colSeedingAccessMode;  numRowClass = myCLA.numRowClass;  numColClass = myCLA.numColClass;  rowClassLabel = myCLA.rowClassLabel;  colClassLabel = myCLA.colClassLabel;  rowInitializationMethod = myCLA.rowInitializationMethod;  colInitializationMethod = myCLA.colInitializationMethod;//  rowSeedingFilename = myCLA.rowSeedingFilename;//  colSeedingFilename = myCLA.colSeedingFilename;//  coclusterFilename = myCLA.coclusterFilename;  strcpy(rowSeedingFilename, myCLA.rowSeedingFilename);  strcpy(colSeedingFilename, myCLA.colSeedingFilename);  strcpy(coclusterFilename, myCLA.coclusterFilename);  strcpy(objectiveFilename, myCLA.objectiveFilename);  strcpy(dumpFilename, myCLA.dumpFilename);  strcpy(statisticsFilename, myCLA.statisticsFilename);  coclusterOffsetType = myCLA.coclusterOffsetType;  coclusterLabelType = myCLA.coclusterLabelType;  coclusterAccessMode = myCLA.coclusterAccessMode;  objectiveAccessMode = myCLA.objectiveAccessMode;  statisticsAccessMode = myCLA.statisticsAccessMode;    numRow = inputCCS->getNumRow();  numCol = inputCCS->getNumCol();  myCCS = inputCCS;  myCRS = inputCRS;  myCRS->setSmoothingFactor(myCLA.smoothingType, myCLA.rowSmoothingFactor);  myCCS->setSmoothingFactor(myCLA.smoothingType, myCLA.colSmoothingFactor);  myCRS->setAnnealingFactor(myCLA.rowAnnealingFactor);  myCCS->setAnnealingFactor(myCLA.colAnnealingFactor);  isSilent = false;		// not used...  isReversed = NULL;  rowV = colV = 0;  numIteration = 0;  numEmptyRowCluster = 0;  numEmptyColCluster = 0;  numSingletonRowCluster = 0;  numSingletonColCluster = 0;  numReversedRow = 0;  isRowMarked = new bool[numRow];  isColMarked = new bool[numCol];  memoryUsed = (numRow + numCol) * sizeof(bool);  Acompressed = new double *[numRowCluster];  for (int i = 0; i < numRowCluster; i++)    Acompressed[i] = new double[numColCluster];  memoryUsed = numRowCluster * numColCluster * sizeof(double);  numRowPermutation = myCLA.numRowPermutation;  numColPermutation = myCLA.numColPermutation;  doRowCLVecInitialization();   doColCLVecInitialization();      rowCL = new int[numRow];  colCL = new int[numCol];  rowCS = new int[numRowCluster];  colCS = new int[numColCluster];  memoryUsed += (numRow + numCol + numRowCluster + numColCluster) * sizeof(int);  if (isComputingOneWayObjective){    twoNormOfEachRow = new double[numRow];    twoNormOfEachCol = new double[numCol];    memoryUsed += (numRow + numCol) * sizeof(double);  }  if (rowSeedingAccessMode != NO_OPEN_MODE && numRowSeedingSet > 1){    if (rowSeedingAccessMode == BOTH_INPUT_MODE || rowSeedingAccessMode == ONE_INPUT_MODE)      rowSeedingFile.open(rowSeedingFilename, ios::in);    else      rowSeedingFile.open(rowSeedingFilename, ios::app);    if (!rowSeedingFile.is_open()){      cout << "  !!! RowSeeding file open error: " << rowSeedingFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  if (colSeedingAccessMode != NO_OPEN_MODE && numColSeedingSet > 1){    if (colSeedingAccessMode == ONE_INPUT_MODE )      colSeedingFile.open(colSeedingFilename, ios::in);    else      colSeedingFile.open(colSeedingFilename, ios::app);    if (!colSeedingFile.is_open()){      cout << "  !!! ColSeeding file open error: " << colSeedingFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  if (coclusterAccessMode != NO_OPEN_MODE){    if (coclusterAccessMode == OUTPUT_MODE)      coclusterFile.open(coclusterFilename, ios::out);    else      coclusterFile.open(coclusterFilename, ios::app);    if (!coclusterFile.is_open()){      cout << "  !!! Cocluster file open error: " << coclusterFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  if (dumpAccessMode != NO_OPEN_MODE){    if (dumpAccessMode == OUTPUT_MODE)      dumpFile.open(dumpFilename, ios::out);    else      dumpFile.open(dumpFilename, ios::app);    if (!dumpFile.is_open()){      cout << "  !!! Dump file open error: " << dumpFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  if (objectiveAccessMode != NO_OPEN_MODE){    if (objectiveAccessMode == OUTPUT_MODE)      objectiveFile.open(objectiveFilename, ios::out);    else      objectiveFile.open(objectiveFilename, ios::app);    if (!objectiveFile.is_open()){      cout << "  !!! Objective file open error: " << objectiveFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  if (statisticsAccessMode != NO_OPEN_MODE){    if (statisticsAccessMode == OUTPUT_MODE)      statisticsFile.open(statisticsFilename, ios::out);    else      statisticsFile.open(statisticsFilename, ios::app);    if (!statisticsFile.is_open()){      cout << "  !!! Statistics file open error: " << statisticsFilename << " !!!" << endl;      exit(EXIT_FAILURE);    }  }  isEmptyRowClusterReported = isEmptyColClusterReported = false ;  randNumGenerator.Set((unsigned)time(NULL));}Coclustering::~Coclustering(){  delete [] isRowMarked;  delete [] isColMarked;  delete [] rowCL;  delete [] colCL;  delete [] rowCS;  delete [] colCS;  for (int i = 0; i < numRowCluster; i++)    delete [] Acompressed[i];  delete [] Acompressed;  if (isComputingOneWayObjective){    delete [] twoNormOfEachRow;    delete [] twoNormOfEachCol;  }  if ((rowSeedingAccessMode == BOTH_INPUT_MODE || rowSeedingAccessMode == ONE_INPUT_MODE) && numRowSeedingSet > 1)    rowSeedingFile.close();   if ((colSeedingAccessMode == ONE_INPUT_MODE) && numColSeedingSet > 1)    colSeedingFile.close();   if (coclusterAccessMode != NO_OPEN_MODE)    coclusterFile.close();   if (dumpAccessMode != NO_OPEN_MODE)    dumpFile.close();   if (objectiveAccessMode != NO_OPEN_MODE)    objectiveFile.close();  if (statisticsAccessMode != NO_OPEN_MODE)    statisticsFile.close(); }int Coclustering::getEmptyRC(){  return numEmptyRowCluster;}int Coclustering::getEmptyCC(){  return numEmptyColCluster;}int Coclustering::getSingletonRC(){  return numSingletonRowCluster;}int Coclustering::getSingletonCC(){  return numSingletonColCluster;}double Coclustering::getObjValue(){  return objValue;}double Coclustering::getObjValue4RowCluster(){  return objValue4RowCluster;}double Coclustering:: getObjValue4ColCluster(){  return objValue4ColCluster;}int Coclustering::getNumIteration(){  return numIteration;}int Coclustering::getNumReversedRow(){  return numReversedRow;}void Coclustering::chooseInitializationMethod(){  int tempRowClass, tempColClass;  if (((rowInitializationMethod == SEEDING_INIT) && (colInitializationMethod == SEEDING_INIT))       && (strcmp(rowSeedingFilename, colSeedingFilename) == 0)){    if (!hasReadRowSeedingFile && (numRowSeedingSet == 1) && (numColSeedingSet == 1)){      readLabel(rowSeedingFilename, numRow, numCol, rowCL, colCL, tempRowClass, tempColClass, rowSeedingOffsetType);         hasReadRowSeedingFile = true;    }    if ((numRowSeedingSet > 1) && (numColSeedingSet > 1)){      readLabel(rowSeedingFile, numRow, numCol, rowCL, colCL, tempRowClass, tempColClass, rowSeedingOffsetType);    }  } else {    if (numRowCluster == 1 || numRowCluster == numRow){      doRowRandomInitializationModified();    } else {      switch (rowInitializationMethod){        case RANDOM_INIT://          doRowRandomInitialization();          doRowRandomInitializationModified();          break;        case RANDOM_PERTURB_INIT:          doRowRandomPerturbInitialization();          break;        case FARTHEST_INIT:          doRowFarthestInitialization();          break;        case SEEDING_INIT://          if (strcmp(rowSeedingFilename, EMPTY_STRING) != 0 && strcmp(colSeedingFilename, EMPTY_STRING) == 0)          if (strcmp(rowSeedingFilename, EMPTY_STRING) != 0){	    if (!hasReadRowSeedingFile && (numRowSeedingSet == 1)){	      tempRowClass = readLabel(rowSeedingFilename, numRow, rowCL, rowSeedingOffsetType);                      hasReadRowSeedingFile = true;            }	    if (numRowSeedingSet > 1){	      readLabel(rowSeedingFile, numRow, rowCL, tempRowClass, rowSeedingOffsetType);             }	  }	  break;	case PERMUTATION_INIT:	  doRowPermutationInitialization();	  break;             default:          doRowRandomInitializationModified();          break;      }    }    if ((numColCluster == 1) || (numColCluster == numCol)){      doColRandomInitializationModified();    } else {      switch (colInitializationMethod){        case RANDOM_INIT://          doColRandomInitialization();          doColRandomInitializationModified();          break;        case RANDOM_PERTURB_INIT:          doColRandomPerturbInitialization();          break;        case FARTHEST_INIT:          doColFarthestInitialization();          break;        case SEEDING_INIT://          if (strcmp(colSeedingFilename, EMPTY_STRING) != 0 && strcmp(rowSeedingFilename, EMPTY_STRING) == 0)          if (strcmp(colSeedingFilename, EMPTY_STRING) != 0){	    if (!hasReadColSeedingFile && (numColSeedingSet == 1)){	      tempColClass = readLabel(colSeedingFilename, numCol, colCL, colSeedingOffsetType);              hasReadColSeedingFile = true;            }	    if (numColSeedingSet > 1){	      readLabel(colSeedingFile, numCol, colCL, tempColClass, colSeedingOffsetType);	    }          }	  break;	case PERMUTATION_INIT:	  doColPermutationInitialization();	  break;        default:          doColRandomInitializationModified();          break;      }    }  }}void Coclustering::doRowRandomInitialization(){  bool *mark = new bool[numRowCluster], isEnough = true;  for (int i = 0; i < numRowCluster; i++)    mark[i] = false;  for (int i = 0; i < numRow; i++){    rowCL[i] = randNumGenerator.GetUniformInt(numRowCluster);    mark[rowCL[i]] = true;  }  for (int i = 0; i < numRowCluster; i++)    if (mark[i] == false){      isEnough = false;      break;    }  if (isEnough == false)    for (int j = 0; j < numRowCluster; j++)      rowCL[j] = j;  delete [] mark;}void Coclustering::doColRandomInitialization(){  bool *mark = new bool[numColCluster], isEnough = true;  for (int i = 0; i < numColCluster; i++)    mark[i] = false;  for (int i = 0; i < numCol; i++){    colCL[i] = randNumGenerator.GetUniformInt(numColCluster);    mark[colCL[i]] = true;  }  for (int i = 0; i < numColCluster; i++)    if (mark[i] == false){      isEnough = false;      break;    }  if (isEnough == false)    for (int j = 0; j < numColCluster; j++)      colCL[j] = j;  delete [] mark;}void Coclustering::doRowRandomInitializationModified(){  if (numRowCluster == 1)    for (int i = 0; i < numRow; i++)      rowCL[i] = 0;  else if (numRowCluster == numRow)    doRowRandomInitializationDirect();  else {    for (int i = 0; i < numRow; i++)      rowCL[i] = i % numRowCluster;    for (int i = 0; i < numRow; i++){      int j = randNumGenerator.GetUniformInt(numRow);      if (i != j){        int temp = rowCL[i];        rowCL[i] = rowCL[j];        rowCL[j] = temp;      }    }  }}void Coclustering::doColRandomInitializationModified(){  if (numColCluster == 1)    for (int i = 0; i < numCol; i++)      colCL[i] = 0;  else if (numColCluster == numCol)    doColRandomInitializationDirect();  else {    for (int i = 0; i < numCol; i++)      colCL[i] = i % numColCluster;    for (int i = 0; i < numCol; i++){      int j = randNumGenerator.GetUniformInt(numCol);      if (i != j){        int temp = colCL[i];        colCL[i] = colCL[j];        colCL[j] = temp;      }    }  }}void Coclustering::doRowRandomInitializationDirect(){  for (int i = 0; i < numRow; i++)    rowCL[i] = i;}void Coclustering::doColRandomInitializationDirect(){

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利一区二区| 欧美日韩中字一区| 国产清纯白嫩初高生在线观看91 | 日本va欧美va精品| 欧美tk丨vk视频| av电影在线观看完整版一区二区| 美女在线一区二区| 久久精品这里都是精品| 国产精品入口麻豆原神| 亚洲激情中文1区| 国产欧美日韩在线观看| 国产精品伦一区| 日韩电影在线一区二区三区| 国产精品久久综合| 亚洲综合激情网| 日韩亚洲欧美在线| 日韩一区二区三区视频在线观看| 亚洲最新在线观看| 成人欧美一区二区三区视频网页| 亚洲免费视频成人| 成人激情文学综合网| 亚洲精品老司机| 91精品国模一区二区三区| 韩国中文字幕2020精品| 国产精品高潮久久久久无| 欧美日韩在线播放一区| 国模套图日韩精品一区二区| 亚洲天堂中文字幕| 日韩免费观看高清完整版| www.日韩大片| 国模少妇一区二区三区| 亚洲国产精品久久不卡毛片| 久久婷婷一区二区三区| 欧美亚一区二区| 成人一区在线观看| 理论片日本一区| 亚洲综合在线五月| 久久久99精品久久| 日韩一区二区免费在线观看| 91视频免费观看| 激情都市一区二区| 亚洲国产视频一区二区| 亚洲国产高清不卡| 欧美成人官网二区| 欧美少妇bbb| 不卡一二三区首页| 国产一区欧美二区| 日本不卡一区二区三区高清视频| 亚洲免费观看在线观看| 久久久精品天堂| 91精品国产综合久久久久久久久久| 91同城在线观看| 成人福利视频在线| 国产成人精品免费看| 久久国产精品99久久人人澡| 成人黄色av网站在线| 免费成人在线观看视频| 亚洲午夜精品17c| 亚洲精品乱码久久久久久日本蜜臀| 久久久久国产精品麻豆ai换脸 | 日韩你懂的在线观看| 欧美亚洲综合网| 在线精品视频小说1| 99久久99久久免费精品蜜臀| 成熟亚洲日本毛茸茸凸凹| 国产一区二区三区综合| 极品美女销魂一区二区三区免费| 日产精品久久久久久久性色| 亚洲成av人影院| 午夜伦欧美伦电影理论片| 亚洲黄色尤物视频| 亚洲在线免费播放| 亚洲影视在线播放| 亚洲国产日韩综合久久精品| 亚洲综合色在线| 亚洲成人动漫在线免费观看| 亚洲成人免费看| 午夜精品久久久久久久久| 丝袜美腿亚洲一区| 开心九九激情九九欧美日韩精美视频电影 | 午夜久久久久久久久久一区二区| 亚洲乱码国产乱码精品精98午夜| ...av二区三区久久精品| 亚洲视频在线观看三级| 亚洲免费大片在线观看| 亚洲成av人片观看| 另类小说欧美激情| 国产成a人无v码亚洲福利| 福利一区二区在线观看| 91视频观看免费| 欧美亚洲动漫精品| 欧美成人国产一区二区| 国产区在线观看成人精品| 日韩理论片网站| 亚洲成av人影院| 国模冰冰炮一区二区| 成人永久看片免费视频天堂| 色又黄又爽网站www久久| 91精品在线一区二区| 三级精品在线观看| 狠狠网亚洲精品| 91在线视频在线| 3atv一区二区三区| 欧美激情一区二区三区不卡| 亚洲精选视频免费看| 丝袜诱惑制服诱惑色一区在线观看| 捆绑调教美女网站视频一区| 国产v综合v亚洲欧| 欧美性感一类影片在线播放| 欧美成va人片在线观看| 自拍偷自拍亚洲精品播放| 午夜a成v人精品| 成人免费毛片高清视频| 3atv一区二区三区| 亚洲欧美在线观看| 免费观看91视频大全| 色综合久久久久综合体桃花网| 欧美日韩国产首页| 国产精品卡一卡二| 久久成人羞羞网站| 在线日韩一区二区| 国产精品午夜在线| 日本成人在线不卡视频| 色综合久久六月婷婷中文字幕| 精品美女一区二区| 亚洲一二三四区| 国产高清成人在线| 在线播放亚洲一区| 中文字幕一区二区在线观看| 另类人妖一区二区av| 在线国产亚洲欧美| 国产精品理论片在线观看| 毛片不卡一区二区| 欧美性高清videossexo| 国产精品乱码一区二区三区软件| 免费精品视频最新在线| 色综合色狠狠综合色| 国产亚洲一区二区在线观看| 日日夜夜免费精品视频| 在线视频亚洲一区| 中文字幕日韩av资源站| 激情另类小说区图片区视频区| 欧美伊人久久大香线蕉综合69 | 国产精品第一页第二页第三页| 免费看精品久久片| 欧美日韩在线观看一区二区| 1024国产精品| 成人看片黄a免费看在线| 精品少妇一区二区三区日产乱码 | 亚洲蜜桃精久久久久久久| 福利一区福利二区| 国产日韩欧美在线一区| 狠狠狠色丁香婷婷综合久久五月| 91精品国产一区二区三区| 亚洲国产成人91porn| 色一情一乱一乱一91av| 亚洲免费成人av| 日本高清不卡视频| 亚洲人成人一区二区在线观看| 99久久夜色精品国产网站| 精品无人码麻豆乱码1区2区 | 日本韩国欧美一区二区三区| 亚洲欧美另类小说| 91免费视频观看| 亚洲精品大片www| 欧美亚洲综合久久| 亚洲午夜一区二区三区| 欧美色精品在线视频| 午夜精品视频一区| 在线观看91av| 麻豆精品在线播放| 久久久99免费| fc2成人免费人成在线观看播放| 国产精品传媒入口麻豆| av一区二区三区在线| 亚洲免费观看高清完整 | 日韩一区二区三区四区| 精品中文字幕一区二区| 久久久午夜精品理论片中文字幕| 国产老女人精品毛片久久| 久久久久成人黄色影片| 成人福利视频在线| 亚洲综合免费观看高清完整版在线 | 日韩欧美亚洲一区二区| 国模大尺度一区二区三区| 中文字幕av资源一区| 日本韩国欧美三级| 日韩高清一级片| 久久久精品日韩欧美| 日本久久电影网| 日本成人在线看| 中文字幕精品一区二区三区精品| av电影一区二区| 婷婷丁香久久五月婷婷| 久久久久久久久久电影| 日本电影亚洲天堂一区| 久久国产精品色| 亚洲免费大片在线观看| 日韩午夜激情电影| av在线不卡网|