Log of /trunk/tmva/src/MethodLikelihood.cxx
Parent Directory
Revision
44507 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 4 12:30:41 2012 UTC (2 years, 7 months ago) by
axel
File length: 44814 byte(s)
Diff to
previous 38609
Remove
using namespace std;
from Riostream.h, which has huge consequences for all of ROOT.
Riostream.h is now a simple wrapper for fstream, iostream, iomanip for backward compatibility; Riosfwd.h simply wraps iosfwd.
Because of templates and their inline functions, Riostream.h needed to be included in headers, too (e.g. TParameter.h), which violated the assumption that Riostream.h is not exposing its using namespace std to headers.
ROOT now requires R__ANSISTREAM, R__SSTREAM, which does not change the set of supported compilers.
Without "using namespace std", several identifiers are now prefixed by std::; e.g. roofit/* source files now have a using namespace std to keep their coding style.
TFile::MakeProject() now generates "using namespace std" to convert the CINT-style class names into C++ ones.
Revision
37399 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 8 15:22:07 2010 UTC (4 years, 1 month ago) by
evt
File length: 43799 byte(s)
Diff to
previous 36966
several bug fixes to TMVA copied from dev
fix to multiple reader problem, ROOT-bug 76076, make static variable in
event non-static
fix valgrind error due to uninitialized values
fix 5 more valgrind error detected in unit tests
fix to sub-optimal BDT settings
fix bug fix in Likelihood with VarTransforms, fixed unit tests breaks
LikelihoodD and LikelihoodPCA
Revision
23334 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Sat Apr 19 18:38:57 2008 UTC (6 years, 9 months ago) by
brun
File length: 42319 byte(s)
Diff to
previous 21630
From Joerg Stelzer:
The following list contains the changes since ROOT release 5.18/00
* Dataset preparation:
o Preselection: Preselection cuts now work on arrays. Previously used TEventlists (only event wise pass/fail) were replaced by TreeFormulas (sensitive to array position). Thanks to Arnaud Robert (LPNHE) for his contributions.
o Tree assignment to signal/background: Signal and background trees can now be assigned individually to training and test purposes. This is achieved by setting the third parameter of the Factory::AddSignalTree/AddBackgroundTree() methods to "Train" or "Test" (const string). The only restriction is that either none or all signal (background) trees need to be specified with that option. It is possible to mix the two modes, for instance one can assign individual training and test trees for signal, but not for background.
o Direct tree building: For increased flexibility, users can also directly input signal and background, training and test events to TMVA, instead of letting TMVA interpret user-given trees. Note that either one of the two approaches must be chosen (no mix). The syntax of the new calls is described in the macros/TMVAnalysis.C test macro. --> The User runs the event loop, copies for each event the input variables into a std:vector, and "adds" them to TMVA, using the dedicated calls: factory->AddSignalTrainingEvent( vars, signalWeight ); (and replacing "Signal" by "Background", and "Training" by "Test"). After the event loop, everything continues as in the standard method.
* Methods:
o Simulated Annealing in Cuts,FDA: Entirely new Simulated Annealing (SA) algorithm for global minimisation in presence of local minima (optionally used in cut optimisation (MethodCuts) and the Function Discriminant (MethodFDA)). The SA algorithm features two approaches, one starting at minimal temperature (ie, from within a local minimum), slowly increasing, and another one starting at high temperature, slowly decreasing into a minimum. Code developed and written by Kamil Bartlomiej Kraszewski, Maciej Kruk and Krzysztof Danielowski from IFJ and AGH/UJ, Krakow, Poland.
o Cuts: Added printouts, quoting the explicit cut application for given signal efficiency. In case of transformations of the input variables, the full expressions are given. Added warning to Fisher in case of variable normalisation.
o Cuts: Added physical limits to min/max cuts if smart option is used.
o BDT: removed hard-coded weight file name; now, paths and names of weight files are written as TObjStrings into ROOT target file, and retrieved for plotting; available weight files (corresponding to target used) can be chosen from pop-up GUI.
o BDT: Changes in handling negative weights in BDT algorithm. Events with negative weights now get their weight reduced (*= 1/boostweight) rather than increased (*= boostweight) as the other events do. Otherwise these events tend to receive increasingly stronger boosts, because their effects on the separation gain are as if background events were selected as signal and vice versa (hence the events tend to be "wanted" in signal nodes, but are boosted as if they were misclassified). In addition, the separation indices are protected against negative S or S+B returning 0.5 (no separation at all) in case that occurs.
o BDT: In addition there is a new BDT option to ignore events with negative event weights for the training. This option could be used as a cross check of a "worst case" solution for Monte Carlo samples with negative weights. Note that the results of the testing phase still include these events and are hence objective.
o BDT: Added randomised trees: similar to the "Random Forests" technique of Leo Breiman and Adele Cutler, it uses the "bagging" algorithm and bases the determination of the best node-split during the training on a random subset of variables only, which is individually chosen for each split.
o BDT: Move to TRandom2 for the "bagging" algorithm and throw random weights according to Poisson statistics. (This way the random weights are closer to a resampling with replacement algorithm.)
o TMlpANN: Extended options to TMultilayerPerceptron learning methods. Added example for reader application: TMVApplication.py
* GUI:
o Parallel Coordinates: New GUI button for Parallel Coordinate plotting.
* Application:
o Added Python example for reader application: TMVApplication.py
* Bug fixes:
o TMlpANN: fixed crash with ROOT>=5.17 when using large number of test events; also corrected bias in cross validation: before the test events were used, which led to an overestimated performance evaluation in case of a small number of degrees of freedom; separate now training tree in two parts for training and validation with configurable ValidationFraction
o Cuts: Corrected inconsistency in MethodCuts: the signal efficiency written out into the weight file does not correspond to the center of the bin within which the background rejection is maximised (as before) but to the lower left edge of it. This is because the cut optimisation algorithm determines the best background rejection for all signal efficiencies belonging into a bin. Since the best background rejection is in general obtained for the lowest possible signal efficiency, the reference signal efficiency is the lowest value in the bin.
o Cuts: Fixed Cuts (optimisaton) method -> event with smallest value was not included in search for optimal cut (thanks to Dimitris Varouchas, LAL-Orsay, for helping us detecting the problem).
o Genetic Algorithm: Corrected configurable random seed in GeneticAlgorithm (thanks to David Gonzalez Maline, CERN, for pointing this out)
o GUI: Fixes in input-variable and MVA plotting: under/over-flow numbers given on plots were not properly normalised; the maximum histogram ranges have been increased to avoid cut-offs. Thanks to Andreas Wenger, Zuerich, for pointing these out.
Revision
21630 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Jan 10 19:40:44 2008 UTC (7 years ago) by
brun
File length: 42305 byte(s)
Diff to
previous 21079
From Joerg Stelzer:
* documentation of all classes ( I hope I caught all 17 of them, but I didn't know how to check except by looking through all the files)
* plugin capabilities for user developed multivariate classifiers
* An improved GUI where the user can print the significance curves for adjustable signal and background yields
* A fix to a compiler complaint that Axel told me about
Revision
20882 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by
rdm
File length: 41757 byte(s)
Diff to
previous 20284
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.
Revision
20284 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Oct 9 21:19:14 2007 UTC (7 years, 3 months ago) by
brun
File length: 41757 byte(s)
Diff to
previous 20226
From Joerg Stelzer:
* Bug fix:
A segmentation fault was fixed that appeared when the user gave signal and background data in form of TChains.
* Feature:
The search speed of the BinarySearchTree has been increased by improving the tree balance.
Revision
20226 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Oct 5 11:14:06 2007 UTC (7 years, 3 months ago) by
brun
File length: 41392 byte(s)
Diff to
previous 19826
From Joerg Stelzer:
New features:
- Cuts can now be applied independently for signal and background in the PrepareTrainingAndTestTree phase.
- Previously, the input variables used by the Fisher classifier were always normalised to [-1,1] by default. This has been removed, so that it is now in the hand of the user to decide whether or not normalisation is applied. Choose "Normalise" ("!Normalise") for normalisation (no normalisation), default is "!Normalise".
- Significant speed improvements for PDERS. For the options to benefit from this, see the example "PDERSkNN" in macros/TMVAnalysis.C or examples/TMVAnalysis.cxx.
Thanks to Kamil Kraszewski and friends from Cracow for implementing this.
- Re-established backward compatibility of TMVA code down to ROOT version 4.02/00.
- Shortened BDT weight-file and standalone C++ reader class by 20% and 50%, respectively.
- Weight expressions can now be set individually for signal and background via
the calls factory->SetSignalWeightExpression( "<signal-expression>" ) and factory->SetBackgroundWeightExpression( "<background-expression>" ). The former call is still supported.
- Overtraining test: a new GUI button (corresponding to an extension of the macro "mvas.C") is available to plot a comparison of the classifier response distributions for the training and independent test data sets. The results of a Kolmogorov-Smirnov compatibility test are printed on stdout and plots.
- The cuts corresponding to a given signal efficiency can be retrieved via the reader. An example for this is implemented in "macros/TMVApplication.C". Briefly,
retrieve the cuts classifier object as follows:
TMVA::MethodCuts* mcuts = (TMVA::MethodCuts*)reader->FindMVA( "CutsGA method" );,
define cut vectors (a vector of pairs can also be retrieved via overloaded
GetCuts function): std::vector<Double_t> cutsMin; std::vector<Double_t> cutsMax;
and fill them via: mcuts->GetCuts( wantedSignalEfficiency, cutsMin, cutsMax );
- Clean up of code and include headers to improve forward declaration.
- Bug fixes:
- Memory leaks in the Reader class are removed: the Reader is now properly destructed (deletion of all handled classifiers). Thereby, pointer problems in the destructors of Fisher and SVM have been found and fixed.
- The macro TMVApplication.C produced a segmentation fault when run from the ROOT prompt
(the compiled version in the examples directory worked fine). This problem is now solved.
- The color selection has been adapted to the new color palette that was introduced in ROOT 5.16. The macros should now look alike with all ROOT versions (above 4.02/00).
- Very important bug fix: the application of cuts in the PrepareTrainingAndTestTree
call in conjunction with the use of several trees (ie, several consecutive calls
of factory->AddSignalTree(...) or factory->AddBackgroundTree(...)), lead to a wrong application of the cut to all trees but the first one in the signal and background chains. More details can be provided if requested - please contact
the authors. We wish to thank Manfred Groh for spotting and analysing the problem!
- Some compilers complained about a missing #include "TMVA/Configurable.h" in the Reader
class. This has been fixed. - Fixed problem in RuleFit's standalone class when using integer input variables.
- Fixed compilation problem when using decorrelation preprocessing of input variables in C++ standalone reader classes.
- Fixed bug in number-of-plots calculation in correlation script. - Fixed bug in printing of number of events in case of several trees (no impact on results).
- Fixed inconsistency between cut optimisation and cut reading: the aligned definition of min and max cuts is: a variable passes a cut if: min < var <= max.
(This inconsistency may have affected your results if you used cut optimisation together with integer variables. Please check with the new version.)
- Fixed macro path in TMVAGui.C to fix problem when running the GUI in the ROOT/TMVA distribution.
Also: TMVA Style moved from TMVAlogon into tmvaglob to fix style problem when running in the ROOT/TMVA distribution.
- Fixed typos in weight file names in MLP and BDT macros - Fixed "MinMax" and "RMS" options of PDERS (thanks to Junpei Maeda for spotting this)
- Fixed compilation problem in MetricEuler class on some platforms
Revision
16805 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Nov 17 16:00:03 2006 UTC (8 years, 2 months ago) by
brun
File length: 24353 byte(s)
Diff to
previous 16768
New version of TMVA fixing many coding conventions violations.
New version of the tmva test suite. To execute it run the script
TMVAnalysis.C
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.