I am trying to understand how the separation gain (for example Gini) and boosting weight expressions can be customised/modified in classification problems with BDTs.
To provide some context, what I am trying to achieve is to combine information from systematically varied samples to my nominal-sample-trained BDT to make it less sensitive to systematical variations. Such as having a penalty term in gain expression when it is different for these alternative datasets compared to nominal dataset.
It seems like there is a list of fixed methods to be chosen however no option for a user defined function expression for separation gain and/or boosting weights in which different calculations of these values can be compared.
Are there some ways to achieve it or does one need to have a local copy of ROOT and modify the TMVA code accordingly?
Thank you in advance!
Unfortunatly to apply this type of customization requires you to customize your local copy of ROOT and modify the TMVA code according to your needs. I would suggest you to use git, clone the repository and create a new branch with your modification, that you can always rebase in the future to new ROOT versions.
Thanks a lot for your reply and the recommendation!
In relation to that, could you also comment on the TMVA::Event::ScaleBoostWeight function. Is it possible to call this function from usual training setup to scale the boosting weight for certain type (having specified nJets, pT range etc…) of events in a away similar to SetSignalWeightExpression? Or is it just an internal function that needs customisation locally?
It is an internal function used by MethodBDT and MethodBoost to set the event boosting weight that is used to build the combined boosted classifier, see for example chapter 7 of the TMVA Users guide,
Thank you very much indeed for the clarification. Clearly there is no easy way around:)