Esempio n. 1
0
void
PerformTesting(){

	DebugPrint ( "Entering Perform Testing function.", __FILE__, __LINE__, PROG_FLOW);

	DataTest();

	NodeTest();

	BuffTest();

	NameSpaceTest();

	SchedTest();
}
int main()
{
  std::ofstream out("prediction.txt");

  Dataset dataMy;
  Dataset dataMisha;


  Dataset dataTeach;
  Dataset dataTest, dataTest1;
  std::string str = "train1.csv";
  std::string str1 = "test1.csv";
  LoadTeachDataset(str, &dataTeach, 2);
  LoadTestDataset(str1, &dataTest, 2);
  LoadTestDataset(str1, &dataTest1, 2);
  
  vector<double> h, h1;
// дл¤ ¤дра ≈пачечникова
//   h.push_back(3.111);
//   h.push_back(2.349);

// дл¤ квартического ¤дра
//   h.push_back(3.83);
//   h.push_back(3.2);
  h.push_back(3.9);
  h.push_back(3.1);

  NaiveBayesKernelOtherDensity nb2(2, h);
  nb2.Learn(dataTeach);
  nb2.Classify(&dataTest);
//   NaiveBayesKernelOtherDensity nb22(2, h1);
//   nb22.Learn(dataTeach);
//   nb22.Classify(&dataTest1);

  //size_t err = LOO_h_vector<NaiveBayesKernelOtherDensity>(h, dataTeach);
  //std::cout << err << std::endl;
  
//   double minH = searchHvector_Force<NaiveBayesKernelOtherDensity>(2.1, 4.1, 0.1, h, 1, dataTeach);
//   std::cout << minH << std::endl;
 
  for (size_t index = 0; index < dataTest.size(); ++index)
  {
    out << dataTest[index].class_label << std::endl;
    dataMy.push_back(dataTest[index]);
    //dataMisha.push_back(dataTest1[index]);
  }
 
  Dataset _dataTeach;
  Dataset _dataTest, _dataTest1;
  std::string _str = "train2.csv";
  std::string _str1 = "test2.csv";
  LoadTeachDataset(_str, &_dataTeach, 10);
  LoadTestDataset(_str1, &_dataTest, 10);
  LoadTestDataset(_str1, &_dataTest1, 10);

  vector<double> _h, _h1;
// дл¤ ¤дра ≈пачечникова
//   _h.push_back(10);
//   _h.push_back(10.8);
//   _h.push_back(0.2);
//   _h.push_back(0.156);
//   _h.push_back(0.1325);
//   _h.push_back(171);
//   _h.push_back(89.7);
//   _h.push_back(52.4);
//   _h.push_back(16.8);
//   _h.push_back(81.3);

// дл¤ квартического ¤дра
//   _h.push_back(10.3102);
//   _h.push_back(10.1);
//   _h.push_back(0.2);
//   _h.push_back(0.157);
//   _h.push_back(0.1325);
//   _h.push_back(171);
//   _h.push_back(89.6);
//   _h.push_back(53.1);
//   _h.push_back(16.8);
//   _h.push_back(81);

  _h.push_back(10.3112);
  _h.push_back(10.1);
  _h.push_back(0.2);
  _h.push_back(0.157);
  _h.push_back(0.1335);
  _h.push_back(169);
  _h.push_back(90.5);
  _h.push_back(53.1);
  _h.push_back(16.8);
  _h.push_back(81.4);

 // size_t _err = LOO_h_vector<NaiveBayesKernelOtherDensity>(_h, _dataTeach);
  //std::cout << _err << std::endl;

//   double _minH = searchHvector_Force<NaiveBayesKernelOtherDensity>(80.4, 82.4, 0.1, _h, 9, _dataTeach);
//   std::cout << _minH << std::endl;


  NaiveBayesKernelOtherDensity _nb(2, _h);
  _nb.Learn(_dataTeach);
  _nb.Classify(&_dataTest);

//   NaiveBayesKernelOtherDensity _nb2(2, _h1);
//   _nb2.Learn(_dataTeach);
//   _nb2.Classify(&_dataTest1);

  

  for (size_t index = 0; index < _dataTest.size(); ++index)
  {
    out << _dataTest[index].class_label << std::endl;
    dataMy.push_back(_dataTest[index]);
    //dataMisha.push_back(_dataTest1[index]);
  }
  out.close();

//   vector<vector<size_t>> result(2, vector<size_t>(2));
//   size_t res = DataTest(dataMisha, dataMy, result);
//   std::cout << (double)res << std::endl;
  
  //std::ifstream fin("out1.csv");
  std::ifstream fin("ans.txt");
  if (!fin)
  {
    std::cout << "err";
    return 0;
  }

  std::cout << "begin" << std::endl;
  while (!fin.eof())
  {
    size_t class_label;
    fin >> class_label;
    Object obj;
    obj.class_label = class_label;
    dataMisha.push_back(obj);
  }
  vector<vector<size_t>> result(2, vector<size_t>(2));
  size_t res = DataTest(dataMisha, dataMy, result);
  std::cout << (double)res / 8340.0 << std::endl;
  return 0;
}