jpmml-evaluator  by jpmml

Java Evaluator API for PMML models

created 11 years ago
901 stars

Top 41.2% on sourcepulse

GitHubView on GitHub
Project Summary

JPMML-Evaluator provides a Java API for evaluating machine learning models exported in the Predictive Model Markup Language (PMML) format. It supports a wide range of PMML specification versions and model types, enabling seamless integration of PMML models into Java applications for scoring and prediction. The library is designed for performance and interoperability with popular ML frameworks.

How It Works

The library parses PMML files into a structured object model and provides an Evaluator interface for model execution. It handles data pre-processing (type conversion, outlier/missing value treatment) based on the PMML schema and post-processes results according to the Targets element. Its architecture supports vendor extensions, Java-backed model components, and offers various data format integrations (XML, JSON, etc.) via modular components.

Quick Start & Requirements

  • Installation: Add org.jpmml:pmml-evaluator-metro (for XML) or other runtime components to your Maven/Gradle project.
  • Prerequisites: Java 11 or newer.
  • Documentation: Features, API, Examples
  • Example Usage: Evaluate a model with CSV input/output:
    java -cp target/pmml-evaluator-example-executable-1.7-SNAPSHOT.jar org.jpmml.evaluator.example.EvaluationExample --model model.pmml --input input.csv --output output.csv
    

Highlighted Details

  • Supports PMML specification versions 3.0 through 4.4.
  • Interoperable with R, Python (Scikit-Learn), Spark ML, H2O, XGBoost, LightGBM, and TensorFlow.
  • Claims one million scorings per second on a desktop computer.
  • Allows integration of custom Java libraries into PMML data flow.

Maintenance & Community

Developed and maintained by Openscoring OÜ. Limited public support via the JPMML mailing list.

Licensing & Compatibility

Licensed under the GNU Affero General Public License, Version 3.0 (AGPLv3). A commercial license (BSD 3-Clause) is available for proprietary projects.

Limitations & Caveats

The AGPLv3 license has strong copyleft provisions that may impact integration into closed-source applications. The library is primarily Java-focused, though it supports interoperability with other ecosystems.

Health Check
Last commit

3 weeks ago

Responsiveness

Inactive

Pull Requests (30d)
0
Issues (30d)
0
Star History
2 stars in the last 90 days

Explore Similar Projects

Feedback? Help us improve.