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

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

?? svm.cpp

?? support vector machine
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
					alpha[j] = C_j;					alpha[i] = C_j + diff;				}			}		}		else		{			double quad_coef = Q_i[i]+Q_j[j]-2*Q_i[j];			if (quad_coef <= 0)				quad_coef = TAU;			double delta = (G[i]-G[j])/quad_coef;			double sum = alpha[i] + alpha[j];			alpha[i] -= delta;			alpha[j] += delta;			if(sum > C_i)			{				if(alpha[i] > C_i)				{					alpha[i] = C_i;					alpha[j] = sum - C_i;				}			}			else			{				if(alpha[j] < 0)				{					alpha[j] = 0;					alpha[i] = sum;				}			}			if(sum > C_j)			{				if(alpha[j] > C_j)				{					alpha[j] = C_j;					alpha[i] = sum - C_j;				}			}			else			{				if(alpha[i] < 0)				{					alpha[i] = 0;					alpha[j] = sum;				}			}		}		// update G		double delta_alpha_i = alpha[i] - old_alpha_i;		double delta_alpha_j = alpha[j] - old_alpha_j;				for(int k=0;k<active_size;k++)		{			G[k] += Q_i[k]*delta_alpha_i + Q_j[k]*delta_alpha_j;		}		// update alpha_status and G_bar		{			bool ui = is_upper_bound(i);			bool uj = is_upper_bound(j);			update_alpha_status(i);			update_alpha_status(j);			int k;			if(ui != is_upper_bound(i))			{				Q_i = Q.get_Q(i,l);				if(ui)					for(k=0;k<l;k++)						G_bar[k] -= C_i * Q_i[k];				else					for(k=0;k<l;k++)						G_bar[k] += C_i * Q_i[k];			}			if(uj != is_upper_bound(j))			{				Q_j = Q.get_Q(j,l);				if(uj)					for(k=0;k<l;k++)						G_bar[k] -= C_j * Q_j[k];				else					for(k=0;k<l;k++)						G_bar[k] += C_j * Q_j[k];			}		}	}	// calculate rho	si->rho = calculate_rho();	// calculate objective value	{		double v = 0;		int i;		for(i=0;i<l;i++)			v += alpha[i] * (G[i] + p[i]);		si->obj = v/2;	}	// put back the solution	{		for(int i=0;i<l;i++)			alpha_[active_set[i]] = alpha[i];	}	// juggle everything back	/*{		for(int i=0;i<l;i++)			while(active_set[i] != i)				swap_index(i,active_set[i]);				// or Q.swap_index(i,active_set[i]);	}*/	si->upper_bound_p = Cp;	si->upper_bound_n = Cn;	info("\noptimization finished, #iter = %d\n",iter);	delete[] p;	delete[] y;	delete[] alpha;	delete[] alpha_status;	delete[] active_set;	delete[] G;	delete[] G_bar;}// return 1 if already optimal, return 0 otherwiseint Solver::select_working_set(int &out_i, int &out_j){	// return i,j such that	// 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 Gmax = -INF;	double Gmax2 = -INF;	int Gmax_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] >= Gmax)				{					Gmax = -G[t];					Gmax_idx = t;				}		}		else		{			if(!is_lower_bound(t))				if(G[t] >= Gmax)				{					Gmax = G[t];					Gmax_idx = t;				}		}	int i = Gmax_idx;	const Qfloat *Q_i = NULL;	if(i != -1) // NULL Q_i not accessed: Gmax=-INF if i=-1		Q_i = Q->get_Q(i,active_size);	for(int j=0;j<active_size;j++)	{		if(y[j]==+1)		{			if (!is_lower_bound(j))			{				double grad_diff=Gmax+G[j];				if (G[j] >= Gmax2)					Gmax2 = G[j];				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;					}				}			}		}		else		{			if (!is_upper_bound(j))			{				double grad_diff= Gmax-G[j];				if (-G[j] >= Gmax2)					Gmax2 = -G[j];				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;	out_i = Gmax_idx;	out_j = Gmin_idx;	return 0;}bool Solver::be_shrunken(int i, double Gmax1, double Gmax2){	if(is_upper_bound(i))	{		if(y[i]==+1)			return(-G[i] > Gmax1);		else			return(-G[i] > Gmax2);	}	else if(is_lower_bound(i))	{		if(y[i]==+1)			return(G[i] > Gmax2);		else				return(G[i] > Gmax1);	}	else		return(false);}void Solver::do_shrinking(){	int i;	double Gmax1 = -INF;		// max { -y_i * grad(f)_i | i in I_up(\alpha) }	double Gmax2 = -INF;		// max { y_i * grad(f)_i | i in I_low(\alpha) }	// find maximal violating pair first	for(i=0;i<active_size;i++)	{		if(y[i]==+1)			{			if(!is_upper_bound(i))				{				if(-G[i] >= Gmax1)					Gmax1 = -G[i];			}			if(!is_lower_bound(i))				{				if(G[i] >= Gmax2)					Gmax2 = G[i];			}		}		else			{			if(!is_upper_bound(i))				{				if(-G[i] >= Gmax2)					Gmax2 = -G[i];			}			if(!is_lower_bound(i))				{				if(G[i] >= Gmax1)					Gmax1 = G[i];			}		}	}	// shrink	for(i=0;i<active_size;i++)		if (be_shrunken(i, Gmax1, Gmax2))		{			active_size--;			while (active_size > i)			{				if (!be_shrunken(active_size, Gmax1, Gmax2))				{					swap_index(i,active_size);					break;				}				active_size--;			}		}	// unshrink, check all variables again before final iterations	if(unshrinked || Gmax1 + Gmax2 > eps*10) return;		unshrinked = true;	reconstruct_gradient();	for(i=l-1;i>=active_size;i--)		if (!be_shrunken(i, Gmax1, Gmax2))		{			while (active_size < i)			{				if (be_shrunken(active_size, Gmax1, Gmax2))				{					swap_index(i,active_size);					break;				}				active_size++;			}			active_size++;		}}double Solver::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_upper_bound(i))		{			if(y[i]==-1)				ub = min(ub,yG);			else				lb = max(lb,yG);		}		else if(is_lower_bound(i))		{			if(y[i]==+1)				ub = min(ub,yG);			else				lb = 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//class Solver_NU : public Solver{public:	Solver_NU() {}	void Solve(int l, const QMatrix& Q, const double *p, const schar *y,		   double *alpha, double Cp, double Cn, double eps,		   SolutionInfo* si, int shrinking)	{		this->si = si;		Solver::Solve(l,Q,p,y,alpha,Cp,Cn,eps,si,shrinking);	}private:	SolutionInfo *si;	int select_working_set(int &i, int &j);	double calculate_rho();	bool be_shrunken(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4);	void do_shrinking();};// return 1 if already optimal, return 0 otherwiseint Solver_NU::select_working_set(int &out_i, int &out_j){	// 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;	const Qfloat *Q_ip = NULL;	const 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(max(Gmaxp+Gmaxp2,Gmaxn+Gmaxn2) < eps) 		return 1;	if (y[Gmin_idx] == +1)		out_i = Gmaxp_idx;	else		out_i = Gmaxn_idx;	out_j = Gmin_idx;	return 0;}bool Solver_NU::be_shrunken(int i, double Gmax1, double Gmax2, double Gmax3, double Gmax4){	if(is_upper_bound(i))	{		if(y[i]==+1)			return(-G[i] > Gmax1);		else				return(-G[i] > Gmax4);	}	else if(is_lower_bound(i))	{		if(y[i]==+1)			return(G[i] > Gmax2);		else				return(G[i] > Gmax3);	}	else		return(false);}void Solver_NU::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 i;	for(i=0;i<active_size;i++)	{		if(!is_upper_bound(i))		{			if(y[i]==+1)			{				if(-G[i] > Gmax1) Gmax1 = -G[i];			}			else	if(-G[i] > Gmax4) Gmax4 = -G[i];		}		if(!is_lower_bound(i))		{			if(y[i]==+1)			{					if(G[i] > Gmax2) Gmax2 = G[i];			}			else	if(G[i] > Gmax3) Gmax3 = G[i];		}	}	// shrinking	for(i=0;i<active_size;i++)		if (be_shrunken(i, Gmax1, Gmax2, Gmax3, Gmax4))		{			active_size--;			while (active_size > i)			{				if (!be_shrunken(active_size, Gmax1, Gmax2, Gmax3, Gmax4))				{					swap_index(i,active_size);					break;				}				active_size--;			}		}	// unshrink, check all variables again before final iterations	if(unshrinked || max(Gmax1+Gmax2,Gmax3+Gmax4) > eps*10) return;		unshrinked = true;	reconstruct_gradient();	for(i=l-1;i>=active_size;i--)		if (!be_shrunken(i, Gmax1, Gmax2, Gmax3, Gmax4))		{			while (active_size < i)			{				if (be_shrunken(active_size, Gmax1, Gmax2, Gmax3, Gmax4))				{					swap_index(i,active_size);					break;				}				active_size++;			}			active_size++;		}}double Solver_NU::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_upper_bound(i))				lb1 = max(lb1,G[i]);			else if(is_lower_bound(i))				ub1 = min(ub1,G[i]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月激情综合网| 亚洲国产日韩精品| 狠狠色丁香婷婷综合久久片| 2024国产精品视频| 色婷婷av久久久久久久| 在线观看成人小视频| 一级特黄大欧美久久久| 亚洲国产色一区| 成人性生交大片免费看中文 | 日日夜夜精品视频天天综合网| 国产大陆亚洲精品国产| 日韩精品综合一本久道在线视频| ●精品国产综合乱码久久久久| 国产精品一区在线观看你懂的| 欧美精选午夜久久久乱码6080| 亚洲欧美偷拍卡通变态| 国产福利一区二区三区| 精品精品国产高清一毛片一天堂| 亚洲国产人成综合网站| 欧美亚洲免费在线一区| 亚洲免费毛片网站| a级精品国产片在线观看| 久久久久久久久岛国免费| 美女视频免费一区| 精品免费视频.| 麻豆国产精品视频| 日韩欧美成人一区二区| 久久狠狠亚洲综合| 日韩亚洲欧美在线| 美女mm1313爽爽久久久蜜臀| 日韩欧美卡一卡二| 国产一区在线观看视频| 久久伊人蜜桃av一区二区| 麻豆国产欧美日韩综合精品二区| 日韩精品一区二区三区中文精品| 奇米影视在线99精品| 日韩免费看网站| 久久精品国产精品亚洲红杏| 日韩亚洲欧美在线观看| 国产一区二区三区免费看| 久久久不卡网国产精品一区| 国产精品一区二区三区99| 国产日韩欧美精品综合| 国产69精品久久99不卡| 自拍偷在线精品自拍偷无码专区 | 亚洲美女在线国产| 在线观看91视频| 日韩精品乱码av一区二区| 精品日韩在线一区| 国产a级毛片一区| 综合激情成人伊人| 欧美精品高清视频| 激情丁香综合五月| 国产精品久久久久久久浪潮网站 | 亚洲一区二区在线播放相泽| 欧美日韩dvd在线观看| 久久精品久久综合| 国产精品视频一二三| 色丁香久综合在线久综合在线观看| 亚洲第一激情av| 国产亚洲精品免费| 在线亚洲精品福利网址导航| 国产在线不卡一卡二卡三卡四卡| 国产精品福利一区| 91精品国产综合久久久久| 国产精品18久久久久久vr| 亚洲国产精品麻豆| 久久在线观看免费| 精品视频一区三区九区| 99热这里都是精品| 亚洲国产成人av网| 国产亚洲精品aa| 欧美亚洲国产怡红院影院| 激情综合色播五月| 亚洲免费观看高清完整版在线观看熊| 91精品国产入口| 成人av午夜电影| 蜜桃精品视频在线| 一区二区三区小说| 国产日韩一级二级三级| 91精品国产福利在线观看 | 美女久久久精品| 亚洲精品五月天| 国产三级三级三级精品8ⅰ区| 欧美另类videos死尸| 成人av在线资源网站| 麻豆高清免费国产一区| 亚洲一区二区三区不卡国产欧美| 久久久综合视频| 欧美一区二区三区思思人| 91视频在线看| 丰满白嫩尤物一区二区| 国产一区二区三区| 免费不卡在线观看| 亚洲高清一区二区三区| 亚洲欧美日韩国产成人精品影院 | 日韩欧美精品三级| 91国偷自产一区二区三区成为亚洲经典 | 中文字幕一区二区三区四区不卡| 欧美成人性战久久| 欧美二区在线观看| 欧美精品aⅴ在线视频| 欧美自拍丝袜亚洲| av电影在线观看不卡| 国产成人av一区二区| 韩国欧美国产1区| 狠狠色综合播放一区二区| 美国欧美日韩国产在线播放| 秋霞av亚洲一区二区三| 午夜精品久久久久久久久久| 亚洲一区视频在线| 亚洲第一搞黄网站| 日本欧美韩国一区三区| 手机精品视频在线观看| 日韩黄色小视频| 日本vs亚洲vs韩国一区三区| 日本中文字幕一区| 老司机午夜精品| 国产成人综合视频| 成人激情视频网站| 91猫先生在线| 欧美日韩视频在线一区二区 | 欧美性大战久久久| 欧美日韩电影在线播放| 日韩一区二区在线观看视频 | 欧美一区二区三区四区在线观看| 制服.丝袜.亚洲.中文.综合| 日韩视频免费观看高清完整版在线观看 | 精品写真视频在线观看| 色网站国产精品| 日本电影欧美片| 欧美日韩国产成人在线91| 日韩一区二区免费电影| 日本一区二区三区高清不卡| 成人免费在线播放视频| 亚洲狠狠爱一区二区三区| 视频一区国产视频| 国产精品一区在线观看乱码| 懂色av一区二区在线播放| 色偷偷一区二区三区| 91精品国产入口| 亚洲国产高清aⅴ视频| 亚洲国产毛片aaaaa无费看| 久久99精品久久久久久| 成人99免费视频| 欧美日本精品一区二区三区| 久久婷婷综合激情| 亚洲精品国产高清久久伦理二区| 日本中文字幕一区二区视频| 成人在线一区二区三区| 欧美剧在线免费观看网站| 国产日韩欧美一区二区三区乱码 | 欧美日本免费一区二区三区| 久久久亚洲精华液精华液精华液| 精品一区免费av| 99久久久国产精品免费蜜臀| 欧美一区二区视频在线观看2020| 中文字幕av免费专区久久| 亚洲bt欧美bt精品777| 国产成a人亚洲| 91精品国产综合久久精品app | 久久久亚洲精品石原莉奈| 一个色在线综合| 国产成人亚洲综合a∨婷婷| 欧美色图天堂网| 国产精品视频一区二区三区不卡| 日本在线不卡视频| 一本色道**综合亚洲精品蜜桃冫| 欧美岛国在线观看| 亚洲午夜视频在线观看| 成人丝袜18视频在线观看| 欧美xxx久久| 天天色综合天天| 欧日韩精品视频| 亚洲天堂免费看| 国产成人av电影免费在线观看| 欧美一区午夜视频在线观看| 亚洲美女视频在线观看| 粉嫩av亚洲一区二区图片| 日韩欧美国产系列| 日韩国产精品91| 欧美日韩专区在线| 亚洲欧美另类小说| heyzo一本久久综合| 久久久精品影视| 国产精品一区二区无线| 精品成人免费观看| 精品亚洲porn| 精品国产髙清在线看国产毛片| 日韩精品五月天| 欧美日韩成人在线| 亚洲综合av网| 欧美综合一区二区| 亚洲一区二区三区视频在线播放 | 亚洲国产人成综合网站| 色94色欧美sute亚洲13| 亚洲九九爱视频| 色综合激情久久| 亚洲精品视频一区| 欧美亚洲动漫另类|