RapidMiner

Access Fast Large Margin Weights

by Moderator on ‎06-13-2017 07:47 AM - edited Monday by Community Manager

Fast Large Margin is an SVM-Like algorithm which runs in O(n). This is very nice in terms of run time. It provides coefficient for each attribute which might be used as weights. To access them you need to use a small Groovy script in an Execute Script operator:

 

Execute Script operatorExecute Script operator

 

 

import com.rapidminer.operator.learner.functions.FastMarginModel;
import java.util.logging.Level;
import com.rapidminer.tools.Ontology;
import com.rapidminer.example.utils.ExampleSetBuilder;
import com.rapidminer.example.utils.ExampleSets;

FastMarginModel inputmodel = input[0];

ArrayList<Attribute> attributes = new ArrayList<Attribute>();
attributes.add(AttributeFactory.createAttribute("word", Ontology.NOMINAL));
attributes.add(AttributeFactory.createAttribute("weight", Ontology.REAL));

ExampleSetBuilder builder = ExampleSets.from(attributes);

for(int i = 0; i < inputmodel.attributeConstructions.length; ++i){
	double[] values = new double[2];
	values[0] = attributes.get(0).getMapping().mapString(inputmodel.attributeConstructions[i]);
	values[1] = inputmodel.linearModel.w[i]
	builder.addRow(values);
}
return builder.build()

Attached is a process demonstrating this.