automl / autoweka

Auto-WEKA
http://www.cs.ubc.ca/labs/beta/Projects/autoweka/
330 stars 105 forks source link

Empty arguments list #57

Closed Inexpugnable closed 7 years ago

Inexpugnable commented 7 years ago

Hello,

I have done a small python wrapper around the Auto-WEKA project using JPype, but when I try to access to an arguments array I obtain an empty array.

For this configuration: 2017-09-28 17:11:18.685 [main] INFO AutoWEKAClassifier - classifier: weka.classifiers.trees.RandomForest, arguments: [-I, 10, -K, 0, -depth, 0], attribute search: null, attribute search arguments: [], attribute evaluation: null, attribute evaluation arguments: []

I obtain something like this when I access to the arguments list (classifierArgs field): ('', '', '', '', '', '')

I have no issue when I try to access to the classifier class (classifierClass field) so I am wondering if there is any issue or if JPype plays tricks on me.

larskotthoff commented 7 years ago

The best way to figure this out is to have a look at the source code in Auto-WEKA to see how the array is printed there. WEKA consumes the arguments when you instantiate a classifier (i.e. you pass in an array and that array is emptied by WEKA so that afterwards you don't have the arguments anymore), so you may have to copy it before the classifier is instantiated in Auto-WEKA.

Inexpugnable commented 7 years ago

Indeed, all arrays of String seem to be emptied by WEKA. I have managed to get around this problem by adding ArrayList fields, not a great solution I guess, but that does the work.

larskotthoff commented 7 years ago

Unfortunately fixing this properly would require changes to WEKA.