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

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

?? svm.m4

?? 一個(gè)Java實(shí)現(xiàn)的支持向量機(jī)(含源碼),SVM算法比較復(fù)雜
?? M4
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
					if (grad_diff > 0)					{						double obj_diff; 						double quad_coef=Q_i[i]+QD[j]+2*y[i]*Q_i[j];						if (quad_coef > 0)							obj_diff = -(grad_diff*grad_diff)/quad_coef;						else							obj_diff = -(grad_diff*grad_diff)/TAU;							if (obj_diff <= obj_diff_min)						{							Gmin_idx=j;							obj_diff_min = obj_diff;						}					}				}			}		}		if(Gmax+Gmax2 < eps)			return 1;		working_set[0] = Gmax_idx;		working_set[1] = Gmin_idx;		return 0;	}	// return 1 if already optimal, return 0 otherwise	int max_violating_pair(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 { -y_i * grad(f)_i | i in I_up(\alpha) }		int Gmax1_idx = -1;		int Gmax2_idx = -1;		double Gmax2 = -INF;		// max { y_i * grad(f)_i | i in I_low(\alpha) }		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] >= 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(max_violating_pair(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, QMatrix 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);	}	// return 1 if already optimal, return 0 otherwise	int select_working_set(int[] working_set)	{		// return i,j such that y_i = y_j and		// i: maximizes -y_i * grad(f)_i, i in I_up(\alpha)		// j: minimizes the decrease of obj value		//    (if quadratic coefficeint <= 0, replace it with tau)		//    -y_j*grad(f)_j < -y_i*grad(f)_i, j in I_low(\alpha)			double Gmaxp = -INF;		double Gmaxp2 = -INF;		int Gmaxp_idx = -1;			double Gmaxn = -INF;		double Gmaxn2 = -INF;		int Gmaxn_idx = -1;			int Gmin_idx = -1;		double obj_diff_min = INF;			for(int t=0;t<active_size;t++)			if(y[t]==+1)			{				if(!is_upper_bound(t))					if(-G[t] >= Gmaxp)					{						Gmaxp = -G[t];						Gmaxp_idx = t;					}			}			else			{				if(!is_lower_bound(t))					if(G[t] >= Gmaxn)					{						Gmaxn = G[t];						Gmaxn_idx = t;					}			}			int ip = Gmaxp_idx;		int in = Gmaxn_idx;		Qfloat[] Q_ip = null;		Qfloat[] Q_in = null;		if(ip != -1) // null Q_ip not accessed: Gmaxp=-INF if ip=-1			Q_ip = Q.get_Q(ip,active_size);		if(in != -1)			Q_in = Q.get_Q(in,active_size);			for(int j=0;j<active_size;j++)		{			if(y[j]==+1)			{				if (!is_lower_bound(j))					{					double grad_diff=Gmaxp+G[j];					if (G[j] >= Gmaxp2)						Gmaxp2 = G[j];					if (grad_diff > 0)					{						double obj_diff; 						double quad_coef = Q_ip[ip]+QD[j]-2*Q_ip[j];						if (quad_coef > 0)							obj_diff = -(grad_diff*grad_diff)/quad_coef;						else							obj_diff = -(grad_diff*grad_diff)/TAU;							if (obj_diff <= obj_diff_min)						{							Gmin_idx=j;							obj_diff_min = obj_diff;						}					}				}			}			else			{				if (!is_upper_bound(j))				{					double grad_diff=Gmaxn-G[j];					if (-G[j] >= Gmaxn2)						Gmaxn2 = -G[j];					if (grad_diff > 0)					{						double obj_diff; 						double quad_coef = Q_in[in]+QD[j]-2*Q_in[j];						if (quad_coef > 0)							obj_diff = -(grad_diff*grad_diff)/quad_coef;						else							obj_diff = -(grad_diff*grad_diff)/TAU;							if (obj_diff <= obj_diff_min)						{							Gmin_idx=j;							obj_diff_min = obj_diff;						}					}				}			}		}		if(Math.max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps) 			return 1;			if(y[Gmin_idx] == +1)			working_set[0] = Gmaxp_idx;		else			working_set[0] = Gmaxn_idx;		working_set[1] = Gmin_idx;			return 0;	}	void do_shrinking()	{		double Gmax1 = -INF;	// max { -y_i * grad(f)_i | y_i = +1, i in I_up(\alpha) }		double Gmax2 = -INF;	// max { y_i * grad(f)_i | y_i = +1, i in I_low(\alpha) }		double Gmax3 = -INF;	// max { -y_i * grad(f)_i | y_i = -1, i in I_up(\alpha) }		double Gmax4 = -INF;	// max { y_i * grad(f)_i | y_i = -1, i in I_low(\alpha) } 		// find maximal violating pair first		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];			}		}		// shrinking		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;	private final Qfloat[] QD;	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)));		QD = new Qfloat[prob.l];		for(int i=0;i<prob.l;i++)			QD[i]= (Qfloat)kernel_function(i,i);	}	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];	}	Qfloat[] get_QD()	{		return QD;	}	void swap_index(int i, int j)	{		cache.swap_index(i,j);		super.swap_index(i,j);		swap(byte,y[i],y[j]);		swap(Qfloat,QD[i],QD[j]);	}}class ONE_CLASS_Q extends Kernel{	private final Cache cache;	private final Qfloat[] QD;	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)));		QD = new Qfloat[prob.l];		for(int i=0;i<prob.l;i++)			QD[i]= (Qfloat)kernel_function(i,i);	}	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];	}	Qfloat[] get_QD()	{		return QD;	}	void swap_index(int i, int j)	{		cache.swap_index(i,j);		super.swap_index(i,j);		swap(Qfloat,QD[i],QD[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;	private final Qfloat[] QD;	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)));		QD = new Qfloat[2*l];		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;			QD[k] = (Qfloat)kernel_function(k,k);			QD[k+l] = QD[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]);		swap(Qfloat,QD[i],QD[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;	}	Qfloat[] get_QD()	{		return QD;	}}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];		if (Cp==Cn)			System.out.print("nu = "+sum_alpha/(Cp*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;		byte[] y = new byte[l];		for(i=0;i<l;i++)			if(prob.y[i]>0)				y[i] = +1;			else				y[i] = -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;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九九精品一区二区| 中文字幕日韩欧美一区二区三区| 蜜臀久久久久久久| 婷婷久久综合九色综合伊人色| 一区二区三区精品| 午夜精品福利视频网站 | 精品一区二区三区在线视频| 亚洲va欧美va国产va天堂影院| 一区二区三区成人在线视频| 一区二区三区日韩欧美| 亚洲愉拍自拍另类高清精品| 亚洲欧洲中文日韩久久av乱码| 亚洲欧美日韩系列| 亚洲成av人片一区二区梦乃| 日本v片在线高清不卡在线观看| 精品一区二区久久久| 国产成人免费在线视频| 99精品在线观看视频| 欧美性色欧美a在线播放| 欧美日韩国产综合一区二区三区 | 中文字幕不卡在线观看| 亚洲免费观看在线视频| 亚洲国产日韩在线一区模特| 日韩成人一级片| 国产成人aaaa| 欧美日韩中文精品| 久久精品亚洲麻豆av一区二区| 国产精品久久久久7777按摩 | 精品制服美女丁香| 99精品久久99久久久久| 91精品国产麻豆| 国产人伦精品一区二区| 亚洲一区二区三区精品在线| 美女视频网站黄色亚洲| 成人不卡免费av| 8x福利精品第一导航| 欧美激情一区二区三区全黄| 亚洲一区二区四区蜜桃| 国内不卡的二区三区中文字幕 | 久久久久国产精品麻豆| 综合久久国产九一剧情麻豆| 久久精品国产网站| 色综合激情久久| 精品成人一区二区三区四区| 亚洲精品久久7777| 国产乱子伦视频一区二区三区 | 国产.欧美.日韩| 欧美日本免费一区二区三区| 国产免费观看久久| 麻豆精品国产传媒mv男同| 欧美精品乱码久久久久久| 久久嫩草精品久久久精品| 视频一区视频二区中文字幕| 99视频精品全部免费在线| 精品国精品国产尤物美女| 亚洲国产人成综合网站| av一区二区三区在线| 久久九九久久九九| 日本欧美韩国一区三区| 欧美日韩在线直播| 亚洲另类在线制服丝袜| 91丨九色丨尤物| 中文字幕乱码亚洲精品一区| 国产一区二区看久久| 欧美一区二区三区日韩视频| 污片在线观看一区二区| 欧美中文字幕亚洲一区二区va在线| 亚洲欧美自拍偷拍| av成人免费在线观看| 中文字幕第一区综合| 成人一区二区三区视频在线观看| 久久综合丝袜日本网| 激情综合色播激情啊| 欧美不卡视频一区| 国内精品免费**视频| 久久久久久久久久久久久女国产乱 | 欧美另类久久久品| 午夜av一区二区三区| 欧美久久一二三四区| 美女久久久精品| 日韩欧美www| 国产精品一区二区黑丝| 国产日产欧美一区二区视频| 成人av免费在线观看| 亚洲人成人一区二区在线观看| 色综合久久天天| 亚洲国产精品久久久久秋霞影院 | 国产精品996| 国产精品久久久一区麻豆最新章节| 成人av网站在线观看| 日韩一区在线播放| 欧美精品粉嫩高潮一区二区| 久久97超碰色| 国产精品福利影院| 欧美视频中文字幕| 美国十次综合导航| 国产精品日产欧美久久久久| 91浏览器打开| 美女视频黄久久| 国产三级欧美三级| 在线区一区二视频| 久久国产婷婷国产香蕉| 亚洲国产成人午夜在线一区| 91老师国产黑色丝袜在线| 天天操天天色综合| 国产午夜精品福利| 欧美性猛片aaaaaaa做受| 久久国产精品一区二区| 中文字幕在线免费不卡| 91精品一区二区三区久久久久久| 国内不卡的二区三区中文字幕| 亚洲精品免费在线| 26uuu色噜噜精品一区二区| 91视视频在线直接观看在线看网页在线看 | 精品国产一区二区精华| 91麻豆成人久久精品二区三区| 日韩一区精品字幕| 亚洲色图欧洲色图| 欧美α欧美αv大片| 99热99精品| 国产专区综合网| 婷婷夜色潮精品综合在线| 亚洲视频一区在线| 久久蜜桃一区二区| 91精品免费在线| 91麻豆国产香蕉久久精品| 国产乱码一区二区三区| 人人爽香蕉精品| 亚洲自拍都市欧美小说| 国产精品短视频| 国产情人综合久久777777| 日韩欧美你懂的| 欧美美女直播网站| 在线一区二区三区做爰视频网站| 国产福利精品导航| 精品一区二区三区在线观看国产| 石原莉奈在线亚洲三区| 伊人婷婷欧美激情| 亚洲区小说区图片区qvod| 亚洲国产精品99久久久久久久久| 精品国产乱码久久久久久久| 欧美一区二区私人影院日本| 欧美精品粉嫩高潮一区二区| 欧美日韩亚洲综合在线 | 99精品视频在线观看| 国产成人av一区二区| 国产一区二区三区四区在线观看| 青青草成人在线观看| 日韩国产欧美三级| 免费欧美高清视频| 琪琪一区二区三区| 蜜臀久久99精品久久久久宅男| 日韩在线一二三区| 日本欧美在线看| 久久国产人妖系列| 国产成人aaaa| 99久久国产综合色|国产精品| va亚洲va日韩不卡在线观看| 丁香六月久久综合狠狠色| 成人午夜视频福利| 91欧美激情一区二区三区成人| 91免费视频网| 欧美日韩国产一级片| 日韩视频中午一区| 久久久亚洲精华液精华液精华液| 久久精品亚洲国产奇米99| 国产精品欧美极品| 亚洲精品中文字幕在线观看| 亚洲图片欧美色图| 久久成人免费电影| 成人综合婷婷国产精品久久| 99re热视频精品| 在线成人免费视频| 26uuu精品一区二区| 中文字幕字幕中文在线中不卡视频| 亚洲理论在线观看| 精品一区二区三区在线观看国产| 懂色av中文一区二区三区| 色一情一乱一乱一91av| 91精品欧美一区二区三区综合在| 久久精品夜夜夜夜久久| 亚洲在线视频一区| 国产在线播放一区三区四| 91网站黄www| 精品欧美一区二区三区精品久久| 国产精品免费网站在线观看| 亚洲福利视频三区| 国产乱码精品一区二区三| 91视频观看视频| 精品国产乱码久久久久久浪潮| 亚洲欧美日韩国产另类专区| 久久精品国产99久久6| 91在线视频官网| 日韩欧美国产三级电影视频| 亚洲人精品一区| 国产精品一区不卡| 91精品国产综合久久久久久久| 国产精品卡一卡二卡三| 男女激情视频一区| 欧美性生活一区|