"Weka learner - no operator description"
nicugeorgian
MemberPosts:31Guru
Hello,
I tried to define a Weka Learner for building a regression tree. This learner appears as "W-M5P" in the RapidMiner GUI.
This is the definition I use:
Learner learner = (Learner) OperatorService.createOperator("M5P");
Unfortunately, I get the the following exception:
data:com.rapidminer.operator.OperatorCreationException: No operator description object given for 'M5P
在com.rapidminer.tools.OperatorService.createOperator
Note that I get the same exception if I try, for example, to use the J48 learner.
This is what I did so far (I'm using the Eclipse platform for Java):
1. In Eclipse, I have (myself) built the Java classes corresponding to the Java source files in the folder
C:\Program Files\Rapid-I\RapidMiner-4.1beta2\src
输出文件夹的名字叫C:\Program Files\Rapid-I\RapidMiner-4.1beta2\build
2. I have added the above "build" class folder to the Java build path of the project
3. I have defined the variable "rapidminer.home" to point to
C:\Program Files\Rapid-I\RapidMiner-4.1beta2\lib\rapidminer.jar
Could you please help me with this matter?
Thank you!
Geo
I tried to define a Weka Learner for building a regression tree. This learner appears as "W-M5P" in the RapidMiner GUI.
This is the definition I use:
Learner learner = (Learner) OperatorService.createOperator("M5P");
Unfortunately, I get the the following exception:
data:com.rapidminer.operator.OperatorCreationException: No operator description object given for 'M5P
在com.rapidminer.tools.OperatorService.createOperator
Note that I get the same exception if I try, for example, to use the J48 learner.
This is what I did so far (I'm using the Eclipse platform for Java):
1. In Eclipse, I have (myself) built the Java classes corresponding to the Java source files in the folder
C:\Program Files\Rapid-I\RapidMiner-4.1beta2\src
输出文件夹的名字叫C:\Program Files\Rapid-I\RapidMiner-4.1beta2\build
2. I have added the above "build" class folder to the Java build path of the project
3. I have defined the variable "rapidminer.home" to point to
C:\Program Files\Rapid-I\RapidMiner-4.1beta2\lib\rapidminer.jar
Could you please help me with this matter?
Thank you!
Geo
Tagged:
0
Answers
please try to point the variable "rapidminer.home" to the place where a lib directory exists containing the file weka.jar, e.g. try (of course with a correct path)
In the next version, you will no longer have to specify rapidminer.home at all any longer (it is now only necessary for Weka, for all other purposes (plugins etc.) there exist new global setting possibilities. But for now the solution above should work. Of course you would have to ensure that the file "weka.jar" is actually there
Cheers,
Ingo
Thank you very much for the help.
I've set the "rapidminer.home" variable to "C://Program Files/Rapid-I/RapidMiner-4.1beta2/" and not to the work space (as you did).
And, yes, it worked!Thanks!
Unfortunately, I got an java.lang.OutOfMemoryError
Probably, I should reduce the size of my training data set (~ 67'000 records with 14 attributes) ... or is there a memory size limit imposed by RapidMiner (which can be changed)?
Cheers,
Geo
Did you try to increase the heap size setting of your Java program? Try -Xmx800m or something similar as start option for your program so that it is able to use more memory (just search at google for Java heap size setting).
In principal, there is no limit for memory included in RapidMiner. With 64 bit machines, you can use (almost) arbitrary amounts of memory (but you have to tell Java this, see above). If you work directly on databases, which is possible with a certain setting in the DBExampleSource operator, there are no limits at all. But this will not properly work for all types of processes and is rather slow so we recommend to work in memory whenever this is possible.
Cheers,
Ingo
Thanks anyway for all your hints!
I am not too familiar with M5P so maybe this learner just needs a lot of memory... you could try to transform your data to only nominal (using a discretization operator) or only numerical (using the appropriate preprocessing operators) and try other learners instead. Of course increasing the main memory and changing to a 64 bit always is an option...
Cheers,
Ingo
I have changed myeclipse.inifile such that it now looks as follows: And, as I said, I still get thatOutOfMemoryError. I, however, think that changing the eclipse.ini file did not matter at all. Why am I saying this?
Because I've also modified theRapidMinerGUI.batfile such that it now has and, surprise, the RapidMinertooldoes not throw anymore theOutOfMemoryError. However, theJava program(developed in Eclipse) that uses the RapidMiner library still throws theOutOfMemoryError...
Cheers,
Geo