Search in sources :

Example 1 with DoubleEntity

use of org.kie.kogito.explainability.local.counterfactual.entities.DoubleEntity in project kogito-apps by kiegroup.

the class CounterfactualEntityFactoryTest method testCreateFixedEntities.

@Test
void testCreateFixedEntities() {
    List<Feature> features = new LinkedList<>();
    features.add(FeatureFactory.newNumericalFeature("f-num1", 100.1));
    features.add(FeatureFactory.newNumericalFeature("f-num2", 100.2, NumericalFeatureDomain.create(0.0, 1000.0)));
    features.add(FeatureFactory.newNumericalFeature("f-num3", 100.3));
    features.add(FeatureFactory.newNumericalFeature("f-num4", 100.4, NumericalFeatureDomain.create(0.0, 1000.0)));
    PredictionInput input = new PredictionInput(features);
    List<CounterfactualEntity> entities = CounterfactualEntityFactory.createEntities(input);
    // Check types
    assertTrue(entities.get(0) instanceof FixedDoubleEntity);
    assertTrue(entities.get(1) instanceof DoubleEntity);
    assertTrue(entities.get(2) instanceof FixedDoubleEntity);
    assertTrue(entities.get(3) instanceof DoubleEntity);
    // Check values
    assertEquals(100.1, entities.get(0).asFeature().getValue().asNumber());
    assertEquals(100.2, entities.get(1).asFeature().getValue().asNumber());
    assertEquals(100.3, entities.get(2).asFeature().getValue().asNumber());
    assertEquals(100.4, entities.get(3).asFeature().getValue().asNumber());
    // Check constraints
    assertTrue(entities.get(0).isConstrained());
    assertFalse(entities.get(1).isConstrained());
    assertTrue(entities.get(2).isConstrained());
    assertFalse(entities.get(3).isConstrained());
}
Also used : CounterfactualEntity(org.kie.kogito.explainability.local.counterfactual.entities.CounterfactualEntity) PredictionInput(org.kie.kogito.explainability.model.PredictionInput) FixedDoubleEntity(org.kie.kogito.explainability.local.counterfactual.entities.fixed.FixedDoubleEntity) DoubleEntity(org.kie.kogito.explainability.local.counterfactual.entities.DoubleEntity) FixedDoubleEntity(org.kie.kogito.explainability.local.counterfactual.entities.fixed.FixedDoubleEntity) Feature(org.kie.kogito.explainability.model.Feature) LinkedList(java.util.LinkedList) Test(org.junit.jupiter.api.Test)

Example 2 with DoubleEntity

use of org.kie.kogito.explainability.local.counterfactual.entities.DoubleEntity in project kogito-apps by kiegroup.

the class CounterfactualEntityFactoryTest method testDoubleFactory.

@Test
void testDoubleFactory() {
    final double value = 5.5;
    final FeatureDomain domain = NumericalFeatureDomain.create(0.0, 10.0);
    final Feature feature = FeatureFactory.newNumericalFeature("double-feature", value, domain);
    final CounterfactualEntity counterfactualEntity = CounterfactualEntityFactory.from(feature);
    assertTrue(counterfactualEntity instanceof DoubleEntity);
    assertEquals(value, counterfactualEntity.asFeature().getValue().asNumber());
}
Also used : CounterfactualEntity(org.kie.kogito.explainability.local.counterfactual.entities.CounterfactualEntity) FixedDoubleEntity(org.kie.kogito.explainability.local.counterfactual.entities.fixed.FixedDoubleEntity) DoubleEntity(org.kie.kogito.explainability.local.counterfactual.entities.DoubleEntity) ObjectFeatureDomain(org.kie.kogito.explainability.model.domain.ObjectFeatureDomain) EmptyFeatureDomain(org.kie.kogito.explainability.model.domain.EmptyFeatureDomain) CategoricalFeatureDomain(org.kie.kogito.explainability.model.domain.CategoricalFeatureDomain) CurrencyFeatureDomain(org.kie.kogito.explainability.model.domain.CurrencyFeatureDomain) URIFeatureDomain(org.kie.kogito.explainability.model.domain.URIFeatureDomain) DurationFeatureDomain(org.kie.kogito.explainability.model.domain.DurationFeatureDomain) TimeFeatureDomain(org.kie.kogito.explainability.model.domain.TimeFeatureDomain) NumericalFeatureDomain(org.kie.kogito.explainability.model.domain.NumericalFeatureDomain) BinaryFeatureDomain(org.kie.kogito.explainability.model.domain.BinaryFeatureDomain) FeatureDomain(org.kie.kogito.explainability.model.domain.FeatureDomain) Feature(org.kie.kogito.explainability.model.Feature) Test(org.junit.jupiter.api.Test)

Aggregations

Test (org.junit.jupiter.api.Test)2 CounterfactualEntity (org.kie.kogito.explainability.local.counterfactual.entities.CounterfactualEntity)2 DoubleEntity (org.kie.kogito.explainability.local.counterfactual.entities.DoubleEntity)2 FixedDoubleEntity (org.kie.kogito.explainability.local.counterfactual.entities.fixed.FixedDoubleEntity)2 Feature (org.kie.kogito.explainability.model.Feature)2 LinkedList (java.util.LinkedList)1 PredictionInput (org.kie.kogito.explainability.model.PredictionInput)1 BinaryFeatureDomain (org.kie.kogito.explainability.model.domain.BinaryFeatureDomain)1 CategoricalFeatureDomain (org.kie.kogito.explainability.model.domain.CategoricalFeatureDomain)1 CurrencyFeatureDomain (org.kie.kogito.explainability.model.domain.CurrencyFeatureDomain)1 DurationFeatureDomain (org.kie.kogito.explainability.model.domain.DurationFeatureDomain)1 EmptyFeatureDomain (org.kie.kogito.explainability.model.domain.EmptyFeatureDomain)1 FeatureDomain (org.kie.kogito.explainability.model.domain.FeatureDomain)1 NumericalFeatureDomain (org.kie.kogito.explainability.model.domain.NumericalFeatureDomain)1 ObjectFeatureDomain (org.kie.kogito.explainability.model.domain.ObjectFeatureDomain)1 TimeFeatureDomain (org.kie.kogito.explainability.model.domain.TimeFeatureDomain)1 URIFeatureDomain (org.kie.kogito.explainability.model.domain.URIFeatureDomain)1