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

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

?? svm_nu.cpp

?? mySvm的最新源程序
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include "svm_nu.h"/** * * nu SVM * */void svm_nu_regression_c::init(kernel_c* new_kernel, parameters_c* new_parameters){  svm_c::init(new_kernel,new_parameters);  lambda_nu = 0;  sum_alpha_nu = 0;  qp.m = 2;  epsilon_pos=0;  epsilon_neg=0;  if(new_parameters->realC <= 0){    new_parameters->realC =1;  };  nu = new_parameters->nu * new_parameters->realC;};SVMFLOAT svm_nu_regression_c::nabla(const SVMINT i){  if(is_alpha_neg(i) > 0){    return( sum[i] - all_ys[i]);  }  else{    return(-sum[i] + all_ys[i]);  };};void svm_nu_regression_c::reset_shrinked(){  svm_c::reset_shrinked();  sum_alpha_nu = 0;};int svm_nu_regression_c::is_alpha_neg(const SVMINT i){  // variable i is alpha*  int result;  if(all_alphas[i] > 0){    result = 1;  }  else if(all_alphas[i] == 0){    SVMFLOAT k = sum[i] - all_ys[i] + lambda_eq;    if(k+lambda_nu>0){      result = -1;    }    else if(-k+lambda_nu>0){      result = 1;    }    else{      result = 2*((i+at_bound[i])%2)-1;    };  }  else{    result = -1;  };  return result;};SVMFLOAT svm_nu_regression_c::lambda(const SVMINT i){  // size lagrangian multiplier of the active constraint  SVMFLOAT alpha;  SVMFLOAT result = 0;  alpha=all_alphas[i];  if(alpha>is_zero){    // alpha*    if(alpha-Cneg >= - is_zero){      // upper bound active      result = -lambda_eq-lambda_nu-nabla(i);    }    else{      result = -abs(nabla(i)+lambda_eq+lambda_nu);    };  }  else if(alpha >= -is_zero){    // lower bound active    if(is_alpha_neg(i) > 0){      result = nabla(i) + lambda_eq+lambda_nu;    }    else{      result = nabla(i)-lambda_eq+lambda_nu;    };  }  else if(alpha+Cpos <= is_zero){    // upper bound active    result = lambda_eq -lambda_nu - nabla(i);  }  else{    result = -abs(nabla(i)-lambda_eq+lambda_nu);  };  return result;};int svm_nu_regression_c::feasible(const SVMINT i){  // is direction i feasible to minimize the target function  // (includes which_alpha==0)  if(at_bound[i] >= shrink_const){ return 0; };  SVMFLOAT alpha;  SVMFLOAT result;  alpha=all_alphas[i];  //  feasible_epsilon=-1;  if(alpha-Cneg >= - is_zero){    // alpha* at upper bound    result = -lambda_eq-lambda_nu-nabla(i);    if(result>=-feasible_epsilon){      return 0;     };  }  else if((alpha<=is_zero) && (alpha >= -is_zero)){    // lower bound active    if(is_alpha_neg(i) > 0){      result = nabla(i) + lambda_eq+lambda_nu;    }    else{      result = nabla(i)-lambda_eq+lambda_nu;    };    if(result>=-feasible_epsilon){      return 0;     };  }  else if(alpha+Cpos <= is_zero){    // alpha at upper bound    result = lambda_eq -lambda_nu- nabla(i);    if(result>=-feasible_epsilon){      return 0;     };  }  else{    // not at bound    result= abs(nabla(i)+is_alpha_neg(i)*lambda_eq+lambda_nu);    if(result<=feasible_epsilon){      return 0;     };  };  return 1;};void svm_nu_regression_c::init_optimizer(){  lambda_nu_WS = 0;  lambda_nu = 0;  sum_alpha_nu=0;  qp.m = 2;  svm_c::init_optimizer();  smo.init(parameters->is_zero,parameters->convergence_epsilon,working_set_size*working_set_size*10);  epsilon_pos=0;  epsilon_neg=0;  Cpos /= (SVMFLOAT)examples_total;  Cneg /= (SVMFLOAT)examples_total;};void svm_nu_regression_c::project_to_constraint(){  SVMFLOAT alpha;  SVMFLOAT my_alpha_sum=sum_alpha;  SVMFLOAT my_alpha_nu_sum=sum_alpha_nu-nu;  SVMINT total_pos = 0;  SVMINT total_neg = 0;  SVMINT i;  for(i=0;i<examples_total;i++){    alpha = all_alphas[i];    my_alpha_sum += alpha;    my_alpha_nu_sum += abs(alpha);    if((alpha>is_zero) && (alpha-Cneg < -is_zero)){      total_neg++;    }    else if((alpha<-is_zero) && (alpha+Cpos > is_zero)){      total_pos++;    };  };  //project  if((total_pos > 0) && (total_neg > 0)){    for(i=0;i<examples_total;i++){      alpha = all_alphas[i];      if((alpha>is_zero) && (alpha-Cneg < -is_zero)){	all_alphas[i] -= (my_alpha_sum+my_alpha_nu_sum)/2/total_neg;      }      else if((alpha<-is_zero) && (alpha+Cpos > is_zero)){	all_alphas[i] -= (my_alpha_sum-my_alpha_nu_sum)/2/total_pos;      };    };  };};int svm_nu_regression_c::convergence(){  long time_start = get_time();  SVMFLOAT pos_sum = 0;  SVMFLOAT neg_sum = 0;  SVMINT total=0;  SVMFLOAT alpha_sum=0;  SVMFLOAT alpha_nu_sum=0;  SVMFLOAT alpha=0;  SVMINT i;  int result=1;  // actual convergence-test  total = 0; alpha_sum=0;  SVMINT total_pos = 0;  SVMINT total_neg = 0;  for(i=0;i<examples_total;i++){    alpha = all_alphas[i];    alpha_sum += alpha;    alpha_nu_sum += abs(alpha);    if((alpha>is_zero) && (alpha-Cneg < -is_zero)){      // alpha^* => nabla = lambda_eq + lambda_nu      neg_sum += nabla(i); //sum[i];      total_neg++;    }    else if((alpha<-is_zero) && (alpha+Cpos > is_zero)){      // alpha => nabla = -lambda_eq + lambda_nu      pos_sum += nabla(i); //-sum[i];      total_pos++;    };  };  if((total_pos>0) && (total_neg > 0)){    lambda_nu = -(neg_sum/total_neg+pos_sum/total_pos)/2;    lambda_eq = -(neg_sum/total_neg-pos_sum/total_pos)/2;    if(target_count>2){      if(parameters->verbosity>=5){	cout<<"Re-estimating lambdas from WS"<<endl;      };      total_pos=0; total_neg=0;      pos_sum = 0; neg_sum = 0;      // estimate lambdas from WS      for(i=0;i<working_set_size;i++){	alpha = all_alphas[working_set[i]];	if((alpha>is_zero) && (alpha-Cneg < -is_zero)){	  // alpha^* => nabla = lambda_eq + lambda_nu	  neg_sum += nabla(working_set[i]);	  total_neg++;	  	}	else if((alpha<-is_zero) && (alpha+Cpos > is_zero)){	  // alpha => nabla = -lambda_eq + lambda_nu	  pos_sum += nabla(working_set[i]);	  total_pos++;	};      };      if((total_pos>0) && (total_neg > 0)){	lambda_nu = -(neg_sum/total_neg+pos_sum/total_pos)/2;	lambda_eq = -(neg_sum/total_neg-pos_sum/total_pos)/2;      };      if(target_count>30){	i = working_set[target_count%working_set_size];	if(parameters->verbosity>=5){	  cout<<"Setting lambdas to nabla("<<i<<")"<<endl;	};	if(is_alpha_neg(i) > 0){	  lambda_eq = -nabla(i);	}	else{	  lambda_eq = nabla(i);	  };	lambda_nu=0;      };    };    if(parameters->verbosity>= 4){      cout<<"lambda_eq = "<<lambda_eq<<endl;      cout<<"lambda_nu = "<<lambda_nu<<endl;    };  }  else{    // lambda_eq and lambda_nu are a bit harder to find:    SVMFLOAT max1=-infinity;    SVMFLOAT max2=-infinity;    SVMFLOAT max3=-infinity;    SVMFLOAT max4=-infinity;    SVMFLOAT the_nabla;    for(i=0;i<examples_total;i++){      alpha = all_alphas[i];      the_nabla = nabla(i);      if(alpha-Cneg>=-is_zero){	if(the_nabla>max4) max4 = the_nabla;      }      else if(alpha+Cpos<=is_zero){	if(the_nabla>max3) max3 = the_nabla;      }      else if((alpha <= is_zero) && (alpha>=-is_zero)){	if(is_alpha_neg(i)){	  if(the_nabla>max1) max1 = the_nabla;	}	else{	  if(the_nabla>max2) max2 = the_nabla;	};      };    };    //    cout<<"max = ("<<max1<<", "<<max2<<", "<<max3<<", "<<max4<<endl;        if(max1==-infinity) max1=0;    if(max2==-infinity) max2=0;    if(max3==-infinity) max3=0;    if(max4==-infinity) max4=0;    lambda_eq = (max1+max3-max2-max4)/4;    lambda_nu = (max1+max2-max3-max4)/4;    //    cout<<((max1+max3)/2)<<" <= lambda_eq <= "<<(-(max2+max4)/2)<<endl;    //    cout<<((max1+max2)/2)<<" <= lambda_nu <= "<<(-(max3+max4)/2)<<endl;    if(parameters->verbosity>= 4){      cout<<"*** no SVs in convergence(), lambda_eq = "<<lambda_eq<<"."<<endl;      cout<<"                             lambda_nu = "<<lambda_nu<<"."<<endl;    };  };  // check linear constraint  if(abs(alpha_sum+sum_alpha) > convergence_epsilon){    // equality constraint violated    if(parameters->verbosity>= 3){      cout<<"alpha_sum "<<alpha_sum<<endl;      cout<<"sum_alpha "<<sum_alpha<<endl;      cout<<"No convergence: equality constraint violated: |"<<(alpha_sum+sum_alpha)<<"| >> 0"<<endl;    };    project_to_constraint();    result = 0;    };  // note: original nu is already multiplied by C in init_optimizer  if(abs(alpha_nu_sum+sum_alpha_nu-nu) > convergence_epsilon){    // equality constraint violated    if(parameters->verbosity>= 3){      cout<<"alpha_nu_sum "<<alpha_nu_sum<<endl;      cout<<"sum_alpha_nu "<<sum_alpha_nu<<endl;      cout<<"No convergence: nu-equality constraint violated: |"<<(alpha_nu_sum+sum_alpha_nu-nu)<<"| >> 0"<<endl;    };    project_to_constraint();    result = 0;    };  i=0;  while((i<examples_total) && (result != 0)){    if(lambda(i)>=-convergence_epsilon){      i++;    }    else{      result = 0;    };  };  time_convergence += get_time() - time_start;  return result;};void svm_nu_regression_c::init_working_set(){  if((((SVMFLOAT)examples_total) * nu) > parameters->realC*(((SVMFLOAT)examples_total) - ((SVMFLOAT)(examples_total%2)))){    nu = (((SVMFLOAT)examples_total) - ((SVMFLOAT)(examples_total%2))) /      ((SVMFLOAT)examples_total);    nu *= parameters->realC;    nu -= is_zero; // just to make sure    cout<<"ERROR: nu too large, setting nu = "<<nu<<endl;  };  if(examples->initialised_alpha()){    // check bounds    project_to_constraint();  };  // calculate nu-sum  sum_alpha_nu=0;  SVMFLOAT the_nu_sum = 0;  SVMFLOAT the_sum=0;  SVMINT ni;  for(ni=0;ni<examples_total;ni++){    the_sum += all_alphas[ni];    the_nu_sum += abs(all_alphas[ni]);  };  if((abs(the_sum) > is_zero) || (abs(the_nu_sum-nu) > is_zero)){    // set initial feasible point    // neg alpha: -nu/2n    // pos alpha:  nu/2p    SVMFLOAT new_nu_alpha = nu/((SVMFLOAT)(examples_total-examples_total%1));    for(ni=0;ni<examples_total/2;ni++){      examples->put_alpha(ni,new_nu_alpha);      examples->put_alpha(examples_total-1-ni,-new_nu_alpha);    };    if(examples_total%2 != 0){      examples->put_alpha(1+examples_total/2,0);    };    examples->set_initialised_alpha();  };  svm_c::init_working_set();   };void svm_nu_regression_c::shrink(){  // move shrinked examples to back  if(to_shrink>examples_total/20){    SVMINT i;    SVMINT last_pos=examples_total;    for(i=0;i<last_pos;i++){      if(at_bound[i] >= shrink_const){	// shrink i	sum_alpha += all_alphas[i];	sum_alpha_nu += is_alpha_neg(i)*all_alphas[i];	last_pos--;	examples->swap(i,last_pos);	kernel->overwrite(i,last_pos);	sum[i] = sum[last_pos];	at_bound[i] = at_bound[last_pos];      };    };        examples_total = last_pos;    kernel->set_examples_size(examples_total);        if(parameters->verbosity>=4){      cout<<"shrinked to "<<examples_total<<" variables"<<endl;    };  };};void svm_nu_regression_c::optimize(){  // optimizer-specific call  // get time  long time_start = get_time();  qp.n = working_set_size;  SVMINT i;  SVMINT j;  // equality constraint  qp.b[0] = 0;  qp.b[1] = 0;  for(i=0;i<working_set_size;i++){    qp.b[0] += all_alphas[working_set[i]];    if(qp.A[i] > 0){      qp.b[1] += all_alphas[working_set[i]];    }    else{      qp.b[1] -= all_alphas[working_set[i]];    };  };  // set initial optimization parameters  SVMFLOAT new_target=0;  SVMFLOAT old_target=0;  SVMFLOAT target_tmp;  for(i=0;i<working_set_size;i++){    target_tmp = primal[i]*qp.H[i*working_set_size+i]/2;    for(j=0;j<i;j++){      target_tmp+=primal[j]*qp.H[j*working_set_size+i];    };    target_tmp+=qp.c[i];    old_target+=target_tmp*primal[i];  };  SVMFLOAT new_constraint_sum=0;  SVMFLOAT new_nu_constraint_sum=0;  SVMINT pos_count = 0;  SVMINT neg_count = 0;  // optimize  int KKTerror=1;  int convError=0;  if(feasible_epsilon>is_zero){    smo.set_max_allowed_error(feasible_epsilon);  };  int result = smo.smo_solve_const_sum(&qp,primal);  lambda_WS = smo.get_lambda_eq();  lambda_nu_WS = smo.get_lambda_nu();  if(parameters->verbosity>=5){    cout<<"smo ended with result "<<result<<endl;    cout<<"lambda_WS = "<<lambda_WS<<endl;    cout<<"lambda_nu_WS = "<<lambda_nu_WS<<endl;  };  // clip  new_constraint_sum=qp.b[0];  new_nu_constraint_sum=qp.b[1];  for(i=0;i<working_set_size;i++){    // check if at bound    if(primal[i] <= is_zero){      // at lower bound      primal[i] = qp.l[i];    }    else if(primal[i] - qp.u[i] >= -is_zero){      // at upper bound      primal[i] = qp.u[i];    };                                new_constraint_sum -= qp.A[i]*primal[i];    new_nu_constraint_sum -= primal[i];  };  // enforce equality constraint  pos_count=0;  neg_count=0;  for(i=0;i<working_set_size;i++){    if((primal[i] < qp.u[i]) && (primal[i] > qp.l[i])){      if(qp.A[i]>0){	pos_count++;      }      else{	neg_count++;      };    };  };  if((pos_count>0) && (neg_count>0)){    SVMFLOAT pos_add = (new_constraint_sum+new_nu_constraint_sum)/(2*pos_count);    SVMFLOAT neg_add = (new_constraint_sum-new_nu_constraint_sum)/(2*neg_count);    //    cout<<"Adding ("<<pos_add<<", "<<neg_add<<")"<<endl;    for(i=0;i<working_set_size;i++){      if((primal[i] > qp.l[i]) && 	 (primal[i] < qp.u[i])){	// real sv	if(qp.A[i]>0){	  primal[i] += pos_add;	}	else{	  primal[i] -= neg_add;	};      };    };  }  else if((abs(new_constraint_sum)   > is_zero) ||	  (abs(new_nu_constraint_sum) > is_zero)){    // error, can't get feasible point    if(parameters->verbosity >= 5){      cout<<"WARNING: No SVs, constraint_sum = "<<new_constraint_sum<<endl	  <<"              nu-constraint_sum = "<<new_nu_constraint_sum<<endl;    };    old_target = -1e20;     convError=1;  };  // test descend  new_target=0;  for(i=0;i<working_set_size;i++){    // attention: loqo changes one triangle of H!    target_tmp = primal[i]*qp.H[i*working_set_size+i]/2;    for(j=0;j<i;j++){      target_tmp+=primal[j]*qp.H[j*working_set_size+i];    };    target_tmp+=qp.c[i];    new_target+=target_tmp*primal[i];  };  if(new_target < old_target){    KKTerror = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品专区在线影院重磅| 日韩一区二区在线观看| 久久精品国产久精国产爱| 国产精品视频一区二区三区不卡| 欧美美女一区二区| 色综合久久99| 丁香五精品蜜臀久久久久99网站| 亚洲成av人片一区二区三区| 国产精品无人区| 久久综合狠狠综合久久激情| 欧美精品vⅰdeose4hd| 日本精品一级二级| 欧美综合一区二区| 在线观看精品一区| 日本电影欧美片| 日本精品视频一区二区三区| 色av一区二区| 欧美午夜精品电影| 欧美美女激情18p| 欧美成人猛片aaaaaaa| 日韩一卡二卡三卡| 国产午夜一区二区三区| 国产日韩欧美精品在线| 中文字幕永久在线不卡| 亚洲人成电影网站色mp4| 一二三区精品福利视频| 亚洲一区二区三区激情| 日韩精品国产精品| 国产精选一区二区三区| 99精品黄色片免费大全| 在线免费不卡视频| 日韩欧美资源站| 国产精品网曝门| 亚洲成a人在线观看| 久久精品国产色蜜蜜麻豆| 丰满放荡岳乱妇91ww| 在线观看日产精品| 国产视频不卡一区| 亚洲超碰精品一区二区| 国产盗摄一区二区| 欧美久久久久久蜜桃| 欧美激情一二三区| 亚洲图片一区二区| 成人av动漫网站| 日韩情涩欧美日韩视频| 一区二区三区成人在线视频| 精品在线亚洲视频| 色婷婷激情久久| 久久精品网站免费观看| 亚洲一线二线三线视频| 国产精品 日产精品 欧美精品| 欧美性xxxxx极品少妇| 最近中文字幕一区二区三区| 麻豆免费看一区二区三区| 欧美性猛片aaaaaaa做受| 欧美国产视频在线| 国产美女视频一区| 欧美电影免费观看高清完整版| 亚洲黄色免费电影| 成人黄色一级视频| 亚洲精品v日韩精品| 国产精品77777| 久久久精品黄色| 国产一区三区三区| 久久嫩草精品久久久久| 91麻豆精品国产91久久久久久| 国产精品色呦呦| 国产成人午夜视频| 国产欧美日韩激情| 成人自拍视频在线观看| 国产亚洲午夜高清国产拍精品| 九一九一国产精品| 久久久久久久久伊人| 国产999精品久久| 国产精品久久久一本精品 | 91精品国产综合久久精品| 亚洲图片欧美一区| 日韩亚洲国产中文字幕欧美| 日本欧美一区二区三区乱码| 欧美日韩高清一区二区不卡| 人人超碰91尤物精品国产| 久久综合色之久久综合| 不卡av在线网| 午夜精品久久久久久不卡8050| 欧美精品一卡二卡| 国产精品一二三| 亚洲美女淫视频| 欧美不卡一区二区三区四区| 国产老女人精品毛片久久| 1区2区3区国产精品| 91精品在线观看入口| 丁香婷婷综合色啪| 日韩电影在线看| 亚洲欧洲成人精品av97| 欧美一区永久视频免费观看| 国产a视频精品免费观看| 婷婷久久综合九色国产成人 | 久久精品人人做人人综合 | 国产精品你懂的在线欣赏| 欧美午夜片在线看| 春色校园综合激情亚洲| 日韩精品一二三区| 一区二区激情小说| 国产免费成人在线视频| 日韩欧美亚洲国产另类| 色国产精品一区在线观看| 懂色av一区二区三区免费观看| 日韩电影在线免费观看| 亚洲国产欧美另类丝袜| **性色生活片久久毛片| 久久九九99视频| 欧美一级片免费看| 欧美疯狂性受xxxxx喷水图片| www.欧美精品一二区| 成人性视频网站| 国产乱码一区二区三区| 精品一区二区久久久| 美女视频一区二区三区| 午夜精品福利一区二区蜜股av| 亚洲精品视频在线看| 国产精品乱人伦中文| 国产精品理论在线观看| 中文字幕高清不卡| 欧美韩国一区二区| 久久久久久毛片| 国产网站一区二区三区| 久久精品一区二区三区av| 国产精品污www在线观看| 中文字幕av一区二区三区| 国产精品人妖ts系列视频| 欧美激情一区二区三区全黄 | 国产精品视频看| 亚洲欧美激情视频在线观看一区二区三区 | 日韩精品影音先锋| 久久久噜噜噜久久人人看 | 色哟哟亚洲精品| 欧美人妇做爰xxxⅹ性高电影| 8x8x8国产精品| 久久久不卡网国产精品二区| 国产精品视频第一区| 亚洲精品第一国产综合野| 午夜a成v人精品| 成人精品视频网站| 欧美日韩国产片| 国产欧美日韩久久| 亚洲一二三四在线观看| 久久99在线观看| 色综合天天综合给合国产| 日韩你懂的电影在线观看| 国产精品对白交换视频| 日韩精品电影一区亚洲| 播五月开心婷婷综合| 欧美tk—视频vk| 亚洲国产一区二区视频| av在线不卡网| 久久久www成人免费毛片麻豆 | 亚洲午夜免费视频| 大尺度一区二区| 精品国产91亚洲一区二区三区婷婷| 国产精品丝袜久久久久久app| 青青草原综合久久大伊人精品优势| 99精品国产视频| 国产精品久线观看视频| 国产盗摄视频一区二区三区| 91精品国产综合久久福利 | 麻豆国产精品777777在线| 在线观看不卡视频| 亚洲欧美福利一区二区| 99热99精品| 最新国产の精品合集bt伙计| 国产一区二区三区美女| 久久午夜电影网| 国产成人av电影在线观看| 精品国产三级电影在线观看| 蜜桃久久精品一区二区| 精品欧美一区二区久久| 国产伦理精品不卡| 欧美高清在线视频| 99riav一区二区三区| 一区二区三区精品在线观看| 91国产视频在线观看| 午夜精品久久久| 精品国产伦一区二区三区观看方式 | 美女诱惑一区二区| 欧美国产激情一区二区三区蜜月| 国产99久久久精品| 亚洲精品综合在线| 欧美二区三区的天堂| 国内精品国产成人国产三级粉色 | 婷婷国产在线综合| 久久一日本道色综合| 白白色 亚洲乱淫| 婷婷综合五月天| 国产精品视频看| 欧美精品久久一区二区三区| 国产黄色精品视频| 亚洲成a人片在线不卡一二三区| 日韩精品一区二区三区swag| 不卡一区在线观看| 日韩激情av在线|