@Override public PMML4Model getRootModel() { for (PMML4Model model : this.modelsMap.values()) { if (model.getParentModel() == null) { return model; } } return null; }
@Override public Miningmodel getRootMiningModel() { for (PMML4Model model : this.modelsMap.values()) { if (model.getParentModel() == null && model instanceof Miningmodel) { return (Miningmodel) model; } } return null; }
/** * Retrieves a Map with entries that consist of * key -> a model identifier * value -> the PMML4Model object that the key refers to * where the PMML4Model does not indicate a parent model (i.e. the * model is not a child model) * @return The Map of model identifiers and their corresponding PMML4Model objects */ @Override public Map<String, PMML4Model> getRootModels() { Map<String, PMML4Model> rootModels = new HashMap<>(); for (PMML4Model model : this.modelsMap.values()) { if (model.getParentModel() == null) { rootModels.put(model.getModelId(), model); } } return rootModels; }
@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; }