13 void TMVA::annconvergencetest(TString dataset, TDirectory *lhdir )
15 TString jobName = lhdir->GetName();
16 static int icanvas = -1;
18 TCanvas* c =
new TCanvas( Form(
"MLPConvergenceTest_%s",jobName.Data()), Form(
"MLP Convergence Test, %s",jobName.Data()),
19 100 + (icanvas)*40, 0 + (icanvas+1)*20, 600, 580*0.8 );
21 TH1* estimatorHistTrain = (TH1*)lhdir->Get(
"estimatorHistTrain" );
22 TH1* estimatorHistTest = (TH1*)lhdir->Get(
"estimatorHistTest" );
24 Double_t m1 = estimatorHistTrain->GetMaximum();
25 Double_t m2 = estimatorHistTest ->GetMaximum();
26 Double_t max = TMath::Max( m1, m2 );
27 m1 = estimatorHistTrain->GetMinimum();
28 m2 = estimatorHistTest ->GetMinimum();
29 Double_t min = TMath::Min( m1, m2 );
30 estimatorHistTrain->SetMaximum( max + 0.1*(max - min) );
31 estimatorHistTrain->SetMinimum( min - 0.1*(max - min) );
32 estimatorHistTrain->SetLineColor( 2 );
33 estimatorHistTrain->SetLineWidth( 2 );
34 estimatorHistTrain->SetTitle( TString(
"MLP Convergence Test") );
36 estimatorHistTest->SetLineColor( 4 );
37 estimatorHistTest->SetLineWidth( 2 );
39 estimatorHistTrain->GetXaxis()->SetTitle(
"Epochs" );
40 estimatorHistTrain->GetYaxis()->SetTitle(
"Estimator" );
41 estimatorHistTrain->GetXaxis()->SetTitleOffset( 1.20 );
42 estimatorHistTrain->GetYaxis()->SetTitleOffset( 1.65 );
44 estimatorHistTrain->Draw(
"hist");
45 estimatorHistTest ->Draw(
"samehist");
48 TLegend *legend=
new TLegend( 1 - c->GetRightMargin() - 0.45, 1-c->GetTopMargin() - 0.20,
49 1 - c->GetRightMargin() - 0.05, 1-c->GetTopMargin() - 0.05 );
51 legend->AddEntry(estimatorHistTrain,
"Training Sample",
"l");
52 legend->AddEntry(estimatorHistTest,
"Test sample",
"l");
54 legend->SetMargin( 0.3 );
57 TMVAGlob::plot_logo();
60 TString fname = dataset+
"/plots/annconvergencetest";
61 TMVAGlob::imgconv( c, fname );
64 void TMVA::annconvergencetest(TString dataset, TString fin , Bool_t useTMVAStyle )
67 TMVAGlob::Initialize( useTMVAStyle );
70 TFile* file = TMVAGlob::OpenFile( fin );
74 TString metmlp=
"Method_MLP";
75 UInt_t ninst = TMVAGlob::GetListOfTitles(metmlp,titles,file->GetDirectory(dataset.Data()));
77 cout <<
"Could not locate directory 'Method_MLP' in file " << fin << endl;
81 TIter keyIter(&titles);
84 while ((key = TMVAGlob::NextKey(keyIter,
"TDirectory"))) {
85 lhdir = (TDirectory *)key->ReadObj();
86 annconvergencetest(dataset, lhdir );