Skip to content

AmadeusITGroup/cPMML

Repository files navigation

cPMML

Travis (.org) GitHub

High-Performance PMML Scoring

cPMML is C++ library for scoring machine learning models serialized with the Predictive Model Markup Language (PMML). It exposes a minimalist and user-friendly API and it targets high performance in model scoring, keeping a predictable and minimal memory footprint.

Currently, the following PMML elements are supported:

  • PMML General structure (preprocessing, data dictionary, etc.)
  • Tree-based models
  • Regression models
  • Ensembles of the previous

Getting Started

#include "cPMML.h"

cpmml::Model model("IrisTree.xml");
std::unordered_map<std::string, std::string> sample = {
	{"sepal_length","6.6"},
	{"sepal_width","2.9"},
	{"petal_length","4.6"},
	{"petal_width","1.3"}
};

std::cout << model.predict(sample); // "Iris-versicolor"

Set-up

Linux / Mac

git clone https://github.com/AmadeusITGroup/cPMML.git && cd cPMML && ./install.sh
Prerequisites
  • Git
  • CMAKE >= 3.5.1
  • Compiler supporting C++11

Windows

git clone https://github.com/AmadeusITGroup/cPMML.git && cd cPMML && install.bat
Prerequisites
  • Git
  • CMAKE >= 3.5.1
  • MinGW-W64 supporting C++11

Documentation

Please refer to the official documentation for further details.

Contributing

Please read CONTRIBUTING.md for details on how to submit your pull requests.

Authors

  • Paolo Iannino - Initial work - Paolo

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details