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

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

?? svm_common.cpp

?? 目前的svm(支持向量機(jī))分類算法開(kāi)源實(shí)現(xiàn)如svmlight和svmlib都沒(méi)有界面
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
#include "stdafx.h"
#include "svm.h"
#include "svm_common.h"
#include "math.h"


#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif




static char temstr[200];
/* classifies example */
double classify_example(MODEL *model,DOC *ex)
{
	register long i;
	register double dist;
	
	dist=0;
	for(i=1;i<model->sv_num;i++) {  
		dist+=kernel(&model->kernel_parm,model->supvec[i],ex)*model->alpha[i];
	}
	return(dist-model->b);
}

/*    classifies example for linear kernel 
important: the model must have the linear weight vector computed 
important: the feature numbers in the example to classify must 
not be larger than the weight vector!               */
double classify_example_linear(MODEL *model,DOC *ex)
{
	return((double)(sprod_ns(model->lin_weights,ex->words)-model->b));
}

/* calculate the kernel function */
CFLOAT kernel(KERNEL_PARM *kernel_parm,DOC *a,DOC*b)
{
	com_result.kernel_cache_statistic++;
	switch(kernel_parm->kernel_type)
	{
    case 0: /* linear */ 
		return((CFLOAT)sprod_ss(a->words,b->words)); 
    case 1: /* polynomial */
		return((CFLOAT)pow(kernel_parm->coef_lin*sprod_ss(a->words,b->words)+kernel_parm->coef_const,(double)kernel_parm->poly_degree)); 
    case 2: /* radial basis function */
		return((CFLOAT)exp(-kernel_parm->rbf_gamma*(a->twonorm_sq-2*sprod_ss(a->words,b->words)+b->twonorm_sq)));
    case 3: /* sigmoid neural net */
		return((CFLOAT)tanh(kernel_parm->coef_lin*sprod_ss(a->words,b->words)+kernel_parm->coef_const)); 
    case 4: /* custom-kernel supplied in file kernel.h*/
		return((CFLOAT)custom_kernel(kernel_parm,a,b)); 
		//chen .test sum of 
		//return((CFLOAT)pow(kernel_parm->coef_lin*sprod_ss(a->words,b->words)+kernel_parm->coef_const,(double)kernel_parm->poly_degree)+exp(-kernel_parm->rbf_gamma*(a->twonorm_sq-2*sprod_ss(a->words,b->words)+b->twonorm_sq))); 
    default: sprintf(temstr,"Error: Unknown kernel function");
		printm(temstr);
		return (-1);
	}
}

/* compute the inner product of two sparse vectors */
double sprod_ss(SVM_WORD *a,SVM_WORD*b)
{
    register FVAL sum=0;
    register SVM_WORD *ai,*bj;
    ai=a;
    bj=b;
    while (ai->wnum && bj->wnum) {
		if(ai->wnum > bj->wnum) {
			bj++;
		}
		else if (ai->wnum < bj->wnum) {
			ai++;
		}
		else {
			sum+=ai->weight * bj->weight;
			ai++;
			bj++;
		}
    }
    return((double)sum);
}



/* compute the inner product of two sparse vectors,b right shit 1 bit */
double sprod_ss1(SVM_WORD *a,SVM_WORD*b,int offset)
{
    register FVAL sum=0;
    register SVM_WORD *ai,*bj;
    ai=a;
    bj=b;
    while (ai->wnum && bj->wnum) {
		if(ai->wnum > bj->wnum+offset) {
			bj++;
		}
		else if (ai->wnum < bj->wnum+offset) {
			ai++;
		}
		else 
		{
			int np=(ai->wnum-1)%16+1+offset;
			if (np>0 && np<17) 
				sum+=ai->weight * bj->weight;
			ai++;
			bj++;
		}
    }
    return((double)sum);
}

double sprod_ss2(SVM_WORD *a,SVM_WORD*b,int offset)
{
    register FVAL sum=0;
    register SVM_WORD *ai,*bj;
    ai=a;
    bj=b;
    while (ai->wnum && bj->wnum) {
		if(ai->wnum > bj->wnum+offset) {
			bj++;
		}
		else if (ai->wnum < bj->wnum+offset) {
			ai++;
		}
		else 
		{
			int np=ai->wnum+offset;
			if (np>0 && np<257) 
				sum+=ai->weight * bj->weight;
			ai++;
			bj++;
		}
    }
    return((double)sum);
}

/* compute length of weight vector */
double model_length_s(MODEL *model,KERNEL_PARM *kernel_parm)
{
	register long i,j;
	register double sum=0,alphai;
	register DOC *supveci;
	
	for(i=1;i<model->sv_num;i++) {  
		alphai=model->alpha[i];
		supveci=model->supvec[i];
		for(j=1;j<model->sv_num;j++) {
			sum+=alphai*model->alpha[j]
				*kernel(kernel_parm,supveci,model->supvec[j]);
		}
	}
	return(sqrt(sum));
}

void clear_vector_n(double *vec,long n)
{
	register long i;
	for(i=0;i<=n;i++) vec[i]=0;
}

void add_vector_ns(double *vec_n,SVM_WORD *vec_s,double faktor)
{
	register SVM_WORD *ai;
	ai=vec_s;
	while (ai->wnum) {
		vec_n[ai->wnum]+=(faktor*ai->weight);
		ai++;
	}
}

double sprod_ns(double *vec_n,SVM_WORD *vec_s)
{
	register double sum=0;
	register SVM_WORD *ai;
	ai=vec_s;
	while (ai->wnum) {
		sum+=(vec_n[ai->wnum]*ai->weight);
		ai++;
	}
	return(sum);
}

/* compute weight vector in linear case and add to model*/
void add_weight_vector_to_linear_model(MODEL *model)
{
	long i;
	
	model->lin_weights=(double *)my_malloc(sizeof(double)*(model->totwords+1));
	clear_vector_n(model->lin_weights,model->totwords);
	for(i=1;i<model->sv_num;i++) {
		add_vector_ns(model->lin_weights,(model->supvec[i])->words,
			model->alpha[i]);
	}
}

int read_model(char *modelfile,MODEL *model,long max_words,long ll)
{
	FILE *modelfl;
	long j,i;
	char *line;
	SVM_WORD *words;
	register long wpos;
	long wnum,pos;
	double weight;
	char version_buffer[100];

	if (com_pro.show_action)
	{
	
		sprintf(temstr,"Reading model..."); 
		printm(temstr); 
	}
	
	words = (SVM_WORD *)my_malloc(sizeof(SVM_WORD)*(max_words+10));
	line = (char *)my_malloc(sizeof(char)*ll);
	
	if ((modelfl = fopen (modelfile, "r")) == NULL)
	{
		printe (modelfile);  
		return -1;
	}
	
	fscanf(modelfl,"SVM-light Version %s\n",version_buffer);
	
	if(strcmp(version_buffer,VERSION)) 
	{
		printe ("Version of model-file does not match version of svm_classify!"); 
		return -1;
	}

	
	fscanf(modelfl,"%ld # kernel type\n",&(model->kernel_parm.kernel_type));
	fscanf(modelfl,"%ld # kernel parameter -d \n",&(model->kernel_parm.poly_degree));
	fscanf(modelfl,"%lf # kernel parameter -g \n",&(model->kernel_parm.rbf_gamma));
	fscanf(modelfl,"%lf # kernel parameter -s \n",&(model->kernel_parm.coef_lin));
	fscanf(modelfl,"%lf # kernel parameter -r \n",&(model->kernel_parm.coef_const));
	fscanf(modelfl,"%s # kernel parameter -u \n",&(model->kernel_parm.custom));
	fscanf(modelfl,"%ld # highest feature index \n",&(model->totwords));
	fscanf(modelfl,"%ld # number of training documents \n",&(model->totdoc));
	fscanf(modelfl,"%ld # number of support vectors plus 1 \n",&(model->sv_num));
	fscanf(modelfl,"%lf # threshold b \n",&(model->b));
	
	for(i=1;i<model->sv_num;i++) 
	{
		fgets(line,(int)ll,modelfl);
		pos=0;
		wpos=0;
		sscanf(line,"%lf",&model->alpha[i]);
		while(line[++pos]>' ');
		while((sscanf(line+pos,"%ld:%lf",&wnum,&weight) != EOF) && (wpos<max_words)) 
		{
			while(line[++pos]>' ');
			words[wpos].wnum=wnum;
			words[wpos].weight=weight; 
			wpos++;
		} 
		model->supvec[i] = (DOC *)my_malloc(sizeof(DOC));
		(model->supvec[i])->words = (SVM_WORD *)my_malloc(sizeof(SVM_WORD)*(wpos+1));
		for(j=0;j<wpos;j++)
		{
			(model->supvec[i])->words[j]=words[j]; 
		}
		((model->supvec[i])->words[wpos]).wnum=0;
		(model->supvec[i])->twonorm_sq = sprod_ss((model->supvec[i])->words,(model->supvec[i])->words);
		(model->supvec[i])->docnum = -1;
	}
	fclose(modelfl);
	free(line);
	free(words);
	if (com_pro.show_readfile)
	{
		sprintf(temstr, "OK. (%d support vectors read)",(int)(model->sv_num-1));
		printm(temstr);
	}
}
/*read the data from text documents*/
int read_documents(char *docfile,
					DOC  *docs,
					long *label,
					long max_words_doc,
					long ll,
					long *totwords,
					long *totdoc)
{
	char *line;
	DOC doc;
	long dnum=0,wpos,i,dpos=0,dneg=0,dunlab=0;
	long doc_label;
	FILE *docfl;

	line = (char *)my_malloc(sizeof(char)*ll);
	if ((docfl = fopen (docfile, "r")) == NULL)
	{ 
		printe (docfile);  
		return -1;
	}
	
	doc.words = (SVM_WORD *)my_malloc(sizeof(SVM_WORD)*(max_words_doc+10));
	if (com_pro.show_readfile)
	{
		sprintf(temstr,"Reading examples into memory..."); 
		printm(temstr);
	}
	
	dnum=0;
	(*totwords)=0;
	while((!feof(docfl)) && fgets(line,(int)ll,docfl)) {
		if(line[0] == '#') continue;  /* line contains comments */
		if(!parse_document(line,&doc,&doc_label,&wpos,max_words_doc)) 
		{
			sprintf(temstr,"Parsing error in line %ld!",dnum);
			printm(temstr);
		}
		label[dnum]=doc_label;
		if(doc_label > 0) dpos++;
		if (doc_label < 0) dneg++;
		if (doc_label == 0) dunlab++;
		if((wpos>1) && ((doc.words[wpos-2]).wnum>(*totwords))) 
			(*totwords)=(doc.words[wpos-2]).wnum;
		docs[dnum].words = (SVM_WORD *)my_malloc(sizeof(SVM_WORD)*wpos);
		docs[dnum].docnum=dnum;
		for(i=0;i<wpos;i++) 
			docs[dnum].words[i]=doc.words[i];
		docs[dnum].twonorm_sq=doc.twonorm_sq;
		dnum++;  
		if((dnum % 100) == 0&&com_pro.show_readfile) 
		{
			sprintf(temstr,"read %ld..",dnum); 
			printm(temstr);
		}
	} 
	
	fclose(docfl);
	free(line);
	free(doc.words);
	if (com_pro.show_action)
	{
		sprintf(temstr, "OK. (%ld examples read)", dnum);
		printm(temstr);
		sprintf(temstr,"%ld positive, %ld negative, and %ld unlabeled examples.",dpos,dneg,dunlab); 
		printm(temstr);
	}
	(*totdoc)=dnum;
}
/*Parse one  line of data file */
int parse_document(char *line,DOC *doc,long *label,long*numwords,long max_words_doc)

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新热久久免费视频| 成人18视频日本| 亚洲成av人片在线观看| 国产精品不卡一区二区三区| 欧美一区二区三区爱爱| 欧美日韩精品一区二区三区四区 | 国内精品在线播放| 日韩影视精彩在线| 日韩激情在线观看| 蜜臀a∨国产成人精品| 日韩激情视频在线观看| 日韩有码一区二区三区| 久久综合综合久久综合| 麻豆精品久久精品色综合| 美腿丝袜亚洲色图| 精品一区二区综合| 成人黄色小视频| 91视频在线观看| 欧美日韩精品欧美日韩精品一综合| 欧美午夜电影网| 欧美一区二区三区精品| 欧美精品一区二区三区很污很色的| www国产成人| 亚洲色图19p| 日韩不卡一二三区| 国产精品中文字幕欧美| 成人精品一区二区三区四区| 色香蕉久久蜜桃| 日韩欧美国产系列| 中文字幕 久热精品 视频在线| 亚洲三级小视频| 精品一区二区三区在线视频| 高清不卡一二三区| 欧美日韩亚洲综合在线| 亚洲精品一区二区三区蜜桃下载 | av亚洲精华国产精华精华| 欧美日韩www| 国产欧美一区二区三区鸳鸯浴| 亚洲欧洲另类国产综合| 日本sm残虐另类| 91视频观看免费| 精品精品国产高清a毛片牛牛| 亚洲欧洲成人精品av97| 三级在线观看一区二区| 成人一级视频在线观看| 欧美一区二区三区在线看| 中文字幕免费不卡| 美国毛片一区二区三区| aa级大片欧美| 久久久蜜桃精品| 日韩精品一级中文字幕精品视频免费观看| 国产麻豆精品95视频| 欧美性大战xxxxx久久久| 中文字幕va一区二区三区| 免费日韩伦理电影| 欧美影视一区在线| 亚洲手机成人高清视频| 久草中文综合在线| 日韩一区二区三区三四区视频在线观看 | 欧美成人三级电影在线| 亚洲欧美日韩一区二区| 国产福利一区二区| 欧美成人精品3d动漫h| 五月天欧美精品| 91久久精品国产91性色tv | 欧美蜜桃一区二区三区| 国产精品久久久久影院亚瑟| 国内精品在线播放| 2021国产精品久久精品| 日韩成人精品在线观看| 欧美日韩dvd在线观看| 亚洲免费观看高清完整版在线观看熊| 成人丝袜高跟foot| 国产三级一区二区| 国产精品一区二区三区四区| 精品国产亚洲一区二区三区在线观看| 秋霞午夜鲁丝一区二区老狼| 欧美精品乱码久久久久久按摩| 亚洲激情校园春色| 欧美日韩精品久久久| 亚洲一区二区三区在线| 欧美性受极品xxxx喷水| 亚洲福中文字幕伊人影院| 欧美午夜精品久久久久久超碰| 亚洲视频一二区| 日本道精品一区二区三区| 亚洲v日本v欧美v久久精品| 欧美美女bb生活片| 久久99精品国产麻豆不卡| 日韩午夜在线播放| 久久爱另类一区二区小说| 欧美一级精品在线| 国产精品资源网| 国产精品欧美综合在线| 成人国产精品免费观看| 亚洲日本在线a| 欧美人动与zoxxxx乱| 日韩vs国产vs欧美| 国产日产欧美一区二区三区| 高清成人在线观看| 亚洲综合久久久久| 日韩亚洲欧美成人一区| 国内精品国产成人国产三级粉色 | 欧美亚洲禁片免费| 另类成人小视频在线| 久久精品在这里| 国产麻豆一精品一av一免费| 91精品国产色综合久久久蜜香臀| 成人av在线资源网| 亚洲激情图片一区| 欧美videossexotv100| 国产成人av一区二区三区在线观看| 国产精品乱码人人做人人爱| 欧美综合在线视频| 国产乱人伦精品一区二区在线观看 | 狠狠色狠狠色综合| 免费成人美女在线观看.| 日本一区二区免费在线观看视频 | 欧美精品一卡二卡| 激情综合网最新| 亚洲综合图片区| 久久久国产综合精品女国产盗摄| 欧美午夜宅男影院| 国产成人亚洲综合色影视| 伊人夜夜躁av伊人久久| 久久嫩草精品久久久精品| 欧美性欧美巨大黑白大战| 国产盗摄女厕一区二区三区| 午夜一区二区三区视频| 国产精品日产欧美久久久久| 欧美一区二区在线看| 日本道精品一区二区三区| 丰满亚洲少妇av| 玖玖九九国产精品| 免费美女久久99| 亚洲图片欧美色图| 亚洲精品老司机| 欧美国产视频在线| 久久精品人人爽人人爽| 欧美巨大另类极品videosbest| 91视频精品在这里| 成人av在线观| 国产91丝袜在线播放0| 美腿丝袜一区二区三区| 日本亚洲天堂网| 日本不卡免费在线视频| 亚洲成人免费观看| 亚洲精品国产高清久久伦理二区| 国产视频在线观看一区二区三区| 精品国产一区二区三区久久影院 | 亚洲美女屁股眼交3| 久久久国际精品| 亚洲国产精华液网站w| 精品国产免费久久| 亚洲综合免费观看高清在线观看| 国产精品久久久久久妇女6080| 久久先锋资源网| 国产人成亚洲第一网站在线播放 | 韩国av一区二区三区在线观看| 日本欧美韩国一区三区| 男人的天堂亚洲一区| 青青草伊人久久| 韩国欧美国产一区| 成人黄色免费短视频| 成人网在线免费视频| 91色视频在线| 欧美吻胸吃奶大尺度电影| 欧美日韩国产在线观看| 日韩免费在线观看| 中文字幕av一区二区三区高| 中文字幕中文乱码欧美一区二区| 亚洲人成网站影音先锋播放| 亚洲色图欧洲色图| 日韩av午夜在线观看| 久久国产精品区| eeuss鲁片一区二区三区| 91视视频在线观看入口直接观看www | 国产专区欧美精品| 国产高清久久久| 91毛片在线观看| 91精品国产欧美一区二区成人| 日韩美女一区二区三区四区| 国产色91在线| 亚洲综合免费观看高清完整版在线| 日韩在线a电影| 不卡一卡二卡三乱码免费网站| 91黄色免费网站| 337p粉嫩大胆色噜噜噜噜亚洲| 国产欧美一区二区精品性色| 亚洲日本在线看| 国产一区二区久久| 在线视频中文字幕一区二区| 91麻豆精品国产91久久久更新时间| 欧美精品一区二区三区蜜桃| 亚洲欧美怡红院| 国产资源在线一区| 欧美丰满嫩嫩电影| 国产精品成人网| 国模套图日韩精品一区二区| 色狠狠色狠狠综合|