BDTG Multiclass standalone C++ class response

Hi TMVA experts,

The multiclass training of a BDTG method results in a standalone C++ class in the weights directory, but I’m confused how to get a multiclass response using this. The TMVA::Reader has a EvaluateMulticlass() function which returns a vector with a response for each event class, but the standalone class only has a GetMvaValue(…) function which returns a single value (which always seems to return -1 for me, no matter which event class I provide it, but that might be another issue altogether).
I’ve noticed that not all standalone classes are properly implemented, is this also what I’m running into now? Is this implementation incomplete, or am I missing something else to get a multiclass response from the BDTG standalone C++ class?

thanks!
Lars

Hi,

Currently, the standalone c++ BDT classes do not support multiclass evalution.

Cheers,
Kim

Hi Kim,

Thanks for your reply.
Do you maybe have an idea how much work it is to build support for this? If the forest in ReadBDTG::Initialize() is correct and is just a matter of implementing the interface to it, I might be able to work it out my own, (and learn some things about BDTs in the proces :slight_smile:).

cheers,
Lars

Hi,

That would be much appreciated if you would have the time to look into it! In principle it shouldn’t be that difficult, the tricky part is that this code is generated by TMVA.

Looking at the implementation of TMVA::MethodBDT::GetMulticlassValues and ReadBDTG::GetMvaValue__ should be good starting points for this!

Please have a look and submit a PR to the root repository if something would come out of it! For further communication you can use kim . albertsson [at] cern . ch