Интеграция Rapidminer с Java: получение выходного набора примеров (Результат процесса)

1

Я хочу выполнить процесс Rapidminer с Java, чтобы использовать вывод ExampleSet (Process Result) для последующих операций (с Java).

Мне удалось выполнить выполнение процесса с помощью кода ниже, но я не знаю, как получить этот процесс.

В идеале я хочу получить любой набор примеров независимо от переменных, но если вам нужно заранее создать метаданные, это должно быть.

package com.companyname.rm;

import com.rapidminer.Process;
import com.rapidminer.RapidMiner;
import com.rapidminer.operator.OperatorException;
import com.rapidminer.tools.XMLException;

import java.io.File;
import java.io.IOException;

public class RunProcess {
    public static void main(String[] args) {
        try {
            RapidMiner.setExecutionMode(RapidMiner.ExecutionMode.COMMAND_LINE);
            RapidMiner.init();

            Process process = new Process(new File("//my_path/..../test_JAVA.rmp"));
            process.run();

        } catch (IOException | XMLException | OperatorException ex) {
            ex.printStackTrace();
        }
    }
}
Теги:
rapidminer

2 ответа

1
Лучший ответ

Чтобы получить ExampleSet процесса, вам нужно добавить

IOContainer ioResult = process.run();

Укороченный пример, взятый из http://allinoneat.blogspot.de/2013/04/integrate-rapidminer-wtih-java.html

IOContainer ioResult = process.run();
if (ioResult.getElementAt(0) instanceof ExampleSet) {
    ExampleSet resultSet = (ExampleSet) ioResult.getElementAt(0);

    for (Example example : resultSet) {
        Iterator<Attribute> allAtts = example.getAttributes().allAttributes();
            while (allAtts.hasNext()) {
                Attribute a = allAtts.next();
                if (a.isNumerical()) {
                    double value = example.getValue(a);
                    System.out.print(value + " ");
                } else {
                    String value = example.getValueAsString(a);
                    System.out.print(value + " ");
                }
            }
            System.out.println("\n");
     }
}
0

Вариант 1: щелкните контекст и сохраните вывод процесса в файлы. Затем читайте из файлов.

Option2:

Используйте WriteAsText, чтобы сохранить то, что вы хотите. Затем читайте из файла.

Я просто запускаю quickminer как скрипт:

http://rapid-i.com/rapidforum/index.php?topic=3009.0

  • 0
    Спасибо за ответ. Решение охватывает все, что я хочу, но мне нужно что-то более сдержанное, думая о внешнем производственном процессе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню