diff options
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.xtend | 13 |
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){ |