Search in sources :

Example 1 with KiePMMLMiningField

use of org.kie.pmml.commons.model.KiePMMLMiningField in project drools by kiegroup.

the class KiePMMLMiningFieldInstanceFactory method getKiePMMLMiningField.

public static KiePMMLMiningField getKiePMMLMiningField(final MiningField toConvert, final Field<?> field) {
    String name = toConvert.getName() != null ? toConvert.getName().getValue() : "" + toConvert.hashCode();
    final FIELD_USAGE_TYPE fieldUsageType = toConvert.getUsageType() != null ? FIELD_USAGE_TYPE.byName(toConvert.getUsageType().value()) : null;
    final OP_TYPE opType = toConvert.getOpType() != null ? OP_TYPE.byName(toConvert.getOpType().value()) : null;
    final DATA_TYPE dataType = field.getDataType() != null ? DATA_TYPE.byName(field.getDataType().value()) : null;
    final MISSING_VALUE_TREATMENT_METHOD missingValueTreatmentMethod = toConvert.getMissingValueTreatment() != null ? MISSING_VALUE_TREATMENT_METHOD.byName(toConvert.getMissingValueTreatment().value()) : null;
    final INVALID_VALUE_TREATMENT_METHOD invalidValueTreatmentMethod = toConvert.getInvalidValueTreatment() != null ? INVALID_VALUE_TREATMENT_METHOD.byName(toConvert.getInvalidValueTreatment().value()) : null;
    final String missingValueReplacement = toConvert.getMissingValueReplacement() != null ? toConvert.getMissingValueReplacement().toString() : null;
    final String invalidValueReplacement = toConvert.getInvalidValueReplacement() != null ? toConvert.getInvalidValueReplacement().toString() : null;
    final List<String> allowedValues = field instanceof DataField ? convertDataFieldValues(((DataField) field).getValues()) : Collections.emptyList();
    final List<KiePMMLInterval> intervals = field instanceof DataField ? getKiePMMLIntervals(((DataField) field).getIntervals()) : Collections.emptyList();
    final KiePMMLMiningField.Builder builder = KiePMMLMiningField.builder(name, Collections.emptyList()).withFieldUsageType(fieldUsageType).withOpType(opType).withDataType(dataType).withMissingValueTreatmentMethod(missingValueTreatmentMethod).withInvalidValueTreatmentMethod(invalidValueTreatmentMethod).withMissingValueReplacement(missingValueReplacement).withInvalidValueReplacement(invalidValueReplacement).withAllowedValues(allowedValues).withIntervals(intervals);
    return builder.build();
}
Also used : MISSING_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.MISSING_VALUE_TREATMENT_METHOD) FIELD_USAGE_TYPE(org.kie.pmml.api.enums.FIELD_USAGE_TYPE) DataField(org.dmg.pmml.DataField) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) OP_TYPE(org.kie.pmml.api.enums.OP_TYPE) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) DATA_TYPE(org.kie.pmml.api.enums.DATA_TYPE) INVALID_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD)

Example 2 with KiePMMLMiningField

use of org.kie.pmml.commons.model.KiePMMLMiningField in project drools by kiegroup.

the class KiePMMLMiningFieldInstanceFactoryTest method getKiePMMLMiningField.

@Test
public void getKiePMMLMiningField() {
    DataField dataField = getRandomDataField();
    MiningField toConvert = getRandomMiningField(dataField);
    KiePMMLMiningField toVerify = KiePMMLMiningFieldInstanceFactory.getKiePMMLMiningField(toConvert, dataField);
    commonVerifyKiePMMLMiningField(toVerify, toConvert, dataField);
}
Also used : InstanceFactoriesTestCommon.commonVerifyKiePMMLMiningField(org.kie.pmml.compiler.commons.factories.InstanceFactoriesTestCommon.commonVerifyKiePMMLMiningField) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) PMMLModelTestUtils.getRandomMiningField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomMiningField) MiningField(org.dmg.pmml.MiningField) DataField(org.dmg.pmml.DataField) PMMLModelTestUtils.getRandomDataField(org.kie.pmml.compiler.api.testutils.PMMLModelTestUtils.getRandomDataField) InstanceFactoriesTestCommon.commonVerifyKiePMMLMiningField(org.kie.pmml.compiler.commons.factories.InstanceFactoriesTestCommon.commonVerifyKiePMMLMiningField) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 3 with KiePMMLMiningField

use of org.kie.pmml.commons.model.KiePMMLMiningField in project drools by kiegroup.

the class PreProcessTest method manageInvalidValuesAsValueNoReplacement.

@Test(expected = KiePMMLException.class)
public void manageInvalidValuesAsValueNoReplacement() {
    final ParameterInfo parameterInfo = new ParameterInfo();
    // AS_VALUE without replacement
    KiePMMLMiningField miningField = KiePMMLMiningField.builder("FIELD", null).withDataType(DATA_TYPE.STRING).withInvalidValueTreatmentMethod(INVALID_VALUE_TREATMENT_METHOD.AS_VALUE).build();
    List<ParameterInfo> toRemove = new ArrayList<>();
    assertNull(parameterInfo.getValue());
    assertNull(parameterInfo.getType());
    PreProcess.manageInvalidValues(miningField, parameterInfo, toRemove);
}
Also used : ArrayList(java.util.ArrayList) ParameterInfo(org.kie.api.pmml.ParameterInfo) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 4 with KiePMMLMiningField

use of org.kie.pmml.commons.model.KiePMMLMiningField in project drools by kiegroup.

the class PreProcessTest method verifyFixInvalidValuesNotInvalid.

@Test
public void verifyFixInvalidValuesNotInvalid() {
    KiePMMLMiningField miningField0 = KiePMMLMiningField.builder("FIELD-0", null).withDataType(DATA_TYPE.STRING).withAllowedValues(Arrays.asList("123", "124", "125")).build();
    KiePMMLMiningField miningField1 = KiePMMLMiningField.builder("FIELD-1", null).withDataType(DATA_TYPE.DOUBLE).withAllowedValues(Arrays.asList("1.23", "12.4", "1.25")).build();
    List<KiePMMLInterval> intervals = Arrays.asList(new KiePMMLInterval(0.0, 12.4, CLOSURE.CLOSED_CLOSED), new KiePMMLInterval(12.6, 14.5, CLOSURE.OPEN_CLOSED));
    KiePMMLMiningField miningField2 = KiePMMLMiningField.builder("FIELD-2", null).withDataType(DATA_TYPE.DOUBLE).withIntervals(intervals).build();
    List<KiePMMLMiningField> miningFields = Arrays.asList(miningField0, miningField1, miningField2);
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", "123");
    pmmlRequestData.addRequestParam("FIELD-1", 12.4);
    pmmlRequestData.addRequestParam("FIELD-2", 9.3);
    PreProcess.verifyFixInvalidValues(miningFields, pmmlRequestData);
    pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", "125");
    pmmlRequestData.addRequestParam("FIELD-1", 1.25);
    pmmlRequestData.addRequestParam("FIELD-2", 13.9);
    PreProcess.verifyFixInvalidValues(miningFields, pmmlRequestData);
}
Also used : PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) Test(org.junit.Test)

Example 5 with KiePMMLMiningField

use of org.kie.pmml.commons.model.KiePMMLMiningField in project drools by kiegroup.

the class PreProcessTest method convertInputDataNotConvertibles.

