ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
GiniIndex.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : GiniIndex *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: Implementation of the GiniIndex as separation criterion *
11  * Large Gini Indices (maximum 0.5) mean , that the sample is well *
12  * mixed (same amount of signal and bkg) *
13  * bkg. Small Indices mean, well separated. *
14  * general defniniton: *
15  * Gini(Sample M) = 1 - (c(1)/N)^2 - (c(2)/N)^2 .... - (c(k)/N)^2 *
16  * Where: M is a smaple of whatever N elements (events) *
17  * that belong to K different classes *
18  * c(k) is the number of elements that belong to class k *
19  * for just Signal and Background classes this boils down to: *
20  * Gini(Sample) = 2s*b/(s+b)^2 *
21  * *
22  * *
23  * Authors (alphabetical): *
24  * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
25  * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
26  * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada *
27  * *
28  * Copyright (c) 2005: *
29  * CERN, Switzerland *
30  * U. of Victoria, Canada *
31  * Heidelberg U., Germany *
32  * *
33  * Redistribution and use in source and binary forms, with or without *
34  * modification, are permitted according to the terms listed in LICENSE *
35  * (http://ttmva.sourceforge.net/LICENSE) *
36  **********************************************************************************/
37 
38 #ifndef ROOT_TMVA_GiniIndex
39 #define ROOT_TMVA_GiniIndex
40 
41 //////////////////////////////////////////////////////////////////////////
42 // //
43 // GiniIndex //
44 // //
45 // Implementation of the GiniIndex as separation criterion //
46 // //
47 // Large Gini Indices (maximum 0.5) mean , that the sample is well //
48 // mixed (same amount of signal and bkg) //
49 // bkg. Small Indices mean, well separated. //
50 // general defniniton: //
51 // Gini(Sample M) = 1 - (c(1)/N)^2 - (c(2)/N)^2 .... - (c(k)/N)^2 //
52 // Where: M is a smaple of whatever N elements (events) //
53 // that belong to K different classes //
54 // c(k) is the number of elements that belong to class k //
55 // for just Signal and Background classes this boils down to: //
56 // Gini(Sample) = 2s*b/(s+b)^2 //
57 //////////////////////////////////////////////////////////////////////////
58 
59 #ifndef ROOT_TMVA_SeparationBase
60 #include "TMVA/SeparationBase.h"
61 #endif
62 
63 namespace TMVA {
64 
65  class GiniIndex : public SeparationBase {
66 
67  public:
68 
69  // construtor for the GiniIndex
70  GiniIndex() { fName="Gini"; }
71 
72  // copy constructor
74 
75  //destructor
76  virtual ~GiniIndex(){}
77 
78  // Return the separation index (a measure for "purity" of the sample")
79  virtual Double_t GetSeparationIndex( const Double_t &s, const Double_t &b );
80 
81  protected:
82 
83  ClassDef(GiniIndex,0) // Implementation of the GiniIndex as separation criterion
84  };
85 
86 } // namespace TMVA
87 
88 #endif
89 
virtual Double_t GetSeparationIndex(const Double_t &s, const Double_t &b)
#define ClassDef(name, id)
Definition: Rtypes.h:254
GiniIndex(const GiniIndex &g)
Definition: GiniIndex.h:73
virtual ~GiniIndex()
Definition: GiniIndex.h:76
double Double_t
Definition: RtypesCore.h:55