Java Code Examples for org.dmg.pmml.PMML#getModels()
The following examples show how to use
org.dmg.pmml.PMML#getModels() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: KMeansPMMLUtils.java From oryx with Apache License 2.0 | 6 votes |
/** * Validates that the encoded PMML model received matches expected schema. * * @param pmml {@link PMML} encoding of KMeans Clustering * @param schema expected schema attributes of KMeans Clustering */ public static void validatePMMLVsSchema(PMML pmml, InputSchema schema) { List<Model> models = pmml.getModels(); Preconditions.checkArgument(models.size() == 1, "Should have exactly one model, but had %s", models.size()); Model model = models.get(0); Preconditions.checkArgument(model instanceof ClusteringModel); Preconditions.checkArgument(model.getMiningFunction() == MiningFunction.CLUSTERING); DataDictionary dictionary = pmml.getDataDictionary(); Preconditions.checkArgument( schema.getFeatureNames().equals(AppPMMLUtils.getFeatureNames(dictionary)), "Feature names in schema don't match names in PMML"); MiningSchema miningSchema = model.getMiningSchema(); Preconditions.checkArgument(schema.getFeatureNames().equals( AppPMMLUtils.getFeatureNames(miningSchema))); }
Example 2
Source File: PMMLUtil.java From jpmml-evaluator with GNU Affero General Public License v3.0 | 6 votes |
static public Model findModel(PMML pmml, Predicate<Model> predicate, String predicateXPath){ if(!pmml.hasModels()){ throw new MissingElementException(MissingElementException.formatMessage(XPathUtil.formatElement(pmml.getClass()) + "/" + predicateXPath), pmml); } List<Model> models = pmml.getModels(); Optional<Model> result = models.stream() .filter(predicate) .findAny(); if(!result.isPresent()){ throw new MissingElementException(MissingElementException.formatMessage(XPathUtil.formatElement(pmml.getClass()) + "/" + predicateXPath), pmml); } return result.get(); }
Example 3
Source File: RDFPMMLUtils.java From oryx with Apache License 2.0 | 5 votes |
/** * Validates that the encoded PMML model received matches expected schema. * * @param pmml {@link PMML} encoding of a decision forest * @param schema expected schema attributes of decision forest */ public static void validatePMMLVsSchema(PMML pmml, InputSchema schema) { List<Model> models = pmml.getModels(); Preconditions.checkArgument(models.size() == 1, "Should have exactly one model, but had %s", models.size()); Model model = models.get(0); MiningFunction function = model.getMiningFunction(); if (schema.isClassification()) { Preconditions.checkArgument(function == MiningFunction.CLASSIFICATION, "Expected classification function type but got %s", function); } else { Preconditions.checkArgument(function == MiningFunction.REGRESSION, "Expected regression function type but got %s", function); } DataDictionary dictionary = pmml.getDataDictionary(); Preconditions.checkArgument( schema.getFeatureNames().equals(AppPMMLUtils.getFeatureNames(dictionary)), "Feature names in schema don't match names in PMML"); MiningSchema miningSchema = model.getMiningSchema(); Preconditions.checkArgument(schema.getFeatureNames().equals( AppPMMLUtils.getFeatureNames(miningSchema))); Integer pmmlIndex = AppPMMLUtils.findTargetIndex(miningSchema); if (schema.hasTarget()) { int schemaIndex = schema.getTargetFeatureIndex(); Preconditions.checkArgument( pmmlIndex != null && schemaIndex == pmmlIndex, "Configured schema expects target at index %s, but PMML has target at index %s", schemaIndex, pmmlIndex); } else { Preconditions.checkArgument(pmmlIndex == null); } }
Example 4
Source File: PMMLUtilsTest.java From oryx with Apache License 2.0 | 5 votes |
@Test public void testReadWrite() throws Exception { Path tempModelFile = Files.createTempFile(getTempDir(), "model", ".pmml"); PMML model = buildDummyModel(); PMMLUtils.write(model, tempModelFile); assertTrue(Files.exists(tempModelFile)); PMML model2 = PMMLUtils.read(tempModelFile); List<Model> models = model2.getModels(); assertEquals(1, models.size()); assertInstanceOf(models.get(0), TreeModel.class); TreeModel treeModel = (TreeModel) models.get(0); assertEquals(123.0, treeModel.getNode().getRecordCount().doubleValue()); assertEquals(MiningFunction.CLASSIFICATION, treeModel.getMiningFunction()); }
Example 5
Source File: ReflectionUtilTest.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 5 votes |
@Test public void copyState(){ PMML pmml = new PMML(Version.PMML_4_4.getVersion(), new Header(), new DataDictionary()); // Initialize a live list instance pmml.getModels(); CustomPMML customPmml = new CustomPMML(); ReflectionUtil.copyState(pmml, customPmml); assertSame(pmml.getVersion(), customPmml.getVersion()); assertSame(pmml.getHeader(), customPmml.getHeader()); assertSame(pmml.getDataDictionary(), customPmml.getDataDictionary()); assertFalse(pmml.hasModels()); assertFalse(customPmml.hasModels()); pmml.addModels(new RegressionModel()); assertTrue(pmml.hasModels()); assertTrue(customPmml.hasModels()); assertSame(pmml.getModels(), customPmml.getModels()); try { ReflectionUtil.copyState(customPmml, pmml); fail(); } catch(IllegalArgumentException iae){ // Ignored } }
Example 6
Source File: SegmentationOutputExample.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 5 votes |
@Override public PMML transform(PMML pmml){ List<Model> models = pmml.getModels(); for(Model model : models){ if(model instanceof MiningModel){ MiningModel miningModel = (MiningModel)model; transform(miningModel); } } return pmml; }
Example 7
Source File: SkipFilterTest.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Test public void filterChainedSegmentation() throws Exception { PMML pmml = ResourceUtil.unmarshal(ChainedSegmentationTest.class, new SkipFilter("Segmentation")); assertNotNull(pmml.getDataDictionary()); assertNotNull(pmml.getTransformationDictionary()); List<Model> models = pmml.getModels(); MiningModel miningModel = (MiningModel)models.get(0); assertNotNull(miningModel.getMiningSchema()); assertNotNull(miningModel.getOutput()); assertNull(miningModel.getSegmentation()); }
Example 8
Source File: SkipFilterTest.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 4 votes |
@Test public void filterNestedSegmentation() throws Exception { PMML pmml = ResourceUtil.unmarshal(NestedSegmentationTest.class, new SkipFilter(Segmentation.class)); assertNotNull(pmml.getDataDictionary()); List<Model> models = pmml.getModels(); MiningModel miningModel = (MiningModel)models.get(0); assertNotNull(miningModel.getMiningSchema()); assertNotNull(miningModel.getLocalTransformations()); assertNotNull(miningModel.getOutput()); assertNull(miningModel.getSegmentation()); }
Example 9
Source File: ObjectMapperTest.java From jpmml-model with BSD 3-Clause "New" or "Revised" License | 2 votes |
@Test public void jsonClone() throws Exception { DataField dataField = new DataField(FieldName.create("x"), OpType.CATEGORICAL, DataType.BOOLEAN); DataDictionary dataDictionary = new DataDictionary() .addDataFields(dataField); MiningField miningField = new MiningField(FieldName.create("x")); MiningSchema miningSchema = new MiningSchema() .addMiningFields(miningField); assertSame(dataField.getName(), miningField.getName()); SimplePredicate simplePredicate = new SimplePredicate(FieldName.create("x"), SimplePredicate.Operator.IS_NOT_MISSING, null); Node node = new ComplexNode(simplePredicate); TreeModel treeModel = new TreeModel() .setMiningSchema(miningSchema) .setNode(node); PMML pmml = new PMML() .setDataDictionary(dataDictionary) .addModels(treeModel); DirectByteArrayOutputStream buffer = new DirectByteArrayOutputStream(1024); JacksonUtil.writePMML(pmml, buffer); PMML jsonPmml; try(InputStream is = buffer.getInputStream()){ jsonPmml = JacksonUtil.readPMML(is); } DataDictionary jsonDataDictionary = jsonPmml.getDataDictionary(); List<DataField> jsonDataFields = jsonDataDictionary.getDataFields(); assertEquals(1, jsonDataFields.size()); DataField jsonDataField = jsonDataFields.get(0); assertEquals(dataField.getName(), jsonDataField.getName()); assertEquals(dataField.getOpType(), jsonDataField.getOpType()); assertEquals(dataField.getDataType(), jsonDataField.getDataType()); List<Model> jsonModels = jsonPmml.getModels(); assertEquals(1, jsonModels.size()); TreeModel jsonTreeModel = (TreeModel)jsonModels.get(0); MiningSchema jsonMiningSchema = jsonTreeModel.getMiningSchema(); List<MiningField> jsonMiningFields = jsonMiningSchema.getMiningFields(); assertEquals(1, jsonMiningFields.size()); MiningField jsonMiningField = jsonMiningFields.get(0); assertEquals(miningField.getName(), jsonMiningField.getName()); assertEquals(miningField.getUsageType(), jsonMiningField.getUsageType()); assertSame(jsonDataField.getName(), jsonMiningField.getName()); Node jsonNode = jsonTreeModel.getNode(); SimplePredicate jsonSimplePredicate = (SimplePredicate)jsonNode.getPredicate(); assertEquals(simplePredicate.getField(), jsonSimplePredicate.getField()); assertEquals(simplePredicate.getOperator(), jsonSimplePredicate.getOperator()); assertSame(jsonDataField.getName(), jsonSimplePredicate.getField()); assertSame(jsonMiningField.getName(), jsonSimplePredicate.getField()); }