public String getSegmentationAgendaId() { return getOwner().getModelId()+"_"+getSegmentationId(); } }
loadTemplates(this.multipleModelMethod); Map<String, Object> templateVars = new HashMap<>(); String pkgName = this.getOwner().getModelPackageName(); CompiledTemplate ct = null; ByteArrayOutputStream baos = new ByteArrayOutputStream(); break; case MODEL_CHAIN: templateVars.put("miningModel", this.getOwner()); templateVars.put("childSegments", this.getMiningSegments()); templateVars.put("packageName", pkgName); templateVars.put("ruleUnitClassName", this.getOwner().getRuleUnitClassName()); ct = templates.getNamedTemplate(this.multipleModelMethod.name()); TemplateRuntime.execute(ct,null,new MapVariableResolverFactory(templateVars),baos); break; case SELECT_ALL: templateVars.put("ruleUnitClassName", this.getOwner().getRuleUnitClassName()); templateVars.put("miningModel", this.getOwner()); templateVars.put("childSegments", this.getMiningSegments()); templateVars.put("packageName", pkgName); break; case SELECT_FIRST: templateVars.put("ruleUnitClassName", this.getOwner().getRuleUnitClassName()); templateVars.put("miningModel", this.getOwner()); templateVars.put("childSegments", this.getMiningSegments()); templateVars.put("packageName", pkgName);
public PMML4Model getModel(Segment segment, MiningSegmentation segmentation) { PMML4Model model = null; if (segment.getMiningModel() != null) { MiningModel mm = segment.getMiningModel(); model = new Miningmodel(mm.getModelName(), mm, segmentation.getOwner(), null); } else if (segment.getRegressionModel() != null) { RegressionModel rm = segment.getRegressionModel(); model = new Regression(rm.getModelName(), rm, segmentation.getOwner(), null); } else if (segment.getScorecard() != null) { Scorecard sc = segment.getScorecard(); model = new ScorecardModel(sc.getModelName(), sc, segmentation.getOwner(), null); } else if (segment.getTreeModel() != null) { TreeModel tm = segment.getTreeModel(); model = new Treemodel(tm.getModelName(), tm, segmentation.getOwner(), null); } return model; }
protected PMMLResource buildResourceFromSegment(PMML pmml_origin, MiningSegment segment, ClassLoader classLoader, KieModuleModel module) { PMML pmml = new PMML(); DataDictionary dd = pmml_origin.getDataDictionary(); pmml.setDataDictionary(dd); pmml.setHeader(pmml_origin.getHeader()); pmml.getAssociationModelsAndBaselineModelsAndClusteringModels().add(segment.getModel().getRawModel()); addMissingFieldDefinition(pmml, segment.getOwner(), segment); helper.setPack(segment.getModel().getModelPackageName());//PMML4Helper.pmmlDefaultPackageName()+".mining.segment_"+segment.getSegmentId()); StringBuilder rules = new StringBuilder(this.compile(pmml, classLoader)); String extBeanMiningRules = segment.getModel().getExternalBeansMiningRules(); if (extBeanMiningRules != null) { rules.append(extBeanMiningRules); } KieBaseModel kbModel = module.newKieBaseModel(segment.getOwner().getOwner().getModelId() + "_" + segment.getOwner().getSegmentationId() + "_SEGMENT_" + segment.getSegmentId()); kbModel.addPackage(helper.getPack()) .setDefault(false) .setEventProcessingMode(EventProcessingOption.CLOUD); KieSessionModel ksm = kbModel.newKieSessionModel("SEGMENT_" + segment.getSegmentId()); ksm.setDefault(true); PMMLResource resource = new PMMLResource(helper.getPack()); resource.setKieBaseModel(kbModel); resource.addRules(segment.getModel().getModelId(), rules.toString()); return resource; }