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

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

?? kmeans.c

?? k means algorithms for clustering purpose
?? C
字號:
/**
 *
 *	Data Mining 4TF3
 *	k-means implementation
 *	George A. Papayiannis
 *
 *	Inputs: <infile> <#observations> <#clusters>
 *	Output: To screen the clusters
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <time.h>

/**
 *	Structure used to hold the points in the dataset
 *	x,y are the 2D values
 *	c is the cluster the point is currently part of
 *	d is the ditance to the nearest cluster
 */

typedef struct values {
	int x, y;
	int c;
	int d;
} point;

/**
 *	Function definitions
 */

int distance(point a, point b);

/**
 *	Main function
 */

int main(int argc, char *argv[]) {
	// check to ensure proper number of inputs provided
	if(argc < 3) {
		printf("USAGE: kmeans <infile> <#observations> <#clusters>\n");
		return -1;
	}
	//
	int num_points = atoi(argv[2]);
	int lcount = 0;
	int i, j, rand_x, rand_y, dist, done;
	int max_x = 0; 
	int max_y = 0;
	int num_clusters = atoi(argv[3]);
	//
	FILE *infile;
	point dataset[num_points];
	point centers[num_clusters];
	point old_centers[num_clusters];
	//
    char *str1;
	char line[100];
	//
	printf("\n---------------------------------------------\n");
	printf("k-means: processing input\n");
	printf("---------------------------------------------\n");
	printf("\nk-means: number of clusters %i\n",num_clusters);
	printf("k-means: number of points %i\n\n",num_points);
	//
	// initialize the dataset to -1
	//
	for (i=0; i<num_points; i++) {
		point value;
		value.x = -1;
		value.y = -1;
		value.c = -1;
		value.d = RAND_MAX;
		dataset[i] = value;
	}
	//	
	// open the file - if NULL is returned there was an error
	//
	if((infile = fopen(argv[1], "r")) == NULL) {
		printf("k-means: error opening file\n");
		exit(1);
	}
	//
	// read the file - set the dataset with the actual values
	//
	while( fgets(line, sizeof(line), infile) != NULL ) {
		point temp;
		temp = dataset[lcount];
		//
        str1 = strtok(line, " ");
		temp.x = atoi(str1);
		//	
		str1 = strtok(NULL, " ");
		temp.y = atoi(str1);
		//
		// find the maximums
		if (temp.x > max_x) {
			max_x = temp.x;
		}
		if (temp.y > max_y)	{
			max_y = temp.y;
		}
		//
		dataset[lcount] = temp;
		lcount++;
		printf("k-means: line %d - %i %i\n", lcount, temp.x, temp.y);	
	}
	// close the handle on the infile
	fclose(infile);
	//
	// seed the random generator with the time
	//
	srand(time(0));
	printf("\n---------------------------------------------\n");
	printf("k-means: random centers found\n");
	printf("---------------------------------------------\n\n");
	//
	// randomly create the centers
	//
	for (i=0; i<num_clusters; i++ ) {
		point center;
		center.x = rand_x = (double)(rand() / (double)RAND_MAX) * max_x;
		center.y = rand_y = (double)(rand() / (double)RAND_MAX) * max_y;
		center.c = i;
		centers[i] = center;
		printf("k-means: center %i (%i,%i)\n",center.c,center.x,center.y);
	}
	//
	// cluster the dataset - loop until done
	//
	printf("\n---------------------------------------------\n");
	printf("k-means: iterating till centers don't change..\n");
	printf("---------------------------------------------\n\n");

	int iteration = 0;
	while(1) {
		// cluster the data based on the centers[]

		printf("k-means: iteration %i\n", iteration);
		for (i=0; i<num_clusters; i++ ) {
			for (j=0; j<num_points; j++ ) {
				point rt;
				rt = dataset[j];
				dist = distance(centers[i],rt);
				if (dist < rt.d) {
					rt.d = dist;
					rt.c = i;
					dataset[j] = rt;
				}
			}				
		}
		//
		// compute the new center for each cluster
		//
		int new_x;
		int new_y;
		int count;
		for (i=0; i<num_clusters; i++ ) {
			new_x = 0;
			new_y = 0;
			count = 0;
			for (j=0; j<num_points; j++ ) {
				point rt;
				rt = dataset[j];
				if (rt.c == i) {
					new_x = new_x + rt.x;
					new_y = new_y + rt.y;
					count++;
				}
			}
			point center;
			center = centers[i];
			old_centers[i] = center;
			center.x = new_x/count;
			center.y = new_y/count;
			centers[i] = center;
		}
		//
		// check to see if the centers are the same
		// all centers must be the same as the previous
		// for us to exit
		//
		done = 0;
		for (i=0; i<num_clusters; i++ ) {
			point curr_cent;
			point old_cent;
			curr_cent = centers[i];
			old_cent = old_centers[i];
			if ((curr_cent.x == old_cent.x) && (curr_cent.y == old_cent.y)) {
				//
				//
			} else {
				done = 1;
			}
		}

		if (done == 0){
			break;
		}
		iteration++;
	}
	//
	// output clusters
	//
	printf("\n---------------------------------------------\n");
	printf("k-means: clustering complete\n");
	printf("---------------------------------------------\n");
	for (i=0; i<num_clusters; i++ ) {
		point center = centers[i];
		printf("\nk-means: cluster %i final center (%i,%i)\n", i,center.x,center.y);
		for (j=0; j<num_points; j++ ) {
			point rt;
			rt = dataset[j];
			// output based on cluster
			if (rt.c == i) {
				printf("k-means: cluster %i point (%i,%i)\n",rt.c,rt.x,rt.y);
			}
		}						
	}
}

