Altair RISE
A program to recognize and reward our most engaged community members
Nominate Yourself Now!
Home
Discussions
Community Q&A
"Problem using OperatorChain(ROCBasedComparisonOperator) from java ?"
shiva_cse1986
How to use OperatorChain from java .for eg ROCBasedComparisonOperator
I am using this for generating ROC curve for an input arff file using NaiveBayes Learner.
Here goes my code->
RapidMiner.init();
com.rapidminer.Process process = new Process();
Operator readArff = OperatorService.createOperator(ArffExampleSource.class);
readArff.setParameter(ArffExampleSource.PARAMETER_DATA_FILE, "D:/rm/campaign-classification-traindata.arff");
OutputPort readArffOutputPort = readArff.getOutputPorts().getPortByName("output");
Operator attributes = OperatorService.createOperator(ChangeAttributeRole.class);
attributes.setParameter("name", "opened");
attributes.setParameter("target_role", "label");
InputPort attributesInputPort = attributes.getInputPorts().getPortByName("example set input");
OutputPort attributesOutputPort = attributes.getOutputPorts().getPortByName("example set output");
readArffOutputPort.connectTo(attributesInputPort);
Operator algorithm = OperatorService.createOperator(NaiveBayes.class);
InputPort algorithmInputPort = algorithm.getInputPorts().getPortByName("training set");
OutputPort algorithmOutPort = algorithm.getOutputPorts().getPortByName("model");
Operator rocCompop = OperatorService.createOperator(ROCBasedComparisonOperator.class);
OperatorChain rocCompChain = (OperatorChain)rocCompop;
rocCompChain.getSubprocess(0).addOperator(algorithm);
InputPort rocCompInputPort = rocCompChain.getInputPorts().getPortByName("example set");
attributesOutputPort.connectTo(rocCompInputPort);
process.getRootOperator().getSubprocess(0).addOperator(readArff);
process.getRootOperator().getSubprocess(0).addOperator(attributes);
process.getRootOperator().getSubprocess(0).addOperator(rocCompChain);
rocCompChain.doWork();
process.run();
Collection<OutputPort> ioc = process.getRootOperator().getSubprocess(0).getAllOutputPorts();
Problem running this.here goes my stacktrace->
com.rapidminer.operator.UserError: No data was deliverd at port Compare ROCs.example set.
at com.rapidminer.operator.ports.impl.AbstractPort.getData(AbstractPort.java:79)
at com.rapidminer.operator.visualization.ROCBasedComparisonOperator.doWork(ROCBasedComparisonOperator.java:108)
Find more posts tagged with
AI Studio
Java
Accepted answers
All comments
land
Hi,
if the chain is part of a process which you want execute, you mustn't start the chain itself by calling doWork(). If you do, the previous operators aren't executed and hence did not deliver data.
Greetings,
Sebastian
shiva_cse1986
@Sebastian
,thank ypu for the reply.
I even tried without explicictly calling doWork() method of OperatorChain ie.ROCBasesCamparisonOperator,even then exception is thrown saying that "No data is delivered input port of the NaiveBayes Operator"
Exception raised is :-
com.rapidminer.operator.UserError: No data was deliverd at port Naive Bayes.training set.
at com.rapidminer.operator.ports.impl.AbstractPort.getData(AbstractPort.java:79)
at com.rapidminer.operator.learner.AbstractLearner.doWork(AbstractLearner.java:134)
at com.rapidminer.operator.Operator.execute(Operator.java:771)
at com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:51)
at com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:709)
at com.rapidminer.operator.visualization.ROCBasedComparisonOperator.doWork(ROCBasedComparisonOperator.java:159)
at com.rapidminer.operator.Operator.execute(Operator.java:771)
at com.rapidminer.operator.execution.SimpleUnitExecutor.execute(SimpleUnitExecutor.java:51)
at com.rapidminer.operator.ExecutionUnit.execute(ExecutionUnit.java:709)
at com.rapidminer.operator.OperatorChain.doWork(OperatorChain.java:368)
at com.rapidminer.operator.Operator.execute(Operator.java:771)
at com.rapidminer.Process.run(Process.java:899)
at com.rapidminer.Process.run(Process.java:795)
at com.rapidminer.Process.run(Process.java:790)
at com.rapidminer.Process.run(Process.java:780)
***************************
Sebastian, can u plz give a sample program demonstarting the use of OperatorChains.
***************************
land
Hi,
sorry, but you will have to wait for the integration guide. I'm rather busy right now and I can't just use one hour for making a good example.
Greetings,
Sebastian
Quick Links
All Categories
Recent Discussions
Activity
Unanswered
日本語 (Japanese)
한국어(Korean)
Groups