2015-02-26 8 views
0

Есть ли способ экспортировать модель gbm в C++. В частности, как мне вызвать функцию expect.gbm для запуска за пределами R, чтобы забивать новые наборы данных.Развертывание модели GBM в C++ | Получить Predict.gbm для работы за пределами R

Я экспортировал модель в виде файла PMML, но я не уверен, как новые массивы данных будут оцениваться на основе PMML.

Я новичок в R и потратил много часов, пытаясь понять это без толка и оценит зацепку

Заранее спасибо

+0

Привет, вы когда-нибудь находили механизм выполнения, написанный на C/C++? –

ответ

0

Здесь PMML только поможет вам, если у вас есть Доступен механизм оценки PMML на основе C++ (в качестве альтернативы вы можете использовать C++ для вызова механизма оценки PMML на основе Java, такого как библиотека JPMML-Evaluator).

Вы можете перевести модель GBM в исходный код на C++ и запустить ее «изначально» позже. Перевод не является трудным, потому что деревья принятия решений GBM могут быть закодированы как простые операторы if-else. Вы можете увидеть, как это реализовано в библиотеке JPMML-Converter (класс org.jpmml.converter.GBMConverter) и взять его оттуда.

Перевод на PMML:

Node node = new Node() 
    .withPredicate($predicate) 
    .withScore($score); 

Перевод на C/C++/C#:

if($predicate){ 
    return $score; 
} 

Вы можете экспортировать структуру данных GBM от R к применению C++ преобразования, используя формат данных Protobuf (как реализованный пакетом RProtoBuf). Опять же, посмотрите, как это делает библиотека JPMML-Converter.