@Override public List<PMMLOutputField> getOutputFields() { List<PMMLOutputField> fields = new ArrayList<>(); for (String key : outputFieldMap.keySet()) { OutputField of = outputFieldMap.get(key); fields.add(new PMMLOutputField(of, null, this.getModelId())); } Map<String, MiningField> includeFromMining = getFilteredMiningFieldMap(true, FIELDUSAGETYPE.PREDICTED, FIELDUSAGETYPE.TARGET); Map<String, PMMLDataField> dataDictionary = getOwner().getDataDictionaryMap(); if (includeFromMining != null && !includeFromMining.isEmpty()) { for (String key : includeFromMining.keySet()) { MiningField field = includeFromMining.get(key); PMMLDataField df = dataDictionary.get(key); fields.add(new PMMLOutputField(field, df.getRawDataField(), this.getModelId())); } } return fields; }
@Override public List<PMMLMiningField> getMiningFields() { List<PMMLMiningField> fields = new ArrayList<>(); Map<String, MiningField> excludesTargetMap = miningFieldMap; Map<String, PMMLDataField> dataDictionary = getOwner().getDataDictionaryMap(); for (String key : excludesTargetMap.keySet()) { PMMLDataField df = dataDictionary.get(key); MiningField mf = miningFieldMap.get(key); if (df != null) { fields.add(new PMMLMiningField(mf, df.getRawDataField(), this.getModelId(), true)); } else { PMMLMiningField fld = new PMMLMiningField(mf, this.getModelId()); if (this.getParentModel() != null) { PMML4Model ultimateParentModel = this.getParentModel(); if (ultimateParentModel instanceof Miningmodel) { while (ultimateParentModel.getParentModel() != null) { ultimateParentModel = ultimateParentModel.getParentModel(); } PMMLOutputField ofld = ((Miningmodel) ultimateParentModel).findOutputField(fld.getName()); if (ofld != null) { fld.setType(ofld.getType()); fields.add(fld); } } } } } return fields; }