@Test public void testBuildDataDictionary() { Map<Integer,Collection<String>> distinctValues = new HashMap<>(); distinctValues.put(1, Arrays.asList("one", "two", "three", "four", "five")); CategoricalValueEncodings categoricalValueEncodings = new CategoricalValueEncodings(distinctValues); DataDictionary dictionary = AppPMMLUtils.buildDataDictionary(buildTestSchema(), categoricalValueEncodings); assertEquals(4, dictionary.getNumberOfFields().intValue()); checkDataField(dictionary.getDataFields().get(0), "foo", null); checkDataField(dictionary.getDataFields().get(1), "bar", true); checkDataField(dictionary.getDataFields().get(2), "baz", null); checkDataField(dictionary.getDataFields().get(3), "bing", false); List<Value> dfValues = dictionary.getDataFields().get(1).getValues(); assertEquals(5, dfValues.size()); String[] categoricalValues = { "one", "two", "three", "four", "five" }; for (int i = 0; i < categoricalValues.length; i++) { assertEquals(categoricalValues[i], dfValues.get(i).getValue()); } }
@Override public DataField addValues(Value... values) { getValues().addAll(Arrays.asList(values)); return this; }
@Override public DataField addValues(Value... values) { getValues().addAll(Arrays.asList(values)); return this; }
static private List<String> parseCategories(DataField dataField){ List<String> result = new ArrayList<>(); if(dataField.hasValues()){ List<Value> pmmlValues = dataField.getValues(); for(Value pmmlValue : pmmlValues){ String stringValue = pmmlValue.getValue(); if(stringValue == null){ throw new MissingAttributeException(pmmlValue, PMMLAttributes.VALUE_VALUE); } Value.Property property = pmmlValue.getProperty(); switch(property){ case VALID: result.add(stringValue); break; default: break; } } } return result; }
List<Value> pmmlValues = dataField.getValues(); for(int i = 0, max = pmmlValues.size(); i < max; i++){ Value pmmlValue = pmmlValues.get(i);
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasIntervals()) { status = PMMLObject.traverse(visitor, getIntervals()); } if ((status == VisitorAction.CONTINUE)&&hasValues()) { status = PMMLObject.traverse(visitor, getValues()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
@Override public VisitorAction accept(Visitor visitor) { VisitorAction status = visitor.visit(this); if (status == VisitorAction.CONTINUE) { visitor.pushParent(this); if ((status == VisitorAction.CONTINUE)&&hasExtensions()) { status = PMMLObject.traverse(visitor, getExtensions()); } if ((status == VisitorAction.CONTINUE)&&hasIntervals()) { status = PMMLObject.traverse(visitor, getIntervals()); } if ((status == VisitorAction.CONTINUE)&&hasValues()) { status = PMMLObject.traverse(visitor, getValues()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
List<Value> pmmlValues = dataField.getValues(); for(int i = 0, max = pmmlValues.size(); i < max; i++){ Value pmmlValue = pmmlValues.get(i);