/**
 *	Used to calculate the distance between 2 points
 */

int distance(point a, point b) {
	return sqrt(pow((b.x - a.x),2) + pow((b.y - a.y),2));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一二三四| 成人av网站免费观看| 国产欧美精品日韩区二区麻豆天美| 99视频在线观看一区三区| 日本三级韩国三级欧美三级| 欧美激情中文字幕| 欧美肥妇bbw| jiyouzz国产精品久久| 日韩av中文字幕一区二区| 国产精品每日更新| 精品sm在线观看| 欧美精品 日韩| 日本高清免费不卡视频| 国产91精品免费| 久久黄色级2电影| 亚洲国产精品麻豆| 中文字幕欧美一区| 久久久久久一二三区| 91精品国产一区二区三区 | 精彩视频一区二区三区| 国产精品久久久久久久久晋中| 久久综合久久综合久久| 九一九一国产精品| 亚洲成人777| 亚洲视频1区2区| 久久久噜噜噜久噜久久综合| 欧美一区二区三区四区在线观看 | wwwwxxxxx欧美| 制服丝袜在线91| 欧美性一区二区| 色94色欧美sute亚洲线路一ni| 丁香啪啪综合成人亚洲小说 | 亚洲国产电影在线观看| 精品国产一二三| 欧美videos大乳护士334| 欧美三级一区二区| 在线观看中文字幕不卡| 91久久精品一区二区三| 一本在线高清不卡dvd| kk眼镜猥琐国模调教系列一区二区| 国产精品综合久久| 国产精品资源在线看| 国模冰冰炮一区二区| 精品一区二区免费视频| 国产综合一区二区| 国产麻豆成人传媒免费观看| 久久97超碰国产精品超碰| 久久99日本精品| 国内成人免费视频| 国产精品一级二级三级| 国产成人免费视频| 成人午夜视频免费看| 国产a精品视频| 不卡一二三区首页| 91视视频在线观看入口直接观看www | 欧美国产激情二区三区| 国产精品久久毛片| 亚洲蜜臀av乱码久久精品| 亚洲一区二区在线免费观看视频| 曰韩精品一区二区| 婷婷六月综合亚洲| 麻豆91精品91久久久的内涵| 国产一区二区在线免费观看| 国产不卡视频一区| 色婷婷国产精品| 欧美久久久久久久久久| 2024国产精品| 国产精品久久久久久久久晋中| 一级日本不卡的影视| 亚洲电影视频在线| 久久66热re国产| av电影在线观看一区| 色综合天天综合在线视频| 欧美伦理视频网站| 欧美成人综合网站| 日韩一区在线看| 婷婷综合另类小说色区| 国产在线播放一区二区三区| 91在线视频在线| 欧美高清性hdvideosex| 久久久午夜精品理论片中文字幕| 中文字幕中文字幕一区二区| 婷婷久久综合九色综合绿巨人| 九九在线精品视频| 色婷婷亚洲综合| 欧美成va人片在线观看| 亚洲欧美一区二区三区极速播放 | 亚洲 欧美综合在线网络| 激情深爱一区二区| 91视频国产观看| 日韩一区二区免费电影| 中文字幕综合网| 精彩视频一区二区| 欧美中文字幕一区| 国产目拍亚洲精品99久久精品| 亚洲高清免费视频| 国产v日产∨综合v精品视频| 91.xcao| 亚洲免费伊人电影| 国产老妇另类xxxxx| 678五月天丁香亚洲综合网| 国产精品网站在线观看| 免费美女久久99| 成人av电影在线| 欧美成人一区二区三区片免费 | 午夜精品久久久久久久久| 国产不卡在线视频| 欧美一区二区三区色| 亚洲最色的网站| 成人美女视频在线观看| 日韩欧美一级精品久久| 午夜精品一区二区三区免费视频| 不卡欧美aaaaa| 久久久99精品久久| 免费人成在线不卡| 欧美专区亚洲专区| 日韩毛片一二三区| 成人激情图片网| 久久奇米777| 精品影院一区二区久久久| 在线播放欧美女士性生活| 亚洲一区二区三区爽爽爽爽爽 | 中文字幕亚洲精品在线观看| 另类小说一区二区三区| 欧美一级日韩一级| 男男视频亚洲欧美| 日韩欧美一级片| 成人福利视频网站| 中文字幕亚洲一区二区av在线| 风间由美性色一区二区三区| 欧美激情一区三区| 91福利国产成人精品照片| 亚洲欧美日韩在线| 日韩一本二本av| 成人综合婷婷国产精品久久| 国产精品久久久久久久久久免费看| 国产精品1区2区3区在线观看| 国产无人区一区二区三区| 成人av电影在线播放| 亚洲一区二区精品久久av| 精品久久99ma| 色久优优欧美色久优优| 九色综合狠狠综合久久| 国产精品乱人伦| 欧美一区二区三区四区五区| 国产乱子伦一区二区三区国色天香| 亚洲午夜三级在线| 久久精品夜色噜噜亚洲a∨| 欧美va亚洲va| 一本到三区不卡视频| 色综合色综合色综合色综合色综合| 国产美女久久久久| 久久久国产午夜精品| 波多野结衣精品在线| 亚洲靠逼com| 久久久久久电影| 精品国产露脸精彩对白| 一区二区三区在线观看动漫| 久久国产福利国产秒拍| 中文字幕不卡三区| 北岛玲一区二区三区四区| 亚洲视频一区二区免费在线观看| 91蜜桃免费观看视频| 亚洲午夜视频在线| 精品欧美久久久| 懂色一区二区三区免费观看| 樱花影视一区二区| 日韩一本二本av| 成人av网址在线| 天堂久久一区二区三区| 日韩一区二区三区免费看| 日本中文字幕不卡| 性做久久久久久| 青椒成人免费视频| 麻豆91免费观看| 国产成人aaa| aaa国产一区| 色呦呦网站一区| 欧美一区二区三区性视频| 91精品国产福利| 欧美精品久久99| 国产午夜精品一区二区三区嫩草 | 欧美日韩综合不卡| 高清不卡一二三区| 99国产精品99久久久久久| 91久久精品日日躁夜夜躁欧美| 99r国产精品| 欧美肥妇free| 国产亚洲一区二区三区四区| 亚洲国产精品成人久久综合一区| 欧美mv日韩mv亚洲| 中文字幕在线不卡国产视频| 亚洲欧美日韩国产综合在线| 日韩高清不卡一区| 国模冰冰炮一区二区| 精品国产青草久久久久福利| ●精品国产综合乱码久久久久| 成人免费视频一区| 国产精品无遮挡| 亚洲一区二区三区影院|