aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
diff options
context:
space:
mode:
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend13
1 files changed, 7 insertions, 6 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
index c486a328..eec3a880 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.xtend
@@ -60,17 +60,18 @@ class KSDistance extends CostDistance {
60 return value; 60 return value;
61 } 61 }
62 62
63 // actually calculates Manhattan Distance due to KS-Distance does not make sense for discrete distributions
63 def nodeTypeDistance(HashMap<String, Double> samples){ 64 def nodeTypeDistance(HashMap<String, Double> samples){
64 var typesDistMap = g.nodeTypeSamples; 65 var typesDistMap = g.nodeTypeSamples;
65 var sourceDist = newArrayList(); 66 var keys = new HashSet<String>(typesDistMap.keySet());
66 var instanceDist = newArrayList(); 67 keys.addAll(samples.keySet());
68 var distance = 0.0;
67 69
68 for(key : typesDistMap.keySet()){ 70 for(key : keys){
69 sourceDist.add(typesDistMap.get(key)); 71 distance += Math.abs(typesDistMap.getOrDefault(key, 0.0) - samples.getOrDefault(key, 0.0));
70 instanceDist.add(samples.getOrDefault(key, 0.0));
71 } 72 }
72 73
73 return ks_distance_two_dist(sourceDist, instanceDist); 74 return distance;
74 } 75 }
75 76
76 def edgeTypeDistance(HashMap<String, Double> samples){ 77 def edgeTypeDistance(HashMap<String, Double> samples){