automl / autoweka

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

autoweka not running on ubuntu? #72

Closed papaya-cactus closed 4 years ago

papaya-cactus commented 5 years ago

Hello,

I've been able to run autoweka from Windows with no problems. I am now trying to run it on Ubuntu, but it does not seem to work for me. Would appreciate any help. I am running a simple test on the iris.arff data, and when I use the terminal these are my commands:

java -cp /home/anuraj/autoweka-2.6/autoweka.jar weka.classifiers.meta.AutoWEKAClassifier -t /home/anuraj/weka-data/diabetes.arff -timeLimit 1 -no-cv

I am getting the following error messages:

java.lang.RuntimeException: Failed to prepare the experiment at autoweka.smac.SMACExperimentConstructor.prepareExperiment(SMACExperimentConstructor.java:46) at autoweka.ExperimentConstructor.run(ExperimentConstructor.java:238) at autoweka.ExperimentConstructor.buildSingle(ExperimentConstructor.java:158) at weka.classifiers.meta.AutoWEKAClassifier.buildClassifier(AutoWEKAClassifier.java:336) at weka.classifiers.evaluation.Evaluation.evaluateModel(Evaluation.java:1527) at weka.classifiers.Evaluation.evaluateModel(Evaluation.java:650) at weka.classifiers.AbstractClassifier.runClassifier(AbstractClassifier.java:141) at weka.classifiers.meta.AutoWEKAClassifier.main(AutoWEKAClassifier.java:266) Caused by: java.lang.RuntimeException: Couldn't find any attribute eval methods at autoweka.ExperimentConstructor.generateAlgorithmParameterConditionalGroupForDAG(ExperimentConstructor.java:390) at autoweka.smac.SMACExperimentConstructor.printParamFile(SMACExperimentConstructor.java:258) at autoweka.smac.SMACExperimentConstructor.prepareExperiment(SMACExperimentConstructor.java:31) ... 7 more

I've also tried using the GUI. I've installed autoweka via the package manager and tried to run autoweka on iris.arff, but the screen is always stuck at 'autoweka started...' as per the screenshot. I can run autoweka from the GUI on windows with no problems.

Screenshot from 2019-07-16 15-01-45

Thanks for your help!

larskotthoff commented 5 years ago

Does WEKA itself work, i.e. is this just an Auto-WEKA issue?

Mackaber commented 5 years ago

I have the same issue in CentOS, with regular weka running without problems

Mackaber commented 5 years ago

After several hours I managed to run it using

java -cp "weka-3-9-3/weka.jar:wekafiles/packages/Auto-WEKA/autoweka.jar" weka.classifiers.meta.AutoWEKAClassifier -t weka-3-9-3/weka-data/iris.arff -timeLimit 1 -no-cv

I also bumped into issue #61, so you should make sure to use java 1.8 while using it

timhot commented 4 years ago

I seem to be have similar issues using Autoweka on Ubuntu 18.04.3 LTS - works on my Windows virtual PC. It won't run from the GUI; Weka does work OK. Any suggestions? Thanks

larskotthoff commented 4 years ago

Are you getting any error messages?

timhot commented 4 years ago

I see this in the terminal:

WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by weka.core.WekaPackageClassLoaderManager (file:/home/tim/weka-3-8-3/weka.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) WARNING: Please consider reporting this to the maintainers of weka.core.WekaPackageClassLoaderManager WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations WARNING: All illegal access operations will be denied in a future release Some packages no longer exist at the repository. Refreshing cache... Refresh in progress. Please wait... [DefaultPackageManager] downloaded 2214 KB java.lang.NullPointerException weka.core.Instances.(Instances.java:179) weka.gui.explorer.ClassifierPanel.updateCapabilitiesFilter(ClassifierPanel.java:3262) weka.gui.explorer.ClassifierPanel.capabilitiesFilterChanged(ClassifierPanel.java:3302) weka.gui.explorer.Explorer.notifyCapabilitiesFilterListener(Explorer.java:343) weka.gui.explorer.PreprocessPanel$21.run(PreprocessPanel.java:775) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) java.base/java.security.AccessController.doPrivileged(Native Method) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

at weka.core.Instances.<init>(Instances.java:179)
at weka.gui.explorer.ClassifierPanel.updateCapabilitiesFilter(ClassifierPanel.java:3262)
at weka.gui.explorer.ClassifierPanel.capabilitiesFilterChanged(ClassifierPanel.java:3302)
at weka.gui.explorer.Explorer.notifyCapabilitiesFilterListener(Explorer.java:343)
at weka.gui.explorer.PreprocessPanel$21.run(PreprocessPanel.java:775)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

java.lang.NullPointerException weka.core.Instances.(Instances.java:179) weka.gui.explorer.ClassifierPanel.updateCapabilitiesFilter(ClassifierPanel.java:3262) weka.gui.explorer.ClassifierPanel.capabilitiesFilterChanged(ClassifierPanel.java:3302) weka.gui.explorer.Explorer.notifyCapabilitiesFilterListener(Explorer.java:343) weka.gui.explorer.PreprocessPanel$21.run(PreprocessPanel.java:775) java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303) java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721) java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715) java.base/java.security.AccessController.doPrivileged(Native Method) java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85) java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740) java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203) java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124) java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109) java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

at weka.core.Instances.<init>(Instances.java:179)
at weka.gui.explorer.ClassifierPanel.updateCapabilitiesFilter(ClassifierPanel.java:3262)
at weka.gui.explorer.ClassifierPanel.capabilitiesFilterChanged(ClassifierPanel.java:3302)
at weka.gui.explorer.Explorer.notifyCapabilitiesFilterListener(Explorer.java:343)
at weka.gui.explorer.PreprocessPanel$21.run(PreprocessPanel.java:775)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:303)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:770)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:721)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:715)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:740)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Exception in thread "Thread-6" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBContext autoweka.XmlSerializable.toXML(XmlSerializable.java:59) autoweka.XmlSerializable.toXML(XmlSerializable.java:43) autoweka.ExperimentConstructor.run(ExperimentConstructor.java:245) autoweka.ExperimentConstructor.buildSingle(ExperimentConstructor.java:158) weka.classifiers.meta.AutoWEKAClassifier.buildClassifier(AutoWEKAClassifier.java:336) weka.gui.explorer.AutoWEKAPanel$13.run(AutoWEKAPanel.java:451)

at autoweka.XmlSerializable.toXML(XmlSerializable.java:59)
at autoweka.XmlSerializable.toXML(XmlSerializable.java:43)
at autoweka.ExperimentConstructor.run(ExperimentConstructor.java:245)
at autoweka.ExperimentConstructor.buildSingle(ExperimentConstructor.java:158)
at weka.classifiers.meta.AutoWEKAClassifier.buildClassifier(AutoWEKAClassifier.java:336)
at weka.gui.explorer.AutoWEKAPanel$13.run(AutoWEKAPanel.java:451)

Caused by: java.lang.ClassNotFoundException: [weka.core.WekaPackageLibIsolatingClassLoader (Auto-WEKA)] Unable to find class: javax.xml.bind.JAXBContext at weka.core.WekaPackageLibIsolatingClassLoader.findClass(WekaPackageLibIsolatingClassLoader.java:509) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ... 6 more

timhot commented 4 years ago

And this when I press the Log button next to the weka image in the GUI

timhot commented 4 years ago

07:34:18: Weka Explorer 07:34:18: (c) 1999-2018 The University of Waikato, Hamilton, New Zealand 07:34:18: web: http://www.cs.waikato.ac.nz/~ml/weka/ 07:34:18: Started on Friday, 20 December 2019 07:34:41: Base relation is now 2019_12_16_1-weka.filters.unsupervised.instance.imagefilter.EdgeHistogramFilter-D/home/tim/Work/Cacophony/Audio_Analysis/audio_classifier_runs/2019_12_16_1/spectrograms_for_model_creation (2388 instances) 07:34:41: java.lang.NullPointerException 07:34:44: Command: weka.filters.unsupervised.attribute.Remove -R 1 07:34:44: Base relation is now 2019_12_16_1-weka.filters.unsupervised.instance.imagefilter.EdgeHistogramFilter-D/home/tim/Work/Cacophony/Audio_Analysis/audio_classifier_runs/2019_12_16_1/spectrograms_for_model_creation-weka.filters.unsupervised.attribute.Remove-R1 (2388 instances) 07:34:44: java.lang.NullPointerException 07:34:51: Started Auto-WEKA for 2019_12_16_1-weka.filters.unsupervised.instance.imagefilter.EdgeHistogramFilter-D/home/tim/Work/Cacophony/Audio_Analysis/audio_classifier_runs/2019_12_16_1/spectrograms_for_model_creation-weka.filters.unsupervised.attribute.Remove-R1

timhot commented 4 years ago

Merry xmas to you Lars. In an attempt to fix this issue, I installed autoweka ver 2.5, and also tried using two of the arff files that come with weka: airline.arff - produced the message 'Problem running Auto-WEKA: Failed to prepare the experiment.

and breast-cancer.arff - gave no error, but didn't run and gave the log message: 12:23:11: Base relation is now breast-cancer (286 instances) 12:23:11: java.lang.NullPointerException 12:23:16: Started Auto-WEKA for breast-cancer

In case it helps, here is my SystemInfo as reported by Weka WEKA_HOME /home/tim/wekafiles awt.toolkit sun.awt.X11.XToolkit file.encoding UTF-8 file.separator / java.awt.graphicsenv sun.awt.X11GraphicsEnvironment java.awt.printerjob sun.print.PSPrinterJob java.class.path weka.jar java.class.version 55.0 java.home /usr/lib/jvm/java-11-openjdk-amd64 java.io.tmpdir /tmp java.library.path /usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+::/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64}:/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib:/home/tim/wekafiles/native java.runtime.name OpenJDK Runtime Environment java.runtime.version 11.0.5+10-post-Ubuntu-0ubuntu1.118.04 java.specification.name Java Platform API Specification java.specification.vendor Oracle Corporation java.specification.version 11 java.vendor Private Build java.vendor.url Unknown java.vendor.url.bug Unknown java.version 11.0.5 java.version.date 2019-10-15 java.vm.compressedOopsMode Zero based java.vm.info mixed mode, sharing java.vm.name OpenJDK 64-Bit Server VM java.vm.specification.name Java Virtual Machine Specification java.vm.specification.vendor Oracle Corporation java.vm.specification.version 11 java.vm.vendor Private Build java.vm.version 11.0.5+10-post-Ubuntu-0ubuntu1.118.04 javax.xml.parsers.DocumentBuilderFactory com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl javax.xml.parsers.SAXParserFactory com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl jdk.debug release line.separator

memory.initial 504MB (528482304) memory.max 8040MB (8430551040) org.xml.sax.parser com.sun.org.apache.xerces.internal.parsers.SAXParser os.arch amd64 os.name Linux os.version 4.15.0-72-generic path.separator : sun.arch.data.model 64 sun.awt.enableExtraMouseButtons true sun.boot.library.path /usr/lib/jvm/java-11-openjdk-amd64/lib sun.cpu.endian little sun.cpu.isalist sun.desktop gnome sun.font.fontmanager sun.awt.X11FontManager sun.io.unicode.encoding UnicodeLittle sun.java.command weka.jar sun.java.launcher SUN_STANDARD sun.jnu.encoding UTF-8 sun.management.compiler HotSpot 64-Bit Tiered Compilers sun.os.patch.level unknown ui.currentLookAndFeel com.sun.java.swing.plaf.gtk.GTKLookAndFeel ui.installedLookAndFeels javax.swing.plaf.metal.MetalLookAndFeel,javax.swing.plaf.nimbus.NimbusLookAndFeel,com.sun.java.swing.plaf.motif.MotifLookAndFeel,com.sun.java.swing.plaf.gtk.GTKLookAndFeel user.country AU user.dir /home/tim/weka-3-8-3 user.home /home/tim user.language en user.name tim user.timezone Pacific/Auckland weka.version 3.8.3

I also tried using weka version 3-9-3 but no luck. Hopefully you are able to guide me to a solution - thanks Tim

larskotthoff commented 4 years ago

Could you try using the Oracle JDK instead please?

timhot commented 4 years ago

I've updated to Oracle 11.0.5, but get the same errors using Auto-WEKA with the airline.arff and breast-cancer.arff As I'm not an expert on linux and the Oracle site was a bit confusing on how to install java, to check that Oracle 11.0.5 is installed, I checked that Weka still works - it does - and below is terminal info on what version is now showing as the default java;

(base) tim@Unix1:~/weka-3-8-3$ java --version java 11.0.5 2019-10-15 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode) (base) tim@Unix1:~/weka-3-8-3$

Lars, I'm still keen to get this working if you are able to help - thanks, Tim

Weka SystemInfo:

WEKA_HOME /home/tim/wekafiles
awt.toolkit sun.awt.X11.XToolkit
file.encoding UTF-8
file.separator /
java.awt.graphicsenv sun.awt.X11GraphicsEnvironment
java.awt.printerjob sun.print.PSPrinterJob
java.class.path weka.jar
java.class.version 55.0
java.home /usr/lib/jvm/jdk-11.0.5
java.io.tmpdir /tmp
java.library.path /usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+::/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64}:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib:/home/tim/wekafiles/native
java.runtime.name Java(TM) SE Runtime Environment
java.runtime.version 11.0.5+10-LTS
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 11
java.vendor Oracle Corporation
java.vendor.url http://java.oracle.com/
java.vendor.url.bug http://bugreport.java.com/bugreport/
java.vendor.version 18.9
java.version 11.0.5
java.version.date 2019-10-15
java.vm.compressedOopsMode Zero based
java.vm.info mixed mode
java.vm.name Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name Java Virtual Machine Specification
java.vm.specification.vendor Oracle Corporation
java.vm.specification.version 11
java.vm.vendor Oracle Corporation
java.vm.version 11.0.5+10-LTS
javax.xml.parsers.DocumentBuilderFactory com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
jdk.debug release
line.separator  
memory.initial 504MB (528482304)
memory.max 8040MB (8430551040)
org.xml.sax.parser com.sun.org.apache.xerces.internal.parsers.SAXParser
os.arch amd64
os.name Linux
os.version 4.15.0-74-generic
path.separator :
sun.arch.data.model 64
sun.awt.enableExtraMouseButtons true
sun.boot.library.path /usr/lib/jvm/jdk-11.0.5/lib
sun.cpu.endian little
sun.cpu.isalist  
sun.desktop gnome
sun.font.fontmanager sun.awt.X11FontManager
sun.io.unicode.encoding UnicodeLittle
sun.java.command weka.jar
sun.java.launcher SUN_STANDARD
sun.jnu.encoding UTF-8
sun.management.compiler HotSpot 64-Bit Tiered Compilers
sun.os.patch.level unknown
ui.currentLookAndFeel com.sun.java.swing.plaf.gtk.GTKLookAndFeel
ui.installedLookAndFeels javax.swing.plaf.metal.MetalLookAndFeel,javax.swing.plaf.nimbus.NimbusLookAndFeel,com.sun.java.swing.plaf.motif.MotifLookAndFeel,com.sun.java.swing.plaf.gtk.GTKLookAndFeel
user.country AU
user.dir /home/tim/weka-3-8-3
user.home /home/tim
user.language en
user.name tim
user.timezone Pacific/Auckland
weka.version 3.8.3
larskotthoff commented 4 years ago

Hmm, maybe a security issue with the JDK configuration? Sorry, I don't even really know what to look for there...

timhot commented 4 years ago

Success - I installed Oracle jdk 1.8 and it worked on the breast-cancer arff. Looks like I either incorrectly installed Oracle 11, or that was the issue. Thanks for your help/feedback on this Lars.

FYI here is the SystemInfo for the current working setup:

WEKA_HOME /home/tim/wekafiles
awt.toolkit sun.awt.X11.XToolkit
file.encoding UTF-8
file.encoding.pkg sun.io
file.separator /
java.awt.graphicsenv sun.awt.X11GraphicsEnvironment
java.awt.printerjob sun.print.PSPrinterJob
java.class.path weka.jar
java.class.version 52.0
java.endorsed.dirs /usr/lib/jvm/jdk1.8.0_231/jre/lib/endorsed
java.ext.dirs /usr/lib/jvm/jdk1.8.0_231/jre/lib/ext:/usr/java/packages/lib/ext
java.home /usr/lib/jvm/jdk1.8.0_231/jre
java.io.tmpdir /tmp
java.library.path /usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+::/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64}:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib:/home/tim/wekafiles/native
java.runtime.name Java(TM) SE Runtime Environment
java.runtime.version 1.8.0_231-b11
java.specification.name Java Platform API Specification
java.specification.vendor Oracle Corporation
java.specification.version 1.8
java.vendor Oracle Corporation
java.vendor.url http://java.oracle.com/
java.vendor.url.bug http://bugreport.sun.com/bugreport/
java.version 1.8.0_231
java.vm.info mixed mode
java.vm.name Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name Java Virtual Machine Specification
java.vm.specification.vendor Oracle Corporation
java.vm.specification.version 1.8
java.vm.vendor Oracle Corporation
java.vm.version 25.231-b11
javax.xml.parsers.DocumentBuilderFactory com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
javax.xml.parsers.SAXParserFactory com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl
line.separator  
memory.initial 504MB (528482304)
memory.max 7147MB (7494172672)
org.xml.sax.parser com.sun.org.apache.xerces.internal.parsers.SAXParser
os.arch amd64
os.name Linux
os.version 4.15.0-74-generic
path.separator :
sun.arch.data.model 64
sun.awt.enableExtraMouseButtons true
sun.boot.class.path /usr/lib/jvm/jdk1.8.0_231/jre/lib/resources.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/rt.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/sunrsasign.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/jsse.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/jce.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/charsets.jar:/usr/lib/jvm/jdk1.8.0_231/jre/lib/jfr.jar:/usr/lib/jvm/jdk1.8.0_231/jre/classes
sun.boot.library.path /usr/lib/jvm/jdk1.8.0_231/jre/lib/amd64
sun.cpu.endian little
sun.cpu.isalist  
sun.desktop gnome
sun.font.fontmanager sun.awt.X11FontManager
sun.io.unicode.encoding UnicodeLittle
sun.java.command weka.jar
sun.java.launcher SUN_STANDARD
sun.jnu.encoding UTF-8
sun.management.compiler HotSpot 64-Bit Tiered Compilers
sun.os.patch.level unknown
ui.currentLookAndFeel com.sun.java.swing.plaf.gtk.GTKLookAndFeel
ui.installedLookAndFeels javax.swing.plaf.metal.MetalLookAndFeel,javax.swing.plaf.nimbus.NimbusLookAndFeel,com.sun.java.swing.plaf.motif.MotifLookAndFeel,com.sun.java.swing.plaf.gtk.GTKLookAndFeel
user.country AU
user.dir /home/tim/weka-3-8-3
user.home /home/tim
user.language en
user.name tim
user.timezone Pacific/Auckland
weka.version 3.8.3

AND the result

Auto-WEKA result: best classifier: weka.classifiers.rules.DecisionTable arguments: [-E, rmse, -I, -S, weka.attributeSelection.BestFirst, -X, 3] attribute search: weka.attributeSelection.BestFirst attribute search arguments: [-D, 0, -N, 10] attribute evaluation: weka.attributeSelection.CfsSubsetEval attribute evaluation arguments: [-L] metric: errorRate estimated errorRate: 0.23776223776223776 training time on evaluation dataset: 0.075 seconds

You can use the chosen classifier in your own code as follows:

AttributeSelection as = new AttributeSelection(); ASSearch asSearch = ASSearch.forName("weka.attributeSelection.BestFirst", new String[]{"-D", "0", "-N", "10"}); as.setSearch(asSearch); ASEvaluation asEval = ASEvaluation.forName("weka.attributeSelection.CfsSubsetEval", new String[]{"-L"}); as.setEvaluator(asEval); as.SelectAttributes(instances); instances = as.reduceDimensionality(instances); Classifier classifier = AbstractClassifier.forName("weka.classifiers.rules.DecisionTable", new String[]{"-E", "rmse", "-I", "-S", "weka.attributeSelection.BestFirst", "-X", "3"}); classifier.buildClassifier(instances);

Correctly Classified Instances 218 76.2238 % Incorrectly Classified Instances 68 23.7762 % Kappa statistic 0.3145 Mean absolute error 0.3502 Root mean squared error 0.4156 Relative absolute error 83.7227 % Root relative squared error 90.9352 % Total Number of Instances 286

=== Confusion Matrix ===

a b <-- classified as 192 9 | a = no-recurrence-events 59 26 | b = recurrence-events

=== Detailed Accuracy By Class ===

             TP Rate  FP Rate  Precision  Recall   F-Measure  MCC      ROC Area  PRC Area  Class
             0.955    0.694    0.765      0.955    0.850      0.364    0.726     0.821     no-recurrence-events
             0.306    0.045    0.743      0.306    0.433      0.364    0.726     0.531     recurrence-events

Weighted Avg. 0.762 0.501 0.758 0.762 0.726 0.364 0.726 0.735

Temporary run directories: /tmp/autoweka5076923000193791014/

For better performance, try giving Auto-WEKA more time. Tried 646 configurations; to get good results reliably you may need to allow for trying thousands of configurations.

larskotthoff commented 4 years ago

Great, thanks!