Skip to content

Changes to TMVA API in new ROOT versions break TMVAClassifier #105

@fndari

Description

@fndari

Hi all,

first of all, I wanted to thank and compliment the developers for this brilliant library. I finally had the chance to start playing with it today, but I was stopped in my tracks when trying to use a TMVAClassifier:

AssertionError: ERROR: TMVA process is incorrect finished 
 LOG: None 
 Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/home/ludo/miniconda3/envs/pyroot/lib/python2.7/site-packages/rep/estimators/_tmvaFactory.py", line 86, in main
    tmva_process(classifier, info, data, labels, sample_weight)
  File "/home/ludo/miniconda3/envs/pyroot/lib/python2.7/site-packages/rep/estimators/_tmvaFactory.py", line 40, in tmva_process
    factory.AddVariable(var)
AttributeError: 'Factory' object has no attribute 'AddVariable'

My ROOT/TMVA versions are:

You are running ROOT Version: 6.08/00, Nov 4, 2016
TMVA Version 4.2.1, Feb 5, 2015

Searching the web for this error message led me to this post on the ROOT forum: https://root-forum.cern.ch/t/25090, where the cause of problem is indicated as being due to a breaking change in the TMVA API:

In recent ROOT versions (6.06 or 6.08, don't remember exactly), the TMVA interface has changed. You need to create a TMVA::DataLoader and call AddVariable on the dataloader object.

As I understand, this is related to what was mentioned by @gandreassi in a comment to #104. Any idea on how complicated it would be to adapt tmva_process to the new interface?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions