Advertisement
cermi

mlp tmva

Jul 3rd, 2012
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. void AddData(TMVA::Factory* factory, vector<vector<double> > &data, double learnTestRatio, const char *className)
  2. {
  3.     int firstTestEventIndex = learnTestRatio * data.size();
  4.     for(int i = 0; i < data.size(); ++i)
  5.     {
  6.         if (i < firstTestEventIndex)
  7.         {
  8.             factory->AddTrainingEvent(className, data[i], 1);
  9.         }
  10.         else
  11.         {
  12.             factory->AddTestEvent(className, data[i], 1);
  13.         }
  14.     }
  15. }
  16.  
  17. // .......
  18.  
  19.  
  20. gROOT->SetBatch(true);
  21.  
  22. vector<vector<double> > alphaData;
  23. vector<vector<double> > electronData;
  24. vector<vector<double> > gammaData;
  25. vector<vector<double> > muonData;
  26.  
  27. LoadData(m_AlphaStorage, alphaData);
  28. LoadData(m_ElectronStorage, electronData);
  29. LoadData(m_GammaStorage, gammaData);
  30. LoadData(m_MuonStorage, muonData);
  31.  
  32. TFile outputFile("tmva_multi.root", "RECREATE");
  33. TMVA::Factory* factory = new TMVA::Factory("multi", &outputFile, "V");
  34.  
  35. //add variables to the factory
  36. int numDim = alphaData[0].size();
  37. for(int i=0; i<numDim; i++)
  38. {
  39.     char name[10];
  40.     sprintf(name,"var%d",i+1);
  41.     factory->AddVariable(name, 'F');
  42. }
  43. OutputDebugStringF("Number of dimensions for LDA learning: %d\n", numDim);
  44.  
  45. AddData(factory, alphaData, 0.3, "Alpha");
  46. AddData(factory, electronData, 0.5, "Electron");
  47. AddData(factory, gammaData, 0.5, "Gamma");
  48. AddData(factory, muonData, 0.5, "Muon");
  49. factory->PrepareTrainingAndTestTree("", "");
  50.  
  51. factory->BookMethod(TMVA::Types::kMLP, "MLP", "HiddenLayers=N+3,N");
  52. factory->TrainAllMethods();
  53. factory->TestAllMethods();
  54. factory->EvaluateAllMethods();
  55.  
  56. outputFile.Close();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement