Changeset 1236
- Timestamp:
- Mar 15, 2008, 5:33:43 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/ensemble_test.cc
r1227 r1236 23 23 */ 24 24 25 #include "Suite.h" 26 25 27 #include "yat/utility/Matrix.h" 26 28 #include "yat/classifier/SubsetGenerator.h" … … 46 48 47 49 48 int main( const int argc,constchar* argv[])50 int main(int argc, char* argv[]) 49 51 { 50 52 using namespace theplu::yat; 53 test::Suite suite(argc, argv); 54 55 suite.err() << "testing ensemble" << std::endl; 51 56 52 std::ostream* error; 53 if (argc>1 && argv[1]==std::string("-v")) 54 error = &std::cerr; 55 else { 56 error = new std::ofstream("/dev/null"); 57 if (argc>1) 58 std::cout << "ensemble_test -v : for printing extra information\n"; 59 } 60 *error << "testing ensemble" << std::endl; 61 bool ok = true; 62 63 *error << "loading data" << std::endl; 57 suite.err() << "loading data" << std::endl; 64 58 std::ifstream is("data/nm_data_centralized.txt"); 65 59 utility::Matrix data_core(is); 66 60 is.close(); 67 61 68 *error<< "create MatrixLookup" << std::endl;62 suite.err() << "create MatrixLookup" << std::endl; 69 63 classifier::MatrixLookup data(data_core); 70 64 classifier::KernelFunction* kf = new classifier::PolynomialKernelFunction(); 71 *error<< "Building kernel" << std::endl;65 suite.err() << "Building kernel" << std::endl; 72 66 classifier::Kernel_SEV kernel(data,*kf); 73 67 74 68 75 *error<< "load target" << std::endl;69 suite.err() << "load target" << std::endl; 76 70 is.open("data/nm_target_bin.txt"); 77 71 classifier::Target target(is); … … 80 74 81 75 { 82 *error<< "create ensemble of ncc" << std::endl;76 suite.err() << "create ensemble of ncc" << std::endl; 83 77 classifier::NCC<statistics::EuclideanDistance> ncc; 84 78 classifier::CrossValidationSampler sampler(target,3,3); … … 86 80 classifier::EnsembleBuilder<classifier::SupervisedClassifier, 87 81 classifier::MatrixLookup> ensemble(ncc, data, sampler); 88 *error<< "build ensemble" << std::endl;82 suite.err() << "build ensemble" << std::endl; 89 83 ensemble.build(); 90 84 std::vector<std::vector<statistics::Averager> > result; … … 93 87 94 88 { 95 *error<< "create ensemble of ncc" << std::endl;89 suite.err() << "create ensemble of ncc" << std::endl; 96 90 classifier::MatrixLookupWeighted data_weighted(data); 97 91 classifier::NCC<statistics::EuclideanDistance> ncc; … … 101 95 classifier::EnsembleBuilder<classifier::SupervisedClassifier, 102 96 classifier::MatrixLookupWeighted> ensemble(ncc, data_weighted, sampler); 103 *error<< "build ensemble" << std::endl;97 suite.err() << "build ensemble" << std::endl; 104 98 ensemble.build(); 105 99 std::vector<std::vector<statistics::Averager> > result; … … 107 101 } 108 102 109 *error<< "create KernelLookup" << std::endl;103 suite.err() << "create KernelLookup" << std::endl; 110 104 classifier::KernelLookup kernel_lookup(kernel); 111 *error<< "create svm" << std::endl;105 suite.err() << "create svm" << std::endl; 112 106 classifier::SVM svm; 113 *error<< "create Subsets" << std::endl;107 suite.err() << "create Subsets" << std::endl; 114 108 classifier::CrossValidationSampler sampler(target,3,3); 115 109 classifier::SubsetGenerator<classifier::KernelLookup> cv(sampler, 116 110 kernel_lookup); 117 111 118 *error<< "create ensemble" << std::endl;112 suite.err() << "create ensemble" << std::endl; 119 113 classifier::EnsembleBuilder<classifier::SVM, classifier::KernelLookup> 120 114 ensemble(svm, kernel_lookup, sampler); 121 *error<< "build ensemble" << std::endl;115 suite.err() << "build ensemble" << std::endl; 122 116 ensemble.build(); 123 117 std::vector<std::vector<statistics::Averager> > result; … … 128 122 out(i)=ensemble.validate()[0][i].mean(); 129 123 statistics::AUC roc; 130 *error<< roc.score(target,out) << std::endl;124 suite.err() << roc.score(target,out) << std::endl; 131 125 132 126 { 133 *error<< "create ensemble" << std::endl;127 suite.err() << "create ensemble" << std::endl; 134 128 classifier::EnsembleBuilder<classifier::SVM, classifier::KernelLookup> 135 129 ensemble(svm, kernel_lookup, sampler); 136 *error<< "test validate() before build()\n";130 suite.err() << "test validate() before build()\n"; 137 131 ensemble.validate(); 138 132 std::vector<std::vector<statistics::Averager> > result; 139 *error<< "test predict() before build()\n";133 suite.err() << "test predict() before build()\n"; 140 134 ensemble.predict(kernel_lookup, result); 141 135 } 142 136 delete kf; 143 137 144 if (error!=&std::cerr) 145 delete error; 146 147 if(ok) 148 return 0; 149 return -1; 150 138 return suite.return_value(); 151 139 }
Note: See TracChangeset
for help on using the changeset viewer.