RapidMiner (anteriormente, YALE, Yet Another Learning Environment) es un programa informático para el análisis y minería de datos. Permite el desarrollo de procesos de análisis de datos mediante el encadenamiento de operadores a través de un entorno gráfico. Se usa en investigación educación, capacitación, creación rápida de prototipos y en aplicaciones empresariales. En una encuesta realizada por KDnuggets, un periódico de minería de datos, RapidMiner ocupó el segundo lugar en herramientas de analítica y de minería de datos utilizadas para proyectos reales en 20091 y fue el primero en 2010.2
La versión inicial fue desarrollada por el departamento de inteligencia artificial de la Universidad de Dortmund en 2001. Se distribuye bajo licencia AGPL y está hospedado en SourceForge desde el 2004. (Fuente)
Ahora a la acción:
Cómo crear un proceso completo con la API de Java?
import com.rapidminer.RapidMiner;
import com.rapidminer.example.Attribute;
import com.rapidminer.example.ExampleReader;
import com.rapidminer.example.ExampleSet;
import com.rapidminer.operator.IOContainer;
import com.rapidminer.operator.Model;
import com.rapidminer.operator.ModelApplier;
import com.rapidminer.operator.Operator;
import com.rapidminer.operator.OperatorCreationException;
import com.rapidminer.operator.OperatorException;
import com.rapidminer.operator.io.ExampleSource;
import com.rapidminer.operator.learner.Learner;
import com.rapidminer.tools.OperatorService;
import com.rapidminer.Process;
import java.io.File;
public class SingleOperator {
private static Process process1;
private static String trainPath = "/your_user/train_path/";
private static String testPath = "/your_user/test_path/";
public static void main(String[] args) {
try {
RapidMiner.init();
// create process
process1 = new Process(new File("/your_user/file_path/file.rmp"));
// learn
Operator exampleSource = OperatorService.createOperator(ExampleSource.class);
exampleSource.setParameter("attributes",
trainPath + "/training_data.xml");
IOContainer container = exampleSource.apply(new IOContainer());
ExampleSet exampleSet = container.get(ExampleSet.class);
// here the string based creation must be used since the J48 operator
// do not have an own class (derived from the Weka library).
Learner learner = (Learner) OperatorService.createOperator("J48");
Model model = learner.learn(exampleSet);
// loading the test set (plus adding the model to result container)
Operator testSource =
OperatorService.createOperator(ExampleSource.class);
testSource.setParameter("attributes", testPath + "/test_data.xml");
container = testSource.apply(new IOContainer());
container = container.append(model);
// applying the model
Operator modelApp = OperatorService.createOperator(ModelApplier.class);
container = modelApp.apply(container);
// print results
ExampleSet resultSet = container.get(ExampleSet.class);
Attribute predictedLabel = (Attribute) resultSet.getAttributes().getPredictedLabel();
for (ExampleReader reader = resultSet.getExampleReader(); reader.hasNext();) {
System.out.println(reader.next().getValueAsString(predictedLabel));
}
} catch (OperatorCreationException e) {
System.err.println("Cannot create operator:" + e.getMessage());
} catch (OperatorException e) {
System.err.println("Cannot create model: " + e.getMessage());
} catch (Exception e) {
System.err.println("Cannot initialize RapidMiner:" + e.getMessage());
}
}
}
No hay comentarios:
Publicar un comentario