@Test(expected = KiePMMLException.class)
public void convertInputDataNotConvertibles() {
    List<KiePMMLMiningField> miningFields = IntStream.range(0, 3).mapToObj(i -> {
        DATA_TYPE dataType = DATA_TYPE.values()[i];
        new MiningField("FIELD-" + i, null, null, dataType, null, null, null, null, null, null);
        return KiePMMLMiningField.builder("FIELD-" + i, null).withDataType(dataType).build();
    }).collect(Collectors.toList());
    PMMLRequestData pmmlRequestData = new PMMLRequestData("123", "modelName");
    pmmlRequestData.addRequestParam("FIELD-0", 123);
    pmmlRequestData.addRequestParam("FIELD-1", true);
    pmmlRequestData.addRequestParam("FIELD-2", "123");
    PreProcess.convertInputData(miningFields, pmmlRequestData);
}
Also used : IntStream(java.util.stream.IntStream) CLOSURE(org.kie.pmml.api.enums.CLOSURE) KiePMMLConstant(org.kie.pmml.commons.model.expressions.KiePMMLConstant) Arrays(java.util.Arrays) KiePMMLParameterField(org.kie.pmml.commons.transformations.KiePMMLParameterField) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) KiePMMLInterval(org.kie.pmml.commons.model.expressions.KiePMMLInterval) OP_TYPE(org.kie.pmml.api.enums.OP_TYPE) ArrayList(java.util.ArrayList) MiningField(org.kie.pmml.api.models.MiningField) KiePMMLNameValue(org.kie.pmml.commons.model.tuples.KiePMMLNameValue) KiePMMLTransformationDictionary(org.kie.pmml.commons.transformations.KiePMMLTransformationDictionary) Map(java.util.Map) ProcessingDTO(org.kie.pmml.commons.model.ProcessingDTO) KiePMMLFieldRef(org.kie.pmml.commons.model.expressions.KiePMMLFieldRef) MISSING_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.MISSING_VALUE_TREATMENT_METHOD) INVALID_VALUE_TREATMENT_METHOD(org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD) MINING_FUNCTION(org.kie.pmml.api.enums.MINING_FUNCTION) ParameterInfo(org.kie.api.pmml.ParameterInfo) KiePMMLDefineFunction(org.kie.pmml.commons.transformations.KiePMMLDefineFunction) Assert.assertTrue(org.junit.Assert.assertTrue) Test(org.junit.Test) Collectors(java.util.stream.Collectors) DATA_TYPE(org.kie.pmml.api.enums.DATA_TYPE) List(java.util.List) KiePMMLApply(org.kie.pmml.commons.model.expressions.KiePMMLApply) Assert.assertNull(org.junit.Assert.assertNull) PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLTestingModel(org.kie.pmml.commons.testingutility.KiePMMLTestingModel) Optional(java.util.Optional) Collections(java.util.Collections) KiePMMLException(org.kie.pmml.api.exceptions.KiePMMLException) Assert.assertEquals(org.junit.Assert.assertEquals) KiePMMLDerivedField(org.kie.pmml.commons.transformations.KiePMMLDerivedField) PMMLRequestData(org.kie.api.pmml.PMMLRequestData) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) MiningField(org.kie.pmml.api.models.MiningField) KiePMMLMiningField(org.kie.pmml.commons.model.KiePMMLMiningField) DATA_TYPE(org.kie.pmml.api.enums.DATA_TYPE) Test(org.junit.Test)

Aggregations

KiePMMLMiningField (org.kie.pmml.commons.model.KiePMMLMiningField)20 Test (org.junit.Test)18 PMMLRequestData (org.kie.api.pmml.PMMLRequestData)15 KiePMMLInterval (org.kie.pmml.commons.model.expressions.KiePMMLInterval)14 ParameterInfo (org.kie.api.pmml.ParameterInfo)12 ArrayList (java.util.ArrayList)9 DATA_TYPE (org.kie.pmml.api.enums.DATA_TYPE)7 INVALID_VALUE_TREATMENT_METHOD (org.kie.pmml.api.enums.INVALID_VALUE_TREATMENT_METHOD)7 MISSING_VALUE_TREATMENT_METHOD (org.kie.pmml.api.enums.MISSING_VALUE_TREATMENT_METHOD)7 OP_TYPE (org.kie.pmml.api.enums.OP_TYPE)7 ProcessingDTO (org.kie.pmml.commons.model.ProcessingDTO)7 Arrays (java.util.Arrays)6 Collections (java.util.Collections)6 List (java.util.List)6 Map (java.util.Map)6 Optional (java.util.Optional)6 Collectors (java.util.stream.Collectors)6 IntStream (java.util.stream.IntStream)6 Assert.assertEquals (org.junit.Assert.assertEquals)6 Assert.assertNull (org.junit.Assert.assertNull)6