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

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

?? svm.m4

?? 支持向量機(jī)的VC++相關(guān)源程序代碼,希望對(duì)大家有用!
?? M4
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
				{					if(G[i] > Gmax2)					{						Gmax2 = G[i];						Gmax2_idx = i;					}				}			}			else		// y = -1			{				if(!is_upper_bound(i))	// d = +1				{					if(-G[i] > Gmax2)					{						Gmax2 = -G[i];						Gmax2_idx = i;					}				}				if(!is_lower_bound(i))	// d = -1				{					if(G[i] > Gmax1)					{						Gmax1 = G[i];						Gmax1_idx = i;					}				}			}		}		if(Gmax1+Gmax2 < eps)	 		return 1;		working_set[0] = Gmax1_idx;		working_set[1] = Gmax2_idx;		return 0;	}	void do_shrinking()	{		int i,j,k;		int[] working_set = new int[2];		if(select_working_set(working_set)!=0) return;		i = working_set[0];		j = working_set[1];		double Gm1 = -y[j]*G[j];		double Gm2 = y[i]*G[i];		// shrink			for(k=0;k<active_size;k++)		{			if(is_lower_bound(k))			{				if(y[k]==+1)				{					if(-G[k] >= Gm1) continue;				}				else	if(-G[k] >= Gm2) continue;			}			else if(is_upper_bound(k))			{				if(y[k]==+1)				{					if(G[k] >= Gm2) continue;				}				else	if(G[k] >= Gm1) continue;			}			else continue;			--active_size;			swap_index(k,active_size);			--k;	// look at the newcomer		}		// unshrink, check all variables again before final iterations		if(unshrinked || -(Gm1 + Gm2) > eps*10) return;		unshrinked = true;		reconstruct_gradient();		for(k=l-1;k>=active_size;k--)		{			if(is_lower_bound(k))			{				if(y[k]==+1)				{					if(-G[k] < Gm1) continue;				}				else	if(-G[k] < Gm2) continue;			}			else if(is_upper_bound(k))			{				if(y[k]==+1)				{					if(G[k] < Gm2) continue;				}				else	if(G[k] < Gm1) continue;			}			else continue;			swap_index(k,active_size);			active_size++;			++k;	// look at the newcomer		}	}	double calculate_rho()	{		double r;		int nr_free = 0;		double ub = INF, lb = -INF, sum_free = 0;		for(int i=0;i<active_size;i++)		{			double yG = y[i]*G[i];			if(is_lower_bound(i))			{				if(y[i] > 0)					ub = Math.min(ub,yG);				else					lb = Math.max(lb,yG);			}			else if(is_upper_bound(i))			{				if(y[i] < 0)					ub = Math.min(ub,yG);				else					lb = Math.max(lb,yG);			}			else			{				++nr_free;				sum_free += yG;			}		}		if(nr_free>0)			r = sum_free/nr_free;		else			r = (ub+lb)/2;		return r;	}}//// Solver for nu-svm classification and regression//// additional constraint: e^T \alpha = constant//final class Solver_NU extends Solver{	private SolutionInfo si;	void Solve(int l, Kernel Q, double[] b, byte[] y,		   double[] alpha, double Cp, double Cn, double eps,		   SolutionInfo si, int shrinking)	{		this.si = si;		super.Solve(l,Q,b,y,alpha,Cp,Cn,eps,si,shrinking);	}	int select_working_set(int[] working_set)	{		// return i,j which maximize -grad(f)^T d , under constraint		// if alpha_i == C, d != +1		// if alpha_i == 0, d != -1		double Gmax1 = -INF;	// max { -grad(f)_i * d | y_i = +1, d = +1 }		int Gmax1_idx = -1;		double Gmax2 = -INF;	// max { -grad(f)_i * d | y_i = +1, d = -1 }		int Gmax2_idx = -1;		double Gmax3 = -INF;	// max { -grad(f)_i * d | y_i = -1, d = +1 }		int Gmax3_idx = -1;		double Gmax4 = -INF;	// max { -grad(f)_i * d | y_i = -1, d = -1 }		int Gmax4_idx = -1;		for(int i=0;i<active_size;i++)		{			if(y[i]==+1)	// y == +1			{				if(!is_upper_bound(i))	// d = +1				{					if(-G[i] > Gmax1)					{						Gmax1 = -G[i];						Gmax1_idx = i;					}				}				if(!is_lower_bound(i))	// d = -1				{					if(G[i] > Gmax2)					{						Gmax2 = G[i];						Gmax2_idx = i;					}				}			}			else		// y == -1			{				if(!is_upper_bound(i))	// d = +1				{					if(-G[i] > Gmax3)					{						Gmax3 = -G[i];						Gmax3_idx = i;					}				}				if(!is_lower_bound(i))	// d = -1				{					if(G[i] > Gmax4)					{						Gmax4 = G[i];						Gmax4_idx = i;					}				}			}		}		if(Math.max(Gmax1+Gmax2,Gmax3+Gmax4) < eps) 			return 1;		if(Gmax1+Gmax2 > Gmax3+Gmax4)		{			working_set[0] = Gmax1_idx;			working_set[1] = Gmax2_idx;		}		else		{			working_set[0] = Gmax3_idx;			working_set[1] = Gmax4_idx;		}		return 0;	}	void do_shrinking()	{		double Gmax1 = -INF;	// max { -grad(f)_i * d | y_i = +1, d = +1 }		double Gmax2 = -INF;	// max { -grad(f)_i * d | y_i = +1, d = -1 }		double Gmax3 = -INF;	// max { -grad(f)_i * d | y_i = -1, d = +1 }		double Gmax4 = -INF;	// max { -grad(f)_i * d | y_i = -1, d = -1 }		int k;		for(k=0;k<active_size;k++)		{			if(!is_upper_bound(k))			{				if(y[k]==+1)				{					if(-G[k] > Gmax1) Gmax1 = -G[k];				}				else	if(-G[k] > Gmax3) Gmax3 = -G[k];			}			if(!is_lower_bound(k))			{				if(y[k]==+1)				{						if(G[k] > Gmax2) Gmax2 = G[k];				}				else	if(G[k] > Gmax4) Gmax4 = G[k];			}		}		double Gm1 = -Gmax2;		double Gm2 = -Gmax1;		double Gm3 = -Gmax4;		double Gm4 = -Gmax3;		for(k=0;k<active_size;k++)		{			if(is_lower_bound(k))			{				if(y[k]==+1)				{					if(-G[k] >= Gm1) continue;				}				else	if(-G[k] >= Gm3) continue;			}			else if(is_upper_bound(k))			{				if(y[k]==+1)				{					if(G[k] >= Gm2) continue;				}				else	if(G[k] >= Gm4) continue;			}			else continue;			--active_size;			swap_index(k,active_size);			--k;	// look at the newcomer		}		// unshrink, check all variables again before final iterations		if(unshrinked || Math.max(-(Gm1+Gm2),-(Gm3+Gm4)) > eps*10) return;			unshrinked = true;		reconstruct_gradient();		for(k=l-1;k>=active_size;k--)		{			if(is_lower_bound(k))			{				if(y[k]==+1)				{					if(-G[k] < Gm1) continue;				}				else	if(-G[k] < Gm3) continue;			}			else if(is_upper_bound(k))			{				if(y[k]==+1)				{					if(G[k] < Gm2) continue;				}				else	if(G[k] < Gm4) continue;			}			else continue;			swap_index(k,active_size);			active_size++;			++k;	// look at the newcomer		}	}		double calculate_rho()	{		int nr_free1 = 0,nr_free2 = 0;		double ub1 = INF, ub2 = INF;		double lb1 = -INF, lb2 = -INF;		double sum_free1 = 0, sum_free2 = 0;		for(int i=0;i<active_size;i++)		{			if(y[i]==+1)			{				if(is_lower_bound(i))					ub1 = Math.min(ub1,G[i]);				else if(is_upper_bound(i))					lb1 = Math.max(lb1,G[i]);				else				{					++nr_free1;					sum_free1 += G[i];				}			}			else			{				if(is_lower_bound(i))					ub2 = Math.min(ub2,G[i]);				else if(is_upper_bound(i))					lb2 = Math.max(lb2,G[i]);				else				{					++nr_free2;					sum_free2 += G[i];				}			}		}		double r1,r2;		if(nr_free1 > 0)			r1 = sum_free1/nr_free1;		else			r1 = (ub1+lb1)/2;		if(nr_free2 > 0)			r2 = sum_free2/nr_free2;		else			r2 = (ub2+lb2)/2;		si.r = (r1+r2)/2;		return (r1-r2)/2;	}}//// Q matrices for various formulations//class SVC_Q extends Kernel{	private final byte[] y;	private final Cache cache;	SVC_Q(svm_problem prob, svm_parameter param, byte[] y_)	{		super(prob.l, prob.x, param);		y = (byte[])y_.clone();		cache = new Cache(prob.l,(int)(param.cache_size*(1<<20)));	}	Qfloat[] get_Q(int i, int len)	{		Qfloat[][] data = new Qfloat[1][];		int start;		if((start = cache.get_data(i,data,len)) < len)		{			for(int j=start;j<len;j++)				data[0][j] = (Qfloat)(y[i]*y[j]*kernel_function(i,j));		}		return data[0];	}	void swap_index(int i, int j)	{		cache.swap_index(i,j);		super.swap_index(i,j);		swap(byte,y[i],y[j]);	}}class ONE_CLASS_Q extends Kernel{	private final Cache cache;	ONE_CLASS_Q(svm_problem prob, svm_parameter param)	{		super(prob.l, prob.x, param);		cache = new Cache(prob.l,(int)(param.cache_size*(1<<20)));	}	Qfloat[] get_Q(int i, int len)	{		Qfloat[][] data = new Qfloat[1][];		int start;		if((start = cache.get_data(i,data,len)) < len)		{			for(int j=start;j<len;j++)				data[0][j] = (Qfloat)kernel_function(i,j);		}		return data[0];	}	void swap_index(int i, int j)	{		cache.swap_index(i,j);		super.swap_index(i,j);	}}class SVR_Q extends Kernel{	private final int l;	private final Cache cache;	private final byte[] sign;	private final int[] index;	private int next_buffer;	private Qfloat[][] buffer;	SVR_Q(svm_problem prob, svm_parameter param)	{		super(prob.l, prob.x, param);		l = prob.l;		cache = new Cache(l,(int)(param.cache_size*(1<<20)));		sign = new byte[2*l];		index = new int[2*l];		for(int k=0;k<l;k++)		{			sign[k] = 1;			sign[k+l] = -1;			index[k] = k;			index[k+l] = k;		}		buffer = new Qfloat[2][2*l];		next_buffer = 0;	}	void swap_index(int i, int j)	{		swap(byte,sign[i],sign[j]);		swap(int,index[i],index[j]);	}	Qfloat[] get_Q(int i, int len)	{		Qfloat[][] data = new Qfloat[1][];		int real_i = index[i];		if(cache.get_data(real_i,data,l) < l)		{			for(int j=0;j<l;j++)				data[0][j] = (Qfloat)kernel_function(real_i,j);		}		// reorder and copy		Qfloat buf[] = buffer[next_buffer];		next_buffer = 1 - next_buffer;		byte si = sign[i];		for(int j=0;j<len;j++)			buf[j] = si * sign[j] * data[0][index[j]];		return buf;	}}public class svm {	//	// construct and solve various formulations	//	private static void solve_c_svc(svm_problem prob, svm_parameter param,					double[] alpha, Solver.SolutionInfo si,					double Cp, double Cn)	{		int l = prob.l;		double[] minus_ones = new double[l];		byte[] y = new byte[l];		int i;		for(i=0;i<l;i++)		{			alpha[i] = 0;			minus_ones[i] = -1;			if(prob.y[i] > 0) y[i] = +1; else y[i]=-1;		}		Solver s = new Solver();		s.Solve(l, new SVC_Q(prob,param,y), minus_ones, y,			alpha, Cp, Cn, param.eps, si, param.shrinking);		double sum_alpha=0;		for(i=0;i<l;i++)			sum_alpha += alpha[i];		System.out.print("nu = "+sum_alpha/(param.C*prob.l)+"\n");		for(i=0;i<l;i++)			alpha[i] *= y[i];	}	private static void solve_nu_svc(svm_problem prob, svm_parameter param,				 	double[] alpha, Solver.SolutionInfo si)	{		int i;		int l = prob.l;		double nu = param.nu;		int y_pos = 0;		int y_neg = 0;		byte[] y = new byte[l];		for(i=0;i<l;i++)			if(prob.y[i]>0)			{				y[i] = +1;				++y_pos;			}			else			{				y[i] = -1;				++y_neg;			}		if(nu < 0 || nu*l/2 > Math.min(y_pos,y_neg))		{			System.err.print("specified nu is infeasible\n");			System.exit(1);		}		double sum_pos = nu*l/2;		double sum_neg = nu*l/2;		for(i=0;i<l;i++)			if(y[i] == +1)			{				alpha[i] = Math.min(1.0,sum_pos);				sum_pos -= alpha[i];			}			else			{				alpha[i] = Math.min(1.0,sum_neg);				sum_neg -= alpha[i];			}		double[] zeros = new double[l];		for(i=0;i<l;i++)			zeros[i] = 0;		Solver_NU s = new Solver_NU();		s.Solve(l, new SVC_Q(prob,param,y), zeros, y,			alpha, 1.0, 1.0, param.eps, si, param.shrinking);		double r = si.r;		System.out.print("C = "+1/r+"\n");		for(i=0;i<l;i++)			alpha[i] *= y[i]/r;		si.rho /= r;		si.obj /= (r*r);		si.upper_bound_p = 1/r;		si.upper_bound_n = 1/r;	}	private static void solve_one_class(svm_problem prob, svm_parameter param,				    	double[] alpha, Solver.SolutionInfo si)	{		int l = prob.l;		double[] zeros = new double[l];		byte[] ones = new byte[l];		int i;		int n = (int)(param.nu*prob.l);	// # of alpha's at upper bound		if(n>=prob.l)		{			System.err.print("nu must be in (0,1)\n");			System.exit(1);		}		for(i=0;i<n;i++)			alpha[i] = 1;		alpha[n] = param.nu * prob.l - n;		for(i=n+1;i<l;i++)			alpha[i] = 0;		for(i=0;i<l;i++)		{			zeros[i] = 0;			ones[i] = 1;		}		Solver s = new Solver();		s.Solve(l, new ONE_CLASS_Q(prob,param), zeros, ones,			alpha, 1.0, 1.0, param.eps, si, param.shrinking);	}	private static void solve_epsilon_svr(svm_problem prob, svm_parameter param,					double[] alpha, Solver.SolutionInfo si)	{		int l = prob.l;		double[] alpha2 = new double[2*l];		double[] linear_term = new double[2*l];		byte[] y = new byte[2*l];

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡av免费在线观看| 久久伊人蜜桃av一区二区| 亚洲成人在线网站| 欧美日韩成人在线| 蜜桃av一区二区| 久久亚洲春色中文字幕久久久| 国产98色在线|日韩| 亚洲日本免费电影| 欧美日韩国产美| 美女久久久精品| 久久久99精品久久| 91在线精品秘密一区二区| 亚洲综合小说图片| 日韩午夜精品视频| 国产91在线看| 亚洲综合在线视频| 欧美一卡二卡在线| 国产成人精品亚洲日本在线桃色| 亚洲素人一区二区| 69久久99精品久久久久婷婷| 国内不卡的二区三区中文字幕 | wwwwww.欧美系列| 成人免费视频视频| 亚洲一区二区三区四区五区中文| 欧美一区二区三区系列电影| 国产精品自拍av| 亚洲日穴在线视频| 日韩欧美在线1卡| av中文字幕在线不卡| 日韩电影在线一区| 日本一区二区视频在线观看| 欧美色精品在线视频| 精品一区二区久久| 中文字幕一区二区三区精华液| 欧美日韩精品福利| 粉嫩13p一区二区三区| 亚洲国产欧美日韩另类综合| 久久久久99精品国产片| 欧美亚洲免费在线一区| 国产综合一区二区| 一区二区三区四区精品在线视频| 日韩欧美国产一区在线观看| www.日韩大片| 蜜乳av一区二区| 亚洲欧洲精品天堂一级| 日韩一区二区免费在线观看| 99re这里只有精品6| 日本成人在线网站| 国产精品蜜臀av| 日韩午夜精品视频| 91极品视觉盛宴| 国产成人综合视频| 午夜日韩在线电影| 17c精品麻豆一区二区免费| 日韩欧美在线影院| 91久久精品一区二区二区| 国产在线国偷精品免费看| 亚洲一区二区三区中文字幕| 国产精品污网站| 欧美电影免费观看高清完整版| 色欧美片视频在线观看在线视频| 国产综合成人久久大片91| 亚洲国产中文字幕| 国产精品久久久久久久岛一牛影视| 91精品国产免费| 91精品福利视频| 成人国产一区二区三区精品| 激情久久五月天| 日本成人超碰在线观看| 亚洲综合小说图片| 中文字幕中文在线不卡住| 精品动漫一区二区三区在线观看| 精品视频1区2区3区| 97精品国产露脸对白| 国产精品系列在线观看| 另类小说色综合网站| 首页国产丝袜综合| 亚洲精品自拍动漫在线| 国产精品不卡在线| 国产性天天综合网| 欧美va亚洲va国产综合| 717成人午夜免费福利电影| 一本到不卡精品视频在线观看| 国产传媒久久文化传媒| 国产一区激情在线| 美洲天堂一区二卡三卡四卡视频| 亚洲va欧美va天堂v国产综合| 亚洲精品国产a久久久久久| 国产精品国产三级国产普通话蜜臀 | 亚洲成人av资源| 亚洲免费av高清| 亚洲图片你懂的| 国产精品国产自产拍高清av| 亚洲国产成人午夜在线一区| 国产偷国产偷亚洲高清人白洁 | 日韩欧美一区二区久久婷婷| 欧美电影影音先锋| 欧美日本一区二区| 欧美日韩一区视频| 欧美图区在线视频| 欧洲精品中文字幕| 日本电影欧美片| 日本道色综合久久| 91在线观看下载| 99精品欧美一区二区蜜桃免费| 粉嫩高潮美女一区二区三区| 国产盗摄视频一区二区三区| 国产精品18久久久久| 国产精品综合av一区二区国产馆| 国产久卡久卡久卡久卡视频精品| 国产美女视频91| 国产ts人妖一区二区| 成人黄色电影在线| 99精品久久久久久| 色综合天天天天做夜夜夜夜做| a级精品国产片在线观看| 99国产精品视频免费观看| 91麻豆精东视频| 欧美视频日韩视频在线观看| 欧美猛男gaygay网站| 555夜色666亚洲国产免| 日韩欧美综合一区| 久久亚洲精精品中文字幕早川悠里| 2023国产精华国产精品| 国产精品无码永久免费888| 一区在线观看视频| 亚洲激情图片一区| 亚洲成人午夜电影| 美女脱光内衣内裤视频久久网站| 激情国产一区二区| 国产成人精品一区二区三区四区| bt7086福利一区国产| 欧美午夜精品一区二区三区| 51精品秘密在线观看| 精品国产乱码久久久久久蜜臀| 国产欧美一区二区三区沐欲| ...中文天堂在线一区| 亚洲国产综合色| 久久精品72免费观看| 粉嫩欧美一区二区三区高清影视| 99久久国产综合精品麻豆| 欧美综合一区二区三区| 欧美一级高清片| 久久久久久久久伊人| 亚洲激情校园春色| 日韩不卡手机在线v区| 国产一区二区免费在线| 99精品国产99久久久久久白柏| 欧美性猛片aaaaaaa做受| 日韩欧美国产高清| 国产精品国产三级国产三级人妇| 亚洲第一搞黄网站| 国产一区二区三区久久悠悠色av| 91在线国产观看| 日韩视频免费观看高清在线视频| 国产人伦精品一区二区| 亚洲国产日韩在线一区模特| 久草这里只有精品视频| 色综合欧美在线| 日韩一区二区三区电影| 国产精品国产成人国产三级| 亚洲不卡av一区二区三区| 国产精品香蕉一区二区三区| 欧美性极品少妇| 精品国产123| 亚洲自拍偷拍图区| 韩国三级在线一区| 欧洲精品一区二区三区在线观看| 欧美xxxxxxxx| 亚洲最大的成人av| 国产传媒日韩欧美成人| 欧美精品久久久久久久多人混战| 国产女人18水真多18精品一级做| 亚洲成人免费在线| 国产成a人亚洲精| 欧美日韩在线一区二区| 国产日韩精品视频一区| 日韩在线观看一区二区| 国产 日韩 欧美大片| 6080日韩午夜伦伦午夜伦| 国产精品国产三级国产普通话99 | 欧美三电影在线| 国产亚洲短视频| 日韩vs国产vs欧美| 色综合天天综合网国产成人综合天| 日韩三级电影网址| 亚洲精品国产品国语在线app| 国产一区二区三区| 91精品国产91久久综合桃花| 亚洲私人黄色宅男| 国产一区二区按摩在线观看| 欧美日韩亚洲国产综合| 国产精品传媒在线| 国产精品综合二区| 日韩一级免费观看| 亚洲成人高清在线| 91麻豆免费观看| 国产精品狼人久久影院观看方式| 老司机精品视频线观看86| 欧美色图片你懂的|