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

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

?? vfem.c

?? 數據挖掘方面的源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
            printf("  c#%d: ", i);            ExampleWrite(VALIndex(is->centroids, i), stdout);         }          fflush(stdout);      }      /* do the Ws */      denominator = 0;      for(i = 0 ; i < VALLength(is->centroids) ; i++) {         centroid = VLIndex(is->centroids, i);         denominator += exp( (-1.0 / (2.0 * gSigmaSquare)) *            pow(ExampleDistance(e, centroid), 2));      }      for(i = 0 ; i < VALLength(is->centroids) ; i++) {         centroid = VLIndex(is->centroids, i);         numerator = exp( (-1.0 / (2.0 * gSigmaSquare)) *            pow(ExampleDistance(e, centroid), 2));//if(i == 4) { printf("Denom: %.3f Numer: %.3f w: %.3f distance: %.3f, true: %d\n",//        denominator, numerator, (numerator / denominator),//           ExampleDistance(e, centroid), ExampleGetClass(e)); }                 is->w[i] += (numerator / denominator);         for(j = 0 ; j < ExampleSpecGetNumAttributes(es) ; j++) {            is->wx[i][j] += (numerator / denominator) *                  ExampleGetContinuousAttributeValue(e, j);         }      }      if(gUseGeoffBound) {         _RecordGeoffBoundInfo(e, is, es);      }      if(gMessageLevel > 3) {         IterationStatsWrite(is, es, stdout);         fflush(stdout);      }      ExampleFree(e);      /* check to see if we should move to the next iteration */      if(!gBatch && gFancyStop && gIteration <= gNumIterationNs) {         /* Test to see if this iteration is done */         if(seen >= gIterationNs[gIteration - 1]) {            done = 1;         }      } else if(!gBatch && seen >= gN) {         done = 1;      } else if(seen > gMaxExamplesPerIteration) {         done = 1;      }      if(!done) {         /* if we didn't get stopped by the termination check get another */         e = ExampleRead(data, es);      }   }      if(gMessageLevel > 1) {      printf("Finished an iteration, n is %ld.\n", is->n);      IterationStatsWrite(is, es, stdout);   }   newIs = IterationStatsNext(is, gNeededDelta, 1.0,                 gAssignErrorScale, es, !gUseGeoffBound, boundData);   VALAppend(gStatsList, newIs);   if(gMessageLevel > 1) {      printf("exit iteration %d seen %d\n", gIteration, gTotalExamplesSeen);      fflush(stdout);   }      if(newIs) {      return _CheckConverganceUpdateStats(is, newIs);   } else {      /* we didn't converge, but this round will be stoped by           the foundBound of 0 */      return 0;   }}static ExamplePtr _PickInitalCentroid(ExampleSpecPtr es, VoidAListPtr centroids, FILE *data) {   float minDistance;   int done  = 0;   ExamplePtr e;   int used;   int i;   minDistance = gR / ((float)gNumClusters * 4);   //minDistance = gR / ((float)gNumClusters * 2);   while(!done) {      e = ExampleRead(data, es);      DebugError(e == 0, "Unable to get enough unique initial centroids");      /* make sure this isn't too close to one in the list */      used = 0;      for(i = 0 ; i < VALLength(centroids) && !used ; i++) {         /* HERE make a parameter? */         if(ExampleDistance(e, VALIndex(centroids, i)) <= minDistance) {            used = 1;         }      }      /* if it's ok then use it */     if(!used) {         done = 1;      } else {         ExampleFree(e);      }   }   return e;}static void _PickInitialCentroids(ExampleSpecPtr es, VoidAListPtr centroids,                                       FILE *data) {   /* pick the first unique 'gNumClusters' points from the dataset to            be centroids  HERE should I add some randomness to this? */   int j;   ExamplePtr e;   char fileNames[255];   FILE *centersIn;   /* burn some examples to make the selection be more random */   for(j = RandomRange(0, 10 * gNumClusters) ; j > 0 ; j--) {      ExampleFree(ExampleRead(data, es));   }   /* if instructed, read in the initial centroids */   if(gLoadCenters) {      sprintf(fileNames, "%s.centers", gFileStem);      centersIn = fopen(fileNames, "r");      if(centersIn) {         if(gMessageLevel > 0) {            printf("Loading inital centers from %s\n", fileNames);         }         e = ExampleRead(centersIn, es);         while(e != 0) {            VALAppend(centroids, e);            e = ExampleRead(centersIn, es);         }         fclose(centersIn);      }   }   while(VALLength(centroids) < gNumClusters) {      VALAppend(centroids, _PickInitalCentroid(es, centroids, data));   }   if(gMessageLevel > 0) {      printf("loss for initial centroids:\n");      _doTests(es, centroids, 0, 0, 0);   }}//static void _OutputGoodCentroids(float bound) {//   int i;//   char fileNames[255];//   FILE *centersOut;//   IterationStatsPtr thisIs, firstIs;//   float totalError, errorThreshold;   /* write out the centroids, if we didn't get a bound only write out the        good ones, where lastBound < (100 / gNumClusers)% of the total         lastBound error *///   thisIs = VALIndex(gStatsList, VALLength(gStatsList) - 1);//   firstIs = VALIndex(gStatsList, 0);//   sprintf(fileNames, "%s.centers", gFileStem);//   centersOut = fopen(fileNames, "w");//   totalError = 0;//   for(i = 0 ; i < VALLength(thisIs->centroids) ; i++) {//      totalError += thisIs->lastBound[i];//   }//   errorThreshold = totalError / (float)gNumClusters;   //IterationStatsWrite(thisIs, stdout);//   if(gMessageLevel > 0) {//      printf("output good centers, thresh: %f\n", errorThreshold);//   }//   for(i = 0 ; i < VALLength(thisIs->centroids) ; i++) {//      /* if we finished with a bound or if the centroid's error was ok *///      if((thisIs->guarenteeIDConverge && thisIs->foundBound &&//                                  bound <= gThisErrorTarget) || //           (thisIs->lastBound[i] <  errorThreshold)) {//         ExampleWrite(VALIndex(firstIs->centroids, i), centersOut);//      }//   }//   fclose(centersOut);//}static void _OutputAllCentroids(float bound) {   int i;   char fileNames[255];   FILE *centersOut;   IterationStatsPtr thisIs;   thisIs = VALIndex(gStatsList, VALLength(gStatsList) - 1);   sprintf(fileNames, "%s.centers", gFileStem);   centersOut = fopen(fileNames, "w");   for(i = 0 ; i < VALLength(thisIs->centroids) ; i++) {      ExampleWrite(VALIndex(thisIs->centroids, i), centersOut);   }   fclose(centersOut);}static void _OutputCentroidMovement(void) {   IterationStatsPtr firstIs, lastIs;   int i;   float total, current, totalSquare;   firstIs = VALIndex(gStatsList, 0);   lastIs = VALIndex(gStatsList, VALLength(gStatsList) - 1);   total = 0;   totalSquare = 0;   for(i = 0 ; i < VALLength(firstIs->centroids) ; i++) {      current = ExampleDistance(VALIndex(firstIs->centroids, i),                             VALIndex(lastIs->centroids, i));      total += current;      totalSquare += pow(current, 2);      printf(" centroid %d moved: %f move^2: %f\n", i, current, pow(current, 2));   }   printf("   total: %f total^2: %f\n", total, totalSquare);}static IterationStatsPtr _FindLastIsWithBound(void) {   int i;   IterationStatsPtr is;   for(i = VALLength(gStatsList) - 1 ; i >= 0 ; i--) {      is = VALIndex(gStatsList, i);      if(is->foundBound) {         return is;      }   }   DebugWarn(1, "_FindLastIsWithBound didn't find a bound\n");   return 0;}static float _FindMedian(float *array, int len) {   float *errorArray = MNewPtr(sizeof(float) * len);   float tmp, median;   int i, j;   /* create the sorted error array which we'll need to find the median */   for(i = 0 ; i < len ; i++) {      errorArray[i] = array[i];   }   for(i = 0 ; i < len ; i++) {      for(j = 0 ; j < len - (i + 1) ; j++) {         if(errorArray[j] > errorArray[j + 1]) {            tmp = errorArray[j + 1];            errorArray[j + 1] = errorArray[j];            errorArray[j] = tmp;         }      }   }   if(len % 2 == 0) {      i = (len / 2) - 1;      median = (errorArray[i] + errorArray[i + 1]) / 2.0;   } else {      i = ((len + 1) / 2) - 1;      median = errorArray[i];   }   MFreePtr(errorArray);   return median;}VoidAListPtr _GetCentroidsForNextRound(FILE *data, ExampleSpecPtr es) {   IterationStatsPtr is = _FindLastIsWithBound();//   IterationStatsPtr is = VALIndex(gStatsList, VALLength(gStatsList) - 1);   float median = _FindMedian(is->lastBound, VALLength(is->centroids));   IterationStatsPtr iIs = VALIndex(gStatsList, 0);   VoidAListPtr newCentroids = VALNew();   int i;   //IterationStatsWrite(is, stdout);   for(i = 0 ; i < VALLength(is->centroids) ; i++) {      if(is->lastBound[i] <= median * 5) {         VALAppend(newCentroids, ExampleClone(VALIndex(iIs->centroids, i)));         //VALAppend(newCentroids, ExampleClone(VALIndex(is->centroids, i)));      } else if(gMessageLevel > 1) {         printf("   Reassigning centroid %d bound %f median %f\n",                        i, is->lastBound[i], median);         fflush(stdout);      }   }   while(VALLength(newCentroids) < VALLength(is->centroids)) {      VALAppend(newCentroids, _PickInitalCentroid(es, newCentroids, data));   }   return newCentroids;}/* this should be static */void CalculateExamplesPerIteration(VoidAListPtr last, float **nextNiOut, int *num);int main(int argc, char *argv[]) {   char fileNames[255];   FILE *exampleIn = 0, *boundDataIn = 0;   ExampleSpecPtr es;   ExamplePtr e;   VoidListPtr centers, newCenters = 0;   float iterationNSum;   long learnTime;   int i;   int breakOut;   int fileDone;   long nIncrement;   float lastDelta, bound;   struct tms starttime;   struct tms endtime;   IterationStatsPtr thisIs, lastIs;   _processArgs(argc, argv);   if(gStdin) {      /* This is a hack because when I pipe clusterdata to vfem           vfem tries to read the spec before clusterdata can write it */      sleep(5);   }   sprintf(fileNames, "%s/%s.names", gSourceDirectory, gFileStem);   es = ExampleSpecRead(fileNames);   DebugError(es == 0, "Unable to open the .names file");      RandomInit();   /* seed for the concept */   if(gSeed != -1) {      RandomSeed(gSeed);   } else {      gSeed = RandomRange(1, 30000);      RandomSeed(gSeed);   }   if(gMessageLevel > 0) {      printf("running with seed %d\n", gSeed);   }   /* initialize some globals */   gStatsList = VALNew();   gD = ExampleSpecGetNumAttributes(es);   if(gR == 0) {      gR = sqrt(gD);   }   if(!gAllowBadConverge) {      /* use a tighter bound so we get a better convergence behavior */      gThisErrorTarget = min(gErrorTarget, gConvergeDelta / 3.0);   } else {      /* HERE this is a hack for now, take it out!! */      gThisErrorTarget = gErrorTarget;      //gThisErrorTarget = min(gErrorTarget, gConvergeDelta);   }   gNeededDelta = 1.0 - pow(1.0 - gDelta, 1.0 /                 (float)(gD * gNumClusters * gEstimatedNumIterations));   gTargetEkd = sqrt(gThisErrorTarget / ((float)gNumClusters * (float)gD));   /* HERE fix this for the new bound */   gN = (gNumClusters / 2.0) * pow(1.0/gTargetEkd, 2) *                           log(2.0/gNeededDelta) * 1.1;   if(gMessageLevel > 1) {      printf("Target Ekd: %.3lf\n", gTargetEkd);   }   if(gStdin) {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产美女精品一区二区三区| 91精品国产一区二区三区蜜臀| 91丨porny丨在线| 欧美精品久久99久久在免费线| 日韩欧美在线影院| 亚洲综合色噜噜狠狠| 国产不卡视频在线播放| 51午夜精品国产| 成人免费视频在线观看| 精品一区二区免费视频| 欧美日韩精品三区| 亚洲色图20p| 国产精品99久久久久| 欧美另类z0zxhd电影| 中文字幕永久在线不卡| 国产激情偷乱视频一区二区三区| 欧美日韩精品三区| 一区二区三区91| 91在线你懂得| 亚洲色欲色欲www| 国产河南妇女毛片精品久久久| 欧美一级高清片| 日韩黄色小视频| 欧美日韩午夜精品| 亚洲第一电影网| 91国模大尺度私拍在线视频| 亚洲视频每日更新| 91免费在线看| 综合亚洲深深色噜噜狠狠网站| 国产很黄免费观看久久| 久久久久久久久99精品| 国产精品一线二线三线| 久久久久久电影| 成人激情图片网| 中文字幕在线不卡一区| 99久久99久久精品国产片果冻 | 韩国女主播成人在线| 91精品国产综合久久久久久| 午夜激情综合网| 欧美福利一区二区| 美女性感视频久久| 久久精品视频免费观看| 成人免费的视频| 综合色天天鬼久久鬼色| 在线视频你懂得一区| 日韩精品乱码av一区二区| 日韩三级视频在线观看| 国产一区二区福利视频| 日韩精品一区在线| 国产成人精品三级| 日韩理论电影院| 欧美日韩一区成人| 激情五月婷婷综合网| 日本一区二区视频在线| 97久久精品人人做人人爽50路| 一区二区三区高清不卡| 884aa四虎影成人精品一区| 精东粉嫩av免费一区二区三区| 国产亚洲欧洲997久久综合| 99久免费精品视频在线观看| 亚洲国产精品久久一线不卡| 日韩欧美综合在线| 99精品久久99久久久久| 午夜精品久久久久影视| 26uuu另类欧美| 色婷婷综合激情| 精品一区二区三区在线播放视频| 国产亚洲人成网站| 欧美日韩三级视频| 成人伦理片在线| 午夜av一区二区| 中文字幕乱码一区二区免费| 欧美区视频在线观看| 国产99久久久精品| 日韩高清不卡一区| 亚洲三级在线播放| 精品欧美一区二区三区精品久久| 成人97人人超碰人人99| 日产国产高清一区二区三区 | 欧美一区二区观看视频| 成人永久免费视频| 美女视频黄频大全不卡视频在线播放 | 亚洲欧美日本在线| 精品少妇一区二区三区在线视频| 97精品电影院| 国产精品一区不卡| 亚洲福利视频一区| 亚洲欧洲精品天堂一级| 亚洲精品一区二区三区四区高清 | 成人丝袜18视频在线观看| 日韩电影在线看| 亚洲男女一区二区三区| 久久精品亚洲麻豆av一区二区| 91精品啪在线观看国产60岁| 欧美伊人久久久久久午夜久久久久| 国产精品一区二区在线播放| 日本成人中文字幕在线视频| 亚洲韩国一区二区三区| 中文字幕一区在线观看| 久久精品亚洲一区二区三区浴池| 欧美一区二区三区免费大片 | 精品第一国产综合精品aⅴ| 欧美日韩久久一区二区| 一本一道综合狠狠老| 本田岬高潮一区二区三区| 国产精品影视在线观看| 韩国三级在线一区| 久久91精品国产91久久小草 | 日韩精品中文字幕在线不卡尤物 | 91网址在线看| 99精品热视频| 91啪九色porn原创视频在线观看| 成人av在线影院| 懂色av一区二区夜夜嗨| 国产精品综合二区| 国产电影一区在线| 国产成人av一区二区三区在线| 国产麻豆日韩欧美久久| 国产一区二区三区黄视频 | 婷婷中文字幕一区三区| 午夜精品福利久久久| 视频一区二区不卡| 久久精品久久99精品久久| 狠狠色丁香久久婷婷综| 国产伦精品一区二区三区视频青涩 | 国产精品1024久久| 成人午夜短视频| 99国产精品视频免费观看| 在线一区二区三区四区五区| 欧洲精品一区二区| 欧美精品777| 精品久久久久久无| 国产日产欧产精品推荐色| 国产精品午夜电影| 亚洲在线中文字幕| 免费观看在线综合色| 国产精品12区| 欧洲亚洲精品在线| 欧美电视剧免费全集观看| 久久先锋影音av鲁色资源网| 国产精品网曝门| 亚洲国产精品久久人人爱| 日本不卡中文字幕| 国产91高潮流白浆在线麻豆| 97se狠狠狠综合亚洲狠狠| 欧美日韩久久一区| 国产色婷婷亚洲99精品小说| 亚洲色图欧洲色图| 日韩av在线免费观看不卡| 国产麻豆成人精品| 色久综合一二码| 日韩一级片网址| 国产精品成人在线观看| 日韩国产成人精品| 99久久精品国产一区二区三区| 欧美人牲a欧美精品| 中文字幕第一区综合| 日韩激情av在线| 99久久国产综合精品麻豆| 日韩视频一区二区三区在线播放 | 污片在线观看一区二区| 国产69精品久久777的优势| 欧美精品v国产精品v日韩精品| 国产欧美视频一区二区| 午夜视频久久久久久| 国产成人av影院| 日韩视频免费直播| 亚洲精品视频在线观看网站| 久久99久久精品欧美| 在线看国产一区二区| 国产精品色在线| 久久99日本精品| 欧美男女性生活在线直播观看| 国产精品三级电影| 国产呦萝稀缺另类资源| 欧美喷潮久久久xxxxx| 国产精品久久久久aaaa樱花| 国产在线精品一区二区不卡了| 欧美日韩视频专区在线播放| 国产精品久99| 国产精品99久久久久久久vr | 综合在线观看色| 粉嫩av一区二区三区粉嫩| 精品国产乱码久久| 午夜av区久久| 欧美色视频一区| 一区二区在线观看视频在线观看| 粗大黑人巨茎大战欧美成人| 日韩欧美综合一区| 日本不卡视频一二三区| 欧美性极品少妇| 亚洲国产精品天堂| 欧美中文字幕一区二区三区亚洲| 国产精品久久夜| www.亚洲精品| 国产精品免费视频观看| 成人国产在线观看| 中文字幕高清一区| 成人av在线播放网址| 国产精品国产三级国产aⅴ无密码|