public ComplexScore(Characteristic charac, Attribute attrib) { this.characteristicName = charac.getName(); this.attributeIndex = charac.getAttributes().indexOf(attrib); this.complexScore = helper.createPartialScoreFormula(attrib); this.fldNames = new ArrayList<>(); createListOfFieldNames(attrib); }
private void checkForMissingAttributes() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ String newCellRef = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), "cellRef"); if ( characteristic.getAttributes().size() == 0 ) { parseErrors.add(new ScorecardError(newCellRef, "Missing Attribute Bins for Characteristic '"+characteristic.getName()+"'.")); } } } } }
private void removeAttributeFieldExtension(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { for (Attribute attribute : characteristic.getAttributes()) { Extension fieldExtension = ScorecardPMMLUtils.getExtension(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD); if ( fieldExtension != null ) { attribute.getExtensions().remove(fieldExtension); //break; } } } } } }
private void removeEmptyExtensions(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { List<Extension> toRemoveExtensionsList = new ArrayList<Extension>(); for (Extension extension : characteristic.getExtensions()) { if (StringUtils.isEmpty(extension.getValue())) { toRemoveExtensionsList.add(extension); } } for (Extension extension : toRemoveExtensionsList) { characteristic.getExtensions().remove(extension); } for (Attribute attribute : characteristic.getAttributes()) { List<Extension> toRemoveExtensionsList2 = new ArrayList<Extension>(); for (Extension extension : attribute.getExtensions()) { if (StringUtils.isEmpty(extension.getValue())) { toRemoveExtensionsList2.add(extension); } } for (Extension extension : toRemoveExtensionsList2) { attribute.getExtensions().remove(extension); } } } } } }
for (Attribute attribute : characteristic.getAttributes()){ String value = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "predicateResolver"); if (!"TRUE".equalsIgnoreCase(value) && !"FALSE".equalsIgnoreCase(value)){ for (Attribute attribute : characteristic.getAttributes()){ String value = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "predicateResolver"); if (!StringUtil.isNumericWithOperators(value)){
public static String extractFieldNameFromCharacteristic(Characteristic c) { String field = ""; Attribute scoreAttribute = c.getAttributes().get(0); if (scoreAttribute.getSimplePredicate() != null) { field = scoreAttribute.getSimplePredicate().getField(); } else if (scoreAttribute.getSimpleSetPredicate() != null) { field = scoreAttribute.getSimpleSetPredicate().getField(); } else if (scoreAttribute.getCompoundPredicate() != null) { Object predicate = scoreAttribute.getCompoundPredicate().getSimplePredicatesAndCompoundPredicatesAndSimpleSetPredicates().get(0); if (predicate instanceof SimplePredicate){ field = ((SimplePredicate)predicate).getField(); } else if (predicate instanceof SimpleSetPredicate){ field = ((SimpleSetPredicate)predicate).getField(); } } return field; }
private void checkCharacteristics(PMML pmml) { if (pmml != null && pmml.getAssociationModelsAndBaselineModelsAndClusteringModels() != null && !pmml.getAssociationModelsAndBaselineModelsAndClusteringModels().isEmpty()) { for (Serializable s : pmml.getAssociationModelsAndBaselineModelsAndClusteringModels()) { if (s instanceof Scorecard) { Scorecard scard = (Scorecard) s; if (scard.getExtensionsAndCharacteristicsAndMiningSchemas() != null && !scard.getExtensionsAndCharacteristicsAndMiningSchemas().isEmpty()) { for (Serializable sz : scard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (sz instanceof Characteristics) { Characteristics characteristics = (Characteristics) sz; if (characteristics.getCharacteristics() == null || characteristics.getCharacteristics().isEmpty()) { Characteristic ch = new Characteristic(); ch.setBaselineScore(0.0); ch.setName("placeholder"); Attribute attr = new Attribute(); attr.setFalse(new False()); ch.getAttributes().add(attr); characteristics.getCharacteristics().add(ch); } } } } } } } } }
private void validateWeights() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ for (Attribute attribute : characteristic.getAttributes()){ String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "cellRef"),2); String weight = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_WEIGHT); if ( StringUtils.isEmpty(weight) || !isDouble(weight)){ parseErrors.add(new ScorecardError(newCellRef, "Attribute is missing weight or specified weight is not a double.")); } } } } } }
private void createAndSetPredicates(Scorecard pmmlScorecard) { for (Object obj : pmmlScorecard.getExtensionsAndCharacteristicsAndMiningSchemas()) { if (obj instanceof Characteristics) { Characteristics characteristics = (Characteristics) obj; for (org.dmg.pmml.pmml_4_2.descr.Characteristic characteristic : characteristics.getCharacteristics()) { String dataType = ScorecardPMMLUtils.getExtensionValue(characteristic.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_DATATYPE); Extension predicateExtension = null; for (Attribute attribute : characteristic.getAttributes()) { String predicateAsString = ""; String field = ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD); for (Extension extension : attribute.getExtensions()) { if ("predicateResolver".equalsIgnoreCase(extension.getName())) { predicateAsString = extension.getValue(); predicateExtension = extension; break; } } setPredicatesForAttribute(attribute, dataType, field, predicateAsString); attribute.getExtensions().remove(predicateExtension); } } } } }
private void validateReasonCodes() { for (Object obj :scorecard.getExtensionsAndCharacteristicsAndMiningSchemas()){ if (obj instanceof Characteristics){ Characteristics characteristics = (Characteristics)obj; for (Characteristic characteristic : characteristics.getCharacteristics()){ String charReasonCode = characteristic.getReasonCode(); if (charReasonCode == null || StringUtils.isEmpty(charReasonCode)){ for (Attribute attribute : characteristic.getAttributes()){ String newCellRef = createDataTypeCellRef(ScorecardPMMLUtils.getExtensionValue(attribute.getExtensions(), "cellRef"),3); String attrReasonCode = attribute.getReasonCode(); if ( attrReasonCode == null || StringUtils.isEmpty(attrReasonCode)){ parseErrors.add(new ScorecardError(newCellRef, "Attribute is missing Reason Code")); } } } } } } }
for (Attribute attribute : characteristic.getAttributes()) { for (Extension extension : attribute.getExtensions()) { if ( ScorecardPMMLExtensionNames.CHARACTERTISTIC_FIELD.equalsIgnoreCase(extension.getName())) {
_characteristic.getAttributes().add(attribute);
_characteristic.getAttributes().add(_attribute);