perform RBF neural network using weka

368 views
Skip to first unread message

bhanu prakash

unread,
Apr 19, 2018, 2:57:21 AM4/19/18
to python-weka-wrapper
I would like to perform RBF neural network using weka tool but I don't find RBF under classifications I am using weka version 3.8.2.

Can you please help me.

Thanks and Regards
Bhanuprakash Vattikuti

Peter Reutemann

unread,
Apr 19, 2018, 3:15:49 AM4/19/18
to python-weka-wrapper
> I would like to perform RBF neural network using weka tool but I don't find
> RBF under classifications I am using weka version 3.8.2.

Not familiar with that classifier, but did you install the relevant
package and started up the JVM with package support (default: no
packages get loaded)?

Cheers, Peter
--
Peter Reutemann
Dept. of Computer Science
University of Waikato, NZ
+64 (7) 858-5174
http://www.cms.waikato.ac.nz/~fracpete/
http://www.data-mining.co.nz/

bhanu prakash

unread,
Apr 20, 2018, 7:05:04 AM4/20/18
to python-weka-wrapper
I have added RBF using package manager and from python python code I am using packages when starting jvm.

I am encountering new type of error.

code :

import os
import sys
import traceback
import weka.core.jvm as jvm
from weka.core.classes import Random
import weka.core.converters as converters
from weka.classifiers import Classifier, Evaluation




def main(args):

# load a dataset
data = converters.load_any_file("KDDTrain.csv")
data.class_is_last()

# generate train/test split of randomized data
train, test = data.train_test_split(80.0, Random(1))

# build classifier
cls = Classifier(classname="weka.classifiers.functions.RBFNetwork")
cls.build_classifier(train)
print(cls)

# evaluate
evl = Evaluation(train)
evl.test_model(cls, test)
print(evl.summary())


if __name__ == "__main__":
try:
jvm.start(system_cp=True, packages=True)
main(sys.argv)
except Exception as e:
print(traceback.format_exc())
finally:
        jvm.stop()

error:

C:\Users\bhanu\PycharmProjects\main_project\venv\Scripts\python.exe C:/Users/bhanu/PycharmProjects/main_project/multi_layer_nn.py
DEBUG:weka.core.jvm:Adding bundled jars
DEBUG:weka.core.jvm:Adding system classpath
DEBUG:weka.core.jvm:Classpath=['C:\\Users\\bhanu\\PycharmProjects\\main_project\\venv\\lib\\site-packages\\javabridge\\jars\\rhino-1.7R4.jar', 'C:\\Users\\bhanu\\PycharmProjects\\main_project\\venv\\lib\\site-packages\\javabridge\\jars\\runnablequeue.jar', 'C:\\Users\\bhanu\\PycharmProjects\\main_project\\venv\\lib\\site-packages\\javabridge\\jars\\cpython.jar', 'C:\\Users\\bhanu\\PycharmProjects\\main_project\\venv\\lib\\site-packages\\weka\\lib\\python-weka-wrapper.jar', 'C:\\Users\\bhanu\\PycharmProjects\\main_project\\venv\\lib\\site-packages\\weka\\lib\\weka.jar']
DEBUG:weka.core.jvm:MaxHeapSize=default
DEBUG:weka.core.jvm:Package support enabled
DEBUG:javabridge.jutil:Creating JVM object
DEBUG:javabridge.jutil:Signalling caller
java.lang.IllegalArgumentException: Can't normalize array. Sum is NaN.
weka.core.Utils.normalize(Utils.java:1327)
weka.core.Utils.logs2probs(Utils.java:1357)
weka.filters.unsupervised.attribute.ClusterMembership.convertInstance(ClusterMembership.java:360)
weka.filters.unsupervised.attribute.ClusterMembership.batchFinished(ClusterMembership.java:273)
weka.filters.Filter.useFilter(Filter.java:704)
weka.classifiers.functions.RBFNetwork.buildClassifier(RBFNetwork.java:203)

at weka.core.Utils.normalize(Utils.java:1327)
at weka.core.Utils.logs2probs(Utils.java:1357)
at weka.filters.unsupervised.attribute.ClusterMembership.convertInstance(ClusterMembership.java:360)
at weka.filters.unsupervised.attribute.ClusterMembership.batchFinished(ClusterMembership.java:273)
at weka.filters.Filter.useFilter(Filter.java:704)
at weka.classifiers.functions.RBFNetwork.buildClassifier(RBFNetwork.java:203)
Traceback (most recent call last):
  File "C:/Users/bhanu/PycharmProjects/main_project/multi_layer_nn.py", line 35, in <module>
    main(sys.argv)
  File "C:/Users/bhanu/PycharmProjects/main_project/multi_layer_nn.py", line 23, in main
    cls.build_classifier(train)
  File "C:\Users\bhanu\PycharmProjects\main_project\venv\lib\site-packages\weka\classifiers.py", line 83, in build_classifier
    javabridge.call(self.jobject, "buildClassifier", "(Lweka/core/Instances;)V", data.jobject)
  File "C:\Users\bhanu\PycharmProjects\main_project\venv\lib\site-packages\javabridge\jutil.py", line 887, in call
    result = fn(*nice_args)
  File "C:\Users\bhanu\PycharmProjects\main_project\venv\lib\site-packages\javabridge\jutil.py", line 854, in fn
    raise JavaException(x)
javabridge.jutil.JavaException: Can't normalize array. Sum is NaN.

Exception in thread "Thread-0" 
Process finished with exit code 0 


I request you to please help me

Peter Reutemann

unread,
Apr 20, 2018, 5:37:49 PM4/20/18
to python-weka-wrapper
> I have added RBF using package manager and from python python code I am using packages when starting jvm.
>
> I am encountering new type of error.
>
> code :

[...]

> java.lang.IllegalArgumentException: Can't normalize array. Sum is NaN.
> weka.core.Utils.normalize(Utils.java:1327)
> weka.core.Utils.logs2probs(Utils.java:1357)
> weka.filters.unsupervised.attribute.ClusterMembership.convertInstance(ClusterMembership.java:360)
> weka.filters.unsupervised.attribute.ClusterMembership.batchFinished(ClusterMembership.java:273)
> weka.filters.Filter.useFilter(Filter.java:704)
> weka.classifiers.functions.RBFNetwork.buildClassifier(RBFNetwork.java:203)

[..]

Once again, always test with different datasets to determine whether
your dataset is the problem. Your code works fine with the UCI
datasets bolts (numeric class) and anneal (nominal class).
I recommend, that you convert your CSV file into an ARFF file and
inspect the attribute types that it generated. Maybe there is
something odd going on.
Last but not least, use the Weka mailing list for problems with a
particular Weka algorithm. I can only provide help with the wrapper
itself.
Reply all
Reply to author
Forward
0 new messages