When executed on the same train.arff and eval.arff, I obtained very
different results for 2 different versions of weka SMO. Below are the
java -mx500m -cp /home/grad/chanys/sw/weka-3-4-5/weka.jar
weka.classifiers.meta.MultiClassClassifier -t train.arff -T eval.arff -p 1
java -mx500m -cp /home/grad/chanys/wsd/sw/weka-3-2
weka.classifiers.MultiClassClassifier -t train.arff -T eval.arff -p 1 -W
On the older version weka-3-2, the real-numbers returned for each test
instance is averaging 0.7, but for the newer weka-3-4-5, the real-numbers
returned for each test instance is 1.0 (i.e. 100% confident of belonging to
a certain class!).
What's the difference between these 2 versions? The reason why I want to
switch to the newer version is because it can fit logistic models to the SVM
> I am having a problem calling Weka from the emacs shell on my Windows
> machine. I have read the notes found at http://alex.seewald.at/WEKA/ . I
> think it is a CLASSPATH setting problem.
I'm normally working with cygwin under Win32 or on a Linux box.
> Working from the directory to which I downloaded the file
> callClassifier.class <http://alex.seewald.at/WEKA/callClassifier.class>.
> I get:
> *>set CLASSPATH .:$Weka-3-4/weka.jar*
> set CLASSPATH .:$Weka-3-4/weka.jar
> Environment variable CLASSPATH not defined
Since you're using windows, why don't set up the classpath there?
- right-click on "My Computer"
- select "Properties"
(the alternative is via the Control Panel and then "System")
- under WinXP go to the "Advanced" tab
- click on "Environment Variables"
- create a new user variable (or system-wide for all users if you
- and add the following value (assuming that Weka is installed in
- close all the dialogs with "OK"
Running Weka from command line:
- Start -> Run... and enter "cmd" followed by <Enter>
- e.g., run this command to see J48's help:
java weka.classifiers.trees.J48 -h
Peter Reutemann, Dept. of Computer Science, University of Waikato, NZ
http://www.cs.waikato.ac.nz/~fracpete/ +64 (7) 838-4466 Ext. 5174
I'm using weka j48 in a webapp. I'm building the model from time to time. For
this, I add all my training instances to an Intances object. When I later
want to classify something, it seems I have to da a setDataset with my
Instances object from the training on the instance to classify. For me, this
means I have to hold a pointer to Instances in memory all the time. Since I
have 352 attributes and some thousand instances, I want to avoid this. Is
this possible? I would like to only hold the J48 object in memory.
Stefan Kuhn M. A.
Cologne University BioInformatics Center (http://www.cubic.uni-koeln.de)
Zülpicher Str. 47, 50674 Cologne
Tel: +49(0)221-470-7428 Fax: +49 (0) 221-470-7786
My public PGP key is available at http://pgp.mit.edu