"Modify Decision Tree Spliting Score"
cplai
New Altair Community Member
Hi all,
I am new in RapidMiner and I need help for my testing. I would like to use RapidMiner to construct a decision tree for me, but I would like to use new splitting criterion instead of Gain Ratio, Info Gain, Gini Index or the other which are provided by RapidMiner. May I know could I do that? Below is some code which generate standard decision tree with Gain Ratio.
/**
*
* @author CP Lai
*/
public class MIM_DT {
//RapidMiner operators
private Operator exampleSource;
private Operator decisionTree;
private Operator modelWriter;
public MIM_DT(){
try{
// Tell the Java application where rapidminer located and start rapidminer
System.setProperty("rapidminer.home", "C:\\Program Files\\Rapid-I\\RapidMiner");
RapidMiner.init(false, false, false, true);
// Initialize ExampleSource operator
exampleSource = OperatorService.createOperator( "ExampleSource" );
exampleSource.setParameter("attributes", "C:\\Documents and Settings\\student\\Desktop\\MIMDT\\clev_training.aml");
decisionTree = OperatorService.createOperator("DecisionTree");
decisionTree.setParameter("criterion", "gain_ratio");
modelWriter = OperatorService.createOperator("ModelWriter");
modelWriter.setParameter("model_file", "C:\\Documents and Settings\\student\\Desktop\\MIMDT\\clev_training3.mod");
modelWriter.setParameter("output_type", "Binary");
this.runMIM_DT();
}
catch(Exception e){
e.printStackTrace();
}
}
private void runMIM_DT(){
try {
IOContainer container = exampleSource.apply(new IOContainer());
ExampleSet eSet = container.get(ExampleSet.class);
container = decisionTree.apply(container);
Model aModel = container.get(Model.class);
System.out.println("Result???");
System.out.println(aModel.toString());
container = modelWriter.apply(container);
Model outModel = container.get(Model.class);
} catch (OperatorException ex) {
Logger.getLogger(MIM_DT.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args){
MIM_DT aTree = new MIM_DT();
}
}
Your help will be fully appreciated by me. Thanks you
Chee Ping
I am new in RapidMiner and I need help for my testing. I would like to use RapidMiner to construct a decision tree for me, but I would like to use new splitting criterion instead of Gain Ratio, Info Gain, Gini Index or the other which are provided by RapidMiner. May I know could I do that? Below is some code which generate standard decision tree with Gain Ratio.
/**
*
* @author CP Lai
*/
public class MIM_DT {
//RapidMiner operators
private Operator exampleSource;
private Operator decisionTree;
private Operator modelWriter;
public MIM_DT(){
try{
// Tell the Java application where rapidminer located and start rapidminer
System.setProperty("rapidminer.home", "C:\\Program Files\\Rapid-I\\RapidMiner");
RapidMiner.init(false, false, false, true);
// Initialize ExampleSource operator
exampleSource = OperatorService.createOperator( "ExampleSource" );
exampleSource.setParameter("attributes", "C:\\Documents and Settings\\student\\Desktop\\MIMDT\\clev_training.aml");
decisionTree = OperatorService.createOperator("DecisionTree");
decisionTree.setParameter("criterion", "gain_ratio");
modelWriter = OperatorService.createOperator("ModelWriter");
modelWriter.setParameter("model_file", "C:\\Documents and Settings\\student\\Desktop\\MIMDT\\clev_training3.mod");
modelWriter.setParameter("output_type", "Binary");
this.runMIM_DT();
}
catch(Exception e){
e.printStackTrace();
}
}
private void runMIM_DT(){
try {
IOContainer container = exampleSource.apply(new IOContainer());
ExampleSet eSet = container.get(ExampleSet.class);
container = decisionTree.apply(container);
Model aModel = container.get(Model.class);
System.out.println("Result???");
System.out.println(aModel.toString());
container = modelWriter.apply(container);
Model outModel = container.get(Model.class);
} catch (OperatorException ex) {
Logger.getLogger(MIM_DT.class.getName()).log(Level.SEVERE, null, ex);
}
}
public static void main(String[] args){
MIM_DT aTree = new MIM_DT();
}
}
Your help will be fully appreciated by me. Thanks you
Chee Ping
Tagged:
0
Answers
-
Hi,
you might simply put the fully qualified class name into the criterion parameter. The class should be constructed automatically, but must implement the Criterion interface.
Greetings,
Sebastian0 -
Hi Sebastian,
Do you means I need to create my custom splitting criterion? May I know how to create it? I am scratching my head of finding the solution of modify splitting condition.
Anyway, thanks for your reply.
Regards,
Chee Ping0