From 4bb08c7f73992fe07ff5845b21c376fa7e266b8d Mon Sep 17 00:00:00 2001 From: Baptiste LENIAU <baptiste.leniau@subatech.in2p3.fr> Date: Mon, 7 Nov 2016 13:46:21 +0100 Subject: [PATCH] Add the possibility to choose the number of training events --- Utils/XSM/MLP/Generate/Generate_XSM.cxx | 20 ++++++++++++------ Utils/XSM/MLP/Generate/Train_XS.cxx | 12 ++++++++--- .../XSM/MLP/Generate/include/Generate_XSM.hxx | 2 +- Utils/cgui/html/__init__.pyc | Bin 216 -> 210 bytes Utils/cgui/html/backend.pyc | Bin 1351 -> 1327 bytes Utils/cgui/html/htmlHelper.pyc | Bin 7633 -> 7513 bytes Utils/cgui/html/model.pyc | Bin 3114 -> 3078 bytes 7 files changed, 24 insertions(+), 10 deletions(-) diff --git a/Utils/XSM/MLP/Generate/Generate_XSM.cxx b/Utils/XSM/MLP/Generate/Generate_XSM.cxx index 72c1b525d..f241ca401 100644 --- a/Utils/XSM/MLP/Generate/Generate_XSM.cxx +++ b/Utils/XSM/MLP/Generate/Generate_XSM.cxx @@ -97,10 +97,14 @@ int main(int argc, char ** argv){ } ProgressBar(1,1); - FillMapName(); - DumpInputNeuron("_tmp/include_Train_XS/TrainingInput.root"); - Generate_tmva_factory_input(); + + cout << "Proportion of data to be used for training ? [0-100]" <<endl; + double ProportionOfTraining = 0 ; + cin >> ProportionOfTraining ; + DumpInputNeuron("_tmp/include_Train_XS/TrainingInput.root"); + Generate_tmva_factory_input(ProportionOfTraining); + CreateInfoFile(); cout << "â•─────────────────────────────────────────────────────────────────────╮" << endl; @@ -446,14 +450,18 @@ void FillMapName() } //-------------------------------------------------------------------------------------------------- -void Generate_tmva_factory_input() +void Generate_tmva_factory_input(double ProportionOfTraining) { + ofstream InputNetwork("_tmp/include_Train_XS/InputVariables.cxx"); for(map<ZAI,string>::iterator it = fMapName.begin() ; it != fMapName.end() ; it++ ) InputNetwork <<"factory->AddVariable( \"" << it->second << "\" , \"" << it->second << "\", \"IsotopicFraction\", 'F' );"<<endl; - InputNetwork <<"factory->AddVariable( \"Time\" , \"Time\" , \"seconds\", 'F' );"<<endl; - InputNetwork.close(); + InputNetwork <<"factory->AddVariable( \"Time\" , \"Time\" , \"seconds\", 'F' );"<<endl<<endl; + + ProportionOfTraining /=100; + InputNetwork <<"double PropTraining = "<< ProportionOfTraining << endl; + InputNetwork.close(); } //-------------------------------------------------------------------------------------------------- diff --git a/Utils/XSM/MLP/Generate/Train_XS.cxx b/Utils/XSM/MLP/Generate/Train_XS.cxx index ff19949aa..f54c9d107 100644 --- a/Utils/XSM/MLP/Generate/Train_XS.cxx +++ b/Utils/XSM/MLP/Generate/Train_XS.cxx @@ -106,9 +106,15 @@ void Train_XS_Time(int INDICE) // Apply additional cuts on the signal and background samples (can be different) TCut mycut = ""; // for example: TCut mycut = "abs(var1)<0.5 && abs(var2-0.5)<1"; + Long64_t NEvents = regTree->GetEntries(); + Long64_t NTraining = PropTraining * NEvents ; + Long64_t NTesting = NEvents - NTraining ; + + std::stringstream Samples_Parameters ; + Samples_Parameters << "nTrain_Regression=" << NTraining <<":"<< "nTest_Regression=" << NTesting <<":SplitMode=Random:NormMode=NumEvents:!V"; + // tell the factory to use all remaining events in the trees after training for testing: - factory->PrepareTrainingAndTestTree( mycut, - "nTrain_Regression=0:nTest_Regression=0:SplitMode=Random:NormMode=NumEvents:!V" ); + factory->PrepareTrainingAndTestTree( mycut, Samples_Parameter.str() ); // If no numbers of events are given, half of the events in the tree are used // for training, and the other half for testing: @@ -122,7 +128,7 @@ void Train_XS_Time(int INDICE) // "...:CutRangeMin[2]=-1:CutRangeMax[2]=1"...", where [2] is the third input variable std::stringstream Name; - Name<< OUTPUT[INDICE]; + Name << OUTPUT[INDICE]; // Neural network (MLP) factory->BookMethod( TMVA::Types::kMLP, Name.str().c_str(), "!H:!V:VarTransform=Norm:NeuronType=tanh:NCycles=20000:HiddenLayers=N,N:TestRate=6:TrainingMethod=BFGS:Sampling=0.3:SamplingEpoch=0.8:ConvergenceImprove=1e-6:ConvergenceTests=15:!UseRegulator" ); diff --git a/Utils/XSM/MLP/Generate/include/Generate_XSM.hxx b/Utils/XSM/MLP/Generate/include/Generate_XSM.hxx index 5057cd3b1..200b25cf9 100644 --- a/Utils/XSM/MLP/Generate/include/Generate_XSM.hxx +++ b/Utils/XSM/MLP/Generate/include/Generate_XSM.hxx @@ -68,7 +68,7 @@ void Run_Sequential(); /* PRINT INFO */ void PrintFinalSteps(); -void Generate_tmva_factory_input(); +void Generate_tmva_factory_input(double ProportionOfTraining); /* SCRIPT GENERATION */ void GenerateScript_Parallel(int threads); diff --git a/Utils/cgui/html/__init__.pyc b/Utils/cgui/html/__init__.pyc index 21f5311380d76192cd164204a4940c1be178f634..8159a1886485e300be9e536568a2eb68fc16252f 100644 GIT binary patch delta 55 zcmcb?c!`mN`7<w<kg9ORM2=ErYX$}e{o>@J#FFF;{hZXi%*0ZC$ASX=oc!d(9DQdW K$Kc?J%ZvcNVi7C= delta 61 zcmcb_c!QCH`7<w<Q0M>fi5#VxjtmS8`k}?CMaB9h8JYPxIhm>Y0YU!m!TQcVj=@ke L-aWHq;sPT8U-J{+ diff --git a/Utils/cgui/html/backend.pyc b/Utils/cgui/html/backend.pyc index fc3f0a6847ee4f86cddf8c19843ba954d21b93c5..0e6798a87b752db8e18843a730a73842305229db 100644 GIT binary patch delta 190 zcmX@kwVsQE`7<w<kg9ORMvgj0Wh({-2L0mXqQsKq4E>zcyv)Q>eaC_V{ha*d#2kHR iAIIR}$q6jdn@=$o5v_P~1M_ww4Q?h<o%CdNRs{gG(mMwL delta 214 zcmZ3_b)1WX`7<w<Q0M>fjU081nhp#M4EmwPsYS*5B^jCdIXRiB`T;@y?!o%bK90dq jGTuG2WU?QN^yVXsMI>sOT*ADaBukn}QY}51pH%?>&B#HF diff --git a/Utils/cgui/html/htmlHelper.pyc b/Utils/cgui/html/htmlHelper.pyc index b5e515edb14b87b70e5f90f020ce9ed8d7b275ec..2510b5a4e48791376c96bd1d9146d525373eba5b 100644 GIT binary patch delta 902 zcmca;ebb7A`7<w<kg9ORMvhiSWm^UY2L0mXqQsKq4E>zcyv)Q>eaC_V{ha*d#2kHR zAIIR}$%#VBlW#JfB~q>Y<abOLh*YaQnTzEKk!s~9o3XAWR_$hWHcKX=6|dl6CtmS) zE)o>G@um?Q#`2rL@LeNbv5=q|v5G$s8xWIc3V$J5?NyPBM5}!#O02o+la0jJ5Nqyc iHHl_o13`ZCM@eSl728M)6RmjibeYY>I(hOWS$hDL;~<Fu delta 1026 zcmca<b<vuG`7<w<Q0M>fjU26vn$8Ri4EmwPsYS*5B^jCdIXRiB`T;@y?!o%bK90dq zGTuG2Wb#Ha<;j;B&yu7=e)1!x3nb}Kp8SLP2}wHSC(E&}Bu&R=PBu#>(zHxI%f+#| zhvPqKAtt~1EEhYeHtpl%*eu5zN2*Qx_^y$v<(hyRX<F1Ly9u2nG2jA)zmTY-UF0H( xI%bKIX2)gH%-?)WyqUCslHc4d$xMQl%^RhRNKg*UjPjFJWj2%Mjmc87_5k-DM#=yH diff --git a/Utils/cgui/html/model.pyc b/Utils/cgui/html/model.pyc index 88f5e87b3412035d3f5fa06275934bd57de88310..a60ed5e549f50a46c2a4ff8312be46450f579b37 100644 GIT binary patch delta 279 zcmZ1_(I&yc{F#?aNL4suBZob!vIPSJgMM*xQDRAQhJH?JUS?vczGFdweolUJVvfGE zk7ID~<cVxjle<{&5u<kVM7DlLVibZ6P3HJWtlG`fIlG88SaNbQcQTO%%T4Cxkp%#v C30M>W delta 315 zcmZpZSS7*1{F#?asPljLMh<&cO*;k#2K~_D)S_bjl8ns!oSe*5{eU2U_h5ZzAID%Q w8SkE1GFgXPa&j~4ebRJnp2t?kNSc<(0UV!5)3LdZvzs(aYDlwS@)K?)0BuQNcmMzZ -- GitLab