From 6302ee2eafcd86ea7b3c708e4cc7120e785db60b Mon Sep 17 00:00:00 2001 From: "a.croix" <croix.alexandre@gmail.com> Date: Mon, 18 Feb 2019 10:34:53 +0100 Subject: [PATCH] Change float usage in double + implementation of computeScoreTo function --- pom.xml | 7 +++++++ .../java/wowa/training/SolutionDistance.java | 17 ++++++++++++++--- .../be/cylab/java/wowa/training/Trainer.java | 6 +++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 218428f..5bc24af 100644 --- a/pom.xml +++ b/pom.xml @@ -24,6 +24,13 @@ <version>5.3.1</version> <scope>test</scope> </dependency> + <!-- https://mvnrepository.com/artifact/info.debatty/java-aggregation --> + <dependency> + <groupId>info.debatty</groupId> + <artifactId>java-aggregation</artifactId> + <version>0.2</version> + </dependency> + </dependencies> <build> <plugins> diff --git a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java index 34fc75e..a42bf8f 100644 --- a/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java +++ b/src/main/java/be/cylab/java/wowa/training/SolutionDistance.java @@ -1,16 +1,27 @@ package be.cylab.java.wowa.training; +import info.debatty.java.aggregation.WOWA; + public class SolutionDistance { private double[] weights_w; private double[] weights_p; private double distance = Double.POSITIVE_INFINITY; - public float computeScoreTo() { - return 0; + public void computeScoreTo(double[][] data, double[] expected) { + this.distance = 0; + for (int i = 0; i < data.length; i++) { + double[] vector = data[i]; + double target_value = expected[i]; + WOWA wowa = new WOWA(this.weights_w, this.weights_p); + double aggregated_value = wowa.aggregates(vector); + this.distance += Math.pow(target_value - aggregated_value, 2); + } + this.distance = Math.sqrt(this.distance); + } - public void randomlyMutateWithProbability(float probability) { + public void randomlyMutateWithProbability(double probability) { } diff --git a/src/main/java/be/cylab/java/wowa/training/Trainer.java b/src/main/java/be/cylab/java/wowa/training/Trainer.java index f7fe21c..982831d 100644 --- a/src/main/java/be/cylab/java/wowa/training/Trainer.java +++ b/src/main/java/be/cylab/java/wowa/training/Trainer.java @@ -8,7 +8,7 @@ public class Trainer { this.parameters = parameters; } - public SolutionDistance run(float[][] data, float[] expected) { + public SolutionDistance run(double[][] data, double[] expected) { } @@ -24,7 +24,7 @@ public class Trainer { return 0; } - public SolutionDistance[] computeDistances(SolutionDistance[] solutions, float[][] data, float[] expected) { + public SolutionDistance[] computeDistances(SolutionDistance[] solutions, double[][] data, double[] expected) { } @@ -56,7 +56,7 @@ public class Trainer { return this.parameters; } - public SolutionDistance[] generateInitialPopulationAndComputeDistances(int populationSize, float[][] data, float[] expected) { + public SolutionDistance[] generateInitialPopulationAndComputeDistances(int populationSize, double[][] data, double[] expected) { } -- GitLab