/** * Create an instance of {@link RuleSetModel } * */ public RuleSetModel createRuleSetModel() { return new RuleSetModel(); }
@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) { status = PMMLObject.traverse(visitor, getMiningSchema(), getOutput(), getModelStats(), getModelExplanation(), getTargets(), getLocalTransformations(), getRuleSet(), getModelVerification()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
public RuleSetModelEvaluator(PMML pmml, RuleSetModel ruleSetModel){ super(pmml, ruleSetModel); RuleSet ruleSet = ruleSetModel.getRuleSet(); if(ruleSet == null){ throw new MissingElementException(ruleSetModel, PMMLElements.RULESETMODEL_RULESET); } // End if if(!ruleSet.hasRuleSelectionMethods()){ throw new MissingElementException(ruleSet, PMMLElements.RULESET_RULESELECTIONMETHODS); } }
@Override public RuleSetModel addExtensions(org.dmg.pmml.Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@Override public BiMap<String, SimpleRule> load(RuleSetModel ruleSetModel){ ImmutableBiMap.Builder<String, SimpleRule> builder = new ImmutableBiMap.Builder<>(); RuleSet ruleSet = ruleSetModel.getRuleSet(); builder = collectRules(ruleSet.getRules(), new AtomicInteger(1), builder); return builder.build(); }
@Override public RuleSetModel addExtensions(org.dmg.pmml.Extension... extensions) { getExtensions().addAll(Arrays.asList(extensions)); return this; }
@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) { status = PMMLObject.traverse(visitor, getMiningSchema(), getOutput(), getModelStats(), getModelExplanation(), getTargets(), getLocalTransformations(), getRuleSet(), getModelVerification()); } visitor.popParent(); } if (status == VisitorAction.TERMINATE) { return VisitorAction.TERMINATE; } return VisitorAction.CONTINUE; }
/** * Create an instance of {@link RuleSetModel } * */ public RuleSetModel createRuleSetModel() { return new RuleSetModel(); }
RuleSetModel ruleSetModel = getModel(); RuleSet ruleSet = ruleSetModel.getRuleSet();
@Override public RuleSetModel encodeModel(Schema schema){ String defaultScore = getDefaultScore(); List<Object[]> rules = getRules(); Label label = schema.getLabel(); List<? extends Feature> features = schema.getFeatures(); RuleSelectionMethod ruleSelectionMethod = new RuleSelectionMethod(RuleSelectionMethod.Criterion.FIRST_HIT); RuleSet ruleSet = new RuleSet() .addRuleSelectionMethods(ruleSelectionMethod); if(defaultScore != null){ ruleSet .setDefaultConfidence(1d) .setDefaultScore(defaultScore); } for(Object[] rule : rules){ String predicate = TupleUtil.extractElement(rule, 0, String.class); String score = TupleUtil.extractElement(rule, 1, String.class); SimpleRule simpleRule = new SimpleRule() .setPredicate(PredicateTranslator.translate(predicate, features)) .setScore(score); ruleSet.addRules(simpleRule); } RuleSetModel ruleSetModel = new RuleSetModel(MiningFunction.CLASSIFICATION, ModelUtil.createMiningSchema(label), ruleSet); return ruleSetModel; }
@Test public void inspectTypeAnnotations(){ PMML pmml = createPMML(); assertVersionRange(pmml, Version.PMML_3_0, Version.PMML_4_3); pmml.addModels(new AssociationModel(), //new ClusteringModel(), //new GeneralRegressionModel(), //new MiningModel(), new NaiveBayesModel(), new NeuralNetwork(), new RegressionModel(), new RuleSetModel(), new SequenceModel(), //new SupportVectorMachineModel(), new TextModel(), new TreeModel()); assertVersionRange(pmml, Version.PMML_3_0, Version.PMML_4_3); pmml.addModels(new TimeSeriesModel()); assertVersionRange(pmml, Version.PMML_4_0, Version.PMML_4_3); pmml.addModels(new BaselineModel(), new Scorecard(), new NearestNeighborModel()); assertVersionRange(pmml, Version.PMML_4_1, Version.PMML_4_3); pmml.addModels(new BayesianNetworkModel(), new GaussianProcessModel()); assertVersionRange(pmml, Version.PMML_4_3, Version.PMML_4_3); }