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

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

?? learn.cpp

?? 支持向量機(4)mySVM
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
#include <stdlib.h>
#include <string.h>
#include <fstream.h>
#include <math.h>
#include <float.h>
#include "globals.h"
#include "example_set.h"
#include "svm_c.h"
#include "parameters.h"
#include "kernel.h"
#include "svm_nu.h"
#include "version.h"

// global svm-objects
kernel_c* kernel=0;
parameters_c* parameters=0;
svm_c* svm;
example_set_c* training_set=0;

struct example_set_list{
  example_set_c* the_set;
  example_set_list* next;
};
example_set_list* test_sets = 0;


void print_help(){
  cout<<endl;
  cout<<"my_svm: train a svm from the given parameters and examples."<<endl<<endl;
  cout<<"usage: my_svm"<<endl
      <<"       my_svm <FILE>"<<endl
      <<"       my_svm <FILE1> <FILE2> ..."<<endl<<endl;
  cout<<"The input has to consist of:"<<endl
      <<"- the svm parameters"<<endl
      <<"- the kernel definition"<<endl
      <<"- the training set"<<endl
      <<"- one or more test sets (optional)"<<endl;

  cout<<endl<<"See the documentation for the input format. The first example set to be entered is considered to be the training set, all others are test sets. Each input file can consist of one or more definitions. If no input file is specified, the input is read from <stdin>."<<endl<<endl;

  cout<<endl<<"This software is free only for non-commercial use. It must not be modified and distributed without prior permission of the author. The author is not responsible for implications from the use of this software."<<endl;
  exit(0);
};


void read_input(istream& input_stream, char* filename){
  // returns number of examples sets read
  char* s = new char[MAXCHAR];
  char next;
  int is_linear=1; // linear kernel?
  next = input_stream.peek();
  while(! input_stream.eof()){
    if('#' == next){
      // ignore comment
      input_stream.getline(s,MAXCHAR);
    }
    else if('\n' == next){
      // ignore newline
      next = input_stream.get();
    }
    else if('@' == next){
      // new section
      input_stream >> s;
      if(0 == strcmp("@parameters",s)){
	// read parameters
	if(parameters == 0){
	  parameters = new parameters_c();
	  input_stream >> *parameters;
	  if(kernel != 0){
	    parameters->is_linear = is_linear;
	  };
	}
	else{
	  cout <<"*** ERROR: Parameters multiply defined"<<endl;
	  throw input_exception();
	};
      }
      else if(0==strcmp("@examples",s)){
	if(0 == training_set){
	  // input training set
	  training_set = new example_set_c();
	  if(0 != parameters){
	    training_set->set_format(parameters->default_example_format);
	  };
	  input_stream >> *training_set;	    
	  training_set->set_filename(filename);
	  cout<<"   read "<<training_set->size()<<" examples, format "<<training_set->my_format<<", dimension = "<<training_set->get_dim()<<"."<<endl;
	}
	else{
	  // input test sets
	  example_set_list* test_set = new example_set_list;
	  test_set->the_set = new example_set_c();
	  if(0 != parameters){
	    (test_set->the_set)->set_format(parameters->default_example_format);
	  };
	  input_stream >> *(test_set->the_set);
	  (test_set->the_set)->set_filename(filename);
	  test_set->next = test_sets;
	  test_sets = test_set;
	  cout<<"   read "<<(test_set->the_set)->size()<<" examples, format "<<(test_set->the_set)->my_format<<", dimension = "<<(test_set->the_set)->get_dim()<<"."<<endl;
	};
      }
      else if(0==strcmp("@kernel",s)){
	if(0 == kernel){
	  kernel_container_c k_cont;
	  input_stream >> k_cont;
	  kernel = k_cont.get_kernel();
	  is_linear = k_cont.is_linear;
	  if(parameters != 0){
	    parameters->is_linear = is_linear;
	  };
	}
	else{
	  cout <<"*** ERROR: Kernel multiply defined"<<endl;
	  throw input_exception();
	};
      };
    }
    else{
      // default = "@examples"
      if(0 == training_set){
	// input training set
	training_set = new example_set_c();
	if(0 != parameters){
	  training_set->set_format(parameters->default_example_format);
	};
	input_stream  >> *training_set;	    
	training_set->set_filename(filename);
	cout<<"   read "<<training_set->size()<<" examples, format "<<training_set->my_format<<", dimension = "<<training_set->get_dim()<<"."<<endl;
      }
      else{
	// input test sets
	example_set_list* test_set = new example_set_list;
	test_set->the_set = new example_set_c();
	if(0 != parameters){
	  (test_set->the_set)->set_format(parameters->default_example_format);
	};
	input_stream >> *(test_set->the_set);
	(test_set->the_set)->set_filename(filename);
	test_set->next = test_sets;
	test_sets = test_set;
	cout<<"   read "<<(test_set->the_set)->size()<<" examples, format "<<(test_set->the_set)->my_format<<", dimension = "<<(test_set->the_set)->get_dim()<<"."<<endl;
      };
    };
    next = input_stream.peek();
  };
  delete []s;
};


svm_result do_cv(){
  SVMINT number = parameters->cross_validation;
  SVMINT size = training_set->size();
  int verbosity = parameters->verbosity;
  if((number > size) || (0 >= number)){
    number = size; // leave-one-out testing
  };
  SVMINT cv_size = size / number;
  if(! parameters->cv_inorder){
    training_set->permute();
  };
  training_set->clear_alpha();
  example_set_c* cv_train=new example_set_c(); //=0;
  example_set_c* cv_test=new example_set_c(); //=0;
  svm_result train_result;
  svm_result test_result;
  svm_result train_sum;
  svm_result test_sum;
  train_sum.VCdim = 0;
  train_sum.loss=0;
  train_sum.loss_pos=0;
  train_sum.loss_neg=0;
  train_sum.MAE = 0;
  train_sum.MSE = 0;
  train_sum.accuracy = 0;
  train_sum.precision = 0;
  train_sum.recall=0;
  train_sum.number_svs=0;
  train_sum.number_bsv=0;
  test_sum.VCdim = 0;
  test_sum.loss=0;
  test_sum.loss_pos=0;
  test_sum.loss_neg=0;
  test_sum.MAE = 0;
  test_sum.MSE = 0;
  test_sum.accuracy = 0;
  test_sum.precision = 0;
  test_sum.recall=0;
  test_sum.number_svs=0;
  test_sum.number_bsv=0;
  SVMINT j;
  if(verbosity>2){
    if(parameters->cv_window>0){
      cout<<"beginning "<<(number-parameters->cv_window)<<" sliding window steps"<<endl;
    }
    else{
      cout<<"beginning "<<number<<"-fold crossvalidation"<<endl;
    };
  };
  for(SVMINT i=parameters->cv_window;i<number;i++){
    // do cv
    if(verbosity >= 3){
      cout<<"----------------------------------------"<<endl;
      cout<<(i+1);
      if(0 == i%10) cout<<"st";
      else if(1==i%10) cout<<"nd";
      else if(2==i%10) cout<<"rd";
      else cout<<"th";
      cout<<" step"<<endl;
    };
    //cout<<"From "<<i*cv_size<<" to "<<(i+1)*cv_size<<endl;
    cv_train->clear();
    cv_test->clear();
    cv_train->set_dim(training_set->get_dim());
    cv_test->set_dim(training_set->get_dim());
    if(training_set->initialised_y()){
      cv_train->set_initialised_y();
      cv_test->set_initialised_y();
    };
    if(verbosity>=4){
      cout<<"Initing examples sets"<<endl;
    };

    if(parameters->cv_window>0){
      // training window
      for(j=(i-parameters->cv_window)*cv_size;((j<i*cv_size)&&(j<size));j++){
	cv_train->put_example(training_set->get_example(j));
      };
      // test window
      for(j=i*cv_size;((j<(i+1)*cv_size)&&(j<size));j++){
	cv_test->put_example(training_set->get_example(j));
      };
    }
    else{
      for(j=i*cv_size;((j<(i+1)*cv_size)&&(j<size));j++){
	cv_test->put_example(training_set->get_example(j));
      };
      for(j=0;j<i*cv_size;j++){
	cv_train->put_example(training_set->get_example(j));
      };
      for(j=(i+1)*cv_size;j<size;j++){
	cv_train->put_example(training_set->get_example(j));
      };
    };
    cv_train->clear_alpha();
    cv_test->clear_alpha();
    cv_train->compress();
    cv_test->compress();

    if(verbosity>=4){
      cout<<"Setting up the SVM"<<endl;
    };
    kernel->init(parameters->kernel_cache,cv_train);
    svm->init(kernel,parameters);

    // train & test the svm
    if(verbosity>=4){
      cout<<"Training"<<endl;
    };
    //    cv_train->clear_alpha();

    train_result = svm->train(cv_train);
    if(verbosity>=4){
      cout<<"Testing"<<endl;
    };
    test_result = svm->test(cv_test,0);

    train_sum.VCdim += train_result.VCdim;
    train_sum.loss += train_result.loss;
    train_sum.loss_pos += train_result.loss_pos;
    train_sum.loss_neg += train_result.loss_neg;
    train_sum.MAE += train_result.MAE;
    train_sum.MSE += train_result.MSE;
    train_sum.pred_loss += train_result.pred_loss;
    train_sum.accuracy += train_result.accuracy;
    train_sum.precision += train_result.precision;
    train_sum.recall += train_result.recall;
    train_sum.number_svs += train_result.number_svs;
    train_sum.number_bsv += train_result.number_bsv;
    test_sum.loss += test_result.loss;
    test_sum.loss_pos += test_result.loss_pos;
    test_sum.loss_neg += test_result.loss_neg;
    test_sum.MAE += test_result.MAE;
    test_sum.MSE += test_result.MSE;
    test_sum.accuracy += test_result.accuracy;
    test_sum.precision += test_result.precision;
    test_sum.recall += test_result.recall;
    if(verbosity>=4){
      cout<<"Training set:"<<endl
	  <<"Loss: "<<train_result.loss<<endl;
      if(parameters->Lpos != parameters->Lneg){
	cout<<"  Loss+: "<<train_result.loss_pos<<endl;
	cout<<"  Loss-: "<<train_result.loss_neg<<endl;
      };
      cout<<"MAE: "<<train_result.MAE<<endl;
      cout<<"MSE: "<<train_result.MSE<<endl;
      cout<<"VCdim: "<<train_result.VCdim<<endl;
      if(parameters->is_pattern){
	cout<<"Accuracy  : "<<train_result.accuracy<<endl
	    <<"Precision : "<<train_result.precision<<endl
	    <<"Recall    : "<<train_result.recall<<endl;
      };
      cout<<"Support Vectors : "<<train_result.number_svs<<endl;
      cout<<"Bounded SVs     : "<<train_result.number_bsv<<endl;
      cout<<"Test set:"<<endl
	  <<"Loss: "<<test_result.loss<<endl;
      if(parameters->Lpos != parameters->Lneg){
	cout<<"  Loss+: "<<test_result.loss_pos<<endl;
	cout<<"  Loss-: "<<test_result.loss_neg<<endl;
      };
      if(parameters->is_pattern){
	cout<<"Accuracy  : "<<test_result.accuracy<<endl
	    <<"Precision : "<<test_result.precision<<endl
	    <<"Recall    : "<<test_result.recall<<endl;
      };
    };
  };
  parameters->verbosity = verbosity;
  number-=parameters->cv_window;
  if(verbosity > 1){
    cout<<"----------------------------------------"<<endl;
    cout<<"Results of "<<number<<"-fold cross-validation:"<<endl;
    cout<<"-- Training set: --"<<endl
	<<"Loss: "<<train_sum.loss/number<<endl;
    if(parameters->Lpos != parameters->Lneg){
      cout<<"  Loss+: "<<train_sum.loss_pos/number<<endl;
      cout<<"  Loss-: "<<train_sum.loss_neg/number<<endl;
    };
    cout<<"MAE: "<<train_sum.MAE/number<<endl;
    cout<<"MSE: "<<train_sum.MSE/number<<endl;
    cout<<"VCdim: "<<train_sum.VCdim/number<<endl;
    if(parameters->is_pattern){
      cout<<"Accuracy  : "<<train_sum.accuracy/number<<endl
	  <<"Precision : "<<train_sum.precision/number<<endl
	  <<"Recall    : "<<train_sum.recall/number<<endl;
    };
    cout<<"Support Vectors : "<<((SVMFLOAT)train_sum.number_svs)/number<<endl;
    cout<<"Bounded SVs     : "<<((SVMFLOAT)train_sum.number_bsv)/number<<endl;
    cout<<"-- Test set: --"<<endl
	<<"Loss: "<<test_sum.loss/number<<endl;
    if(parameters->Lpos != parameters->Lneg){
      cout<<"  Loss+: "<<test_sum.loss_pos/number<<endl;
      cout<<"  Loss-: "<<test_sum.loss_neg/number<<endl;
    };
    cout<<"MAE: "<<test_sum.MAE/number<<endl;
    cout<<"MSE: "<<test_sum.MSE/number<<endl;

    if(parameters->is_pattern){
      cout<<"Accuracy  : "<<test_sum.accuracy/number<<endl
	  <<"Precision : "<<test_sum.precision/number<<endl
	  <<"Recall    : "<<test_sum.recall/number<<endl;
    };
  };
  test_sum.VCdim = train_sum.VCdim/number;
  test_sum.loss /= number;
  test_sum.loss_pos /= number;
  test_sum.loss_neg /= number;
  test_sum.MAE /= number;
  test_sum.MSE /= number;
  test_sum.pred_loss = train_sum.pred_loss;
  test_sum.accuracy /= number;
  test_sum.precision /= number;
  test_sum.recall /= number;
  test_sum.number_svs = train_sum.number_svs/number;
  test_sum.number_bsv = train_sum.number_bsv/number;
  delete cv_test;
  delete cv_train;

  return test_sum;
};


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费精品国自产拍在线不卡| 午夜精品久久久久久不卡8050| 亚洲激情中文1区| 亚洲va欧美va人人爽午夜| 免费在线观看一区| 成人三级伦理片| 欧美三区在线观看| 26uuu另类欧美亚洲曰本| 亚洲欧美综合网| 男女男精品视频网| av不卡在线播放| 在线综合+亚洲+欧美中文字幕| 国产色爱av资源综合区| 一二三区精品福利视频| 国产在线看一区| 欧美综合天天夜夜久久| 久久青草国产手机看片福利盒子| 亚洲色图视频网| 激情综合色综合久久综合| 91久久精品网| 欧美—级在线免费片| 天堂蜜桃一区二区三区 | 欧美午夜视频网站| 久久伊99综合婷婷久久伊| 亚洲一卡二卡三卡四卡| 国产乱人伦偷精品视频不卡| 欧美日韩亚洲丝袜制服| 国产欧美va欧美不卡在线| 午夜精品一区在线观看| av中文字幕在线不卡| 日韩欧美久久久| 亚洲国产一区视频| 国产成人免费9x9x人网站视频| 91精品视频网| 亚洲男人的天堂一区二区| 极品少妇一区二区| 欧美人xxxx| 亚洲欧美另类图片小说| 国产高清精品网站| 91精品蜜臀在线一区尤物| 国产精品国产馆在线真实露脸 | 久久无码av三级| 午夜视频久久久久久| 91丨porny丨蝌蚪视频| 久久久久久久综合日本| 免费xxxx性欧美18vr| 在线精品视频免费观看| 国产精品精品国产色婷婷| 极品尤物av久久免费看| 日韩一级视频免费观看在线| 亚洲电影在线播放| 91年精品国产| 成人欧美一区二区三区黑人麻豆| 国产麻豆视频精品| 精品少妇一区二区三区视频免付费 | 日韩av一区二| 欧美午夜影院一区| 一区二区三区波多野结衣在线观看 | 欧美一区二区三区喷汁尤物| 玉足女爽爽91| 91传媒视频在线播放| 亚洲毛片av在线| 97久久精品人人澡人人爽| 日本一二三不卡| 丁香激情综合国产| 欧美国产精品v| 国产ts人妖一区二区| 国产香蕉久久精品综合网| 国产永久精品大片wwwapp| 精品国产免费视频| 久久精品久久综合| 欧美v日韩v国产v| 久草精品在线观看| 精品国产成人系列| 国产一区视频在线看| 精品剧情v国产在线观看在线| 麻豆精品在线视频| 精品国产免费久久 | 欧美国产欧美亚州国产日韩mv天天看完整 | 在线观看av一区| 亚洲国产一区二区三区| 欧美日韩中文字幕一区| 亚洲午夜激情网页| 欧美女孩性生活视频| 免费高清成人在线| 久久综合给合久久狠狠狠97色69| 国内精品嫩模私拍在线| 国产亚洲一区二区三区四区 | 亚洲日本丝袜连裤袜办公室| 91福利社在线观看| 夜夜嗨av一区二区三区网页| 欧美日韩1234| 韩国一区二区三区| 国产精品三级av在线播放| 91麻豆免费看| 国产一区二区在线电影| 国产女人18水真多18精品一级做| jlzzjlzz国产精品久久| 亚洲一区二区三区视频在线| 日韩一级在线观看| 国产91在线观看| 樱桃视频在线观看一区| 欧美军同video69gay| 国精产品一区一区三区mba视频 | 99精品久久只有精品| 亚洲曰韩产成在线| 欧美一级二级在线观看| 国产成人aaa| 一区二区三区国产豹纹内裤在线 | 极品瑜伽女神91| 中文字幕亚洲区| 欧美日本在线视频| 国产宾馆实践打屁股91| 一区二区欧美视频| 欧美变态口味重另类| 成+人+亚洲+综合天堂| 午夜私人影院久久久久| 久久久影院官网| 在线观看av不卡| 国产剧情一区二区三区| 一级女性全黄久久生活片免费| 欧美α欧美αv大片| 色综合久久久久久久| 久草这里只有精品视频| 亚洲免费观看在线视频| 欧美mv和日韩mv国产网站| 色一情一乱一乱一91av| 韩国一区二区三区| 亚洲综合成人在线| 久久久久久久久97黄色工厂| 欧美日韩三级一区二区| 国产精品18久久久久久久久久久久| 亚洲在线中文字幕| 久久久www免费人成精品| 欧美日韩国产另类一区| 成人做爰69片免费看网站| 日本成人中文字幕在线视频| √…a在线天堂一区| 欧美精品一区二区不卡| 欧美一a一片一级一片| 丁香婷婷综合色啪| 视频精品一区二区| 亚洲欧美视频一区| 久久久91精品国产一区二区精品 | 蜜桃传媒麻豆第一区在线观看| 亚洲精品久久嫩草网站秘色| 久久理论电影网| 夜夜操天天操亚洲| 国产女主播视频一区二区| 日韩欧美区一区二| 欧美日韩精品二区第二页| 91婷婷韩国欧美一区二区| 国产精品小仙女| 久久精品国产亚洲一区二区三区 | 91精品国产一区二区三区| 色又黄又爽网站www久久| 成人午夜精品在线| 久久aⅴ国产欧美74aaa| 日韩福利视频网| 亚洲不卡在线观看| 亚洲欧美欧美一区二区三区| 亚洲国产精品精华液ab| 久久久精品黄色| 久久影音资源网| 26uuu亚洲| xf在线a精品一区二区视频网站| 日韩三级视频在线观看| 欧美日韩精品系列| 欧美视频在线一区| 91福利小视频| 欧美无砖砖区免费| 欧美在线短视频| 一本色道久久综合亚洲91| youjizz国产精品| 成人美女视频在线观看18| 粉嫩在线一区二区三区视频| 国产盗摄一区二区| 国产精品1区二区.| 国产精品996| 国产成人亚洲综合a∨猫咪| 国产老女人精品毛片久久| 韩国成人在线视频| 国产在线不卡一区| 国产精品99久久久久久久vr| 国产成人午夜视频| 国产成人av福利| 成人精品免费视频| 99国产精品久久久久久久久久| av影院午夜一区| 色8久久精品久久久久久蜜| 在线观看国产精品网站| 欧美日韩一区 二区 三区 久久精品| 欧美三级中文字幕在线观看| 欧美性猛交xxxx乱大交退制版| 欧美日韩高清影院| 91精品国产色综合久久| 欧美成人精品二区三区99精品| 久久综合色婷婷| 国产精品剧情在线亚洲| 一区二区高清免费观看影视大全|