otter-stream-pmml
XML Standard
PMML (Predictive Model Markup Language) support via JPMML for portable model deployment.
Module Overview
The PMML module provides XML-based model format support via JPMML evaluator, enabling portable model deployment across different platforms. It supports various ML algorithms including regression, decision trees, neural networks, and ensemble models.
PMML Engine
XML StandardXML-based model format supporting various ML algorithms via JPMML evaluator.
- Regression, decision trees, neural networks
- Ensemble models and voting classifiers
- Automatic data type conversion
- Missing value handling
Data Preparation
PreprocessingPMML's built-in data preparation and transformation capabilities.
- Automatic field preparation via InputField
- Value transformations from PMML definitions
- Discretization and normalization
- Outlier treatment
Implementing PMML Inference
Deploy portable PMML models across different platforms.
-
Add Maven Dependencies
<dependency> <groupId>com.codedstreams</groupId> <artifactId>otter-stream-pmml</artifactId> <version>1.0.16</version> </dependency> <dependency> <groupId>org.jpmml</groupId> <artifactId>pmml-evaluator</artifactId> <version>1.6.3</version> </dependency> -
Export Model to PMML
# From scikit-learn using sklearn2pmml from sklearn2pmml import sklearn2pmml from sklearn2pmml.pipeline import PMMLPipeline pipeline = PMMLPipeline([...]) pipeline.fit(X_train, y_train) sklearn2pmml(pipeline, "model.pmml") # From R using pmml package library(pmml) model <- lm(formula, data) saveXML(pmml(model), "model.pmml") -
Configure and Use Engine
ModelConfig config = ModelConfig.builder() .modelPath("model.pmml") .modelId("credit-scoring") .format(ModelFormat.PMML) .build(); PmmlInferenceEngine engine = new PmmlInferenceEngine(); engine.initialize(config); Map<String, Object> inputs = Map.of( "age", 35, "income", 75000.0, "credit_score", 720 ); InferenceResult result = engine.infer(inputs); double score = (double) result.getOutput("risk_score");
Maven Dependencies
<dependency>
<groupId>com.codedstreams</groupId>
<artifactId>otter-stream-pmml</artifactId>
<version>1.0.16</version>
</dependency>
<dependency>
<groupId>org.jpmml</groupId>
<artifactId>pmml-evaluator</artifactId>
<version>1.6.3</version>
</dependency>