diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend')
1 files changed, 13 insertions, 8 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend index cdce185a..d68eb9d2 100644 --- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend | |||
@@ -18,6 +18,7 @@ import java.util.List | |||
18 | import java.util.Map | 18 | import java.util.Map |
19 | import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression | 19 | import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression |
20 | import org.eclipse.xtend.lib.annotations.Accessors | 20 | import org.eclipse.xtend.lib.annotations.Accessors |
21 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric | ||
21 | 22 | ||
22 | class PartialInterpretationMetricDistance { | 23 | class PartialInterpretationMetricDistance { |
23 | 24 | ||
@@ -48,17 +49,17 @@ class PartialInterpretationMetricDistance { | |||
48 | metrics.add(new OutDegreeMetric()); | 49 | metrics.add(new OutDegreeMetric()); |
49 | metrics.add(new NodeActivityMetric()); | 50 | metrics.add(new NodeActivityMetric()); |
50 | metrics.add(new MultiplexParticipationCoefficientMetric()); | 51 | metrics.add(new MultiplexParticipationCoefficientMetric()); |
51 | metrics.add(new TypedOutDegree()); | 52 | metrics.add(new NodeTypeMetric()); |
52 | |||
53 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | 53 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); |
54 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | 54 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); |
55 | 55 | ||
56 | var mpc = ks.mpcDistance(metricSamples.mpcSamples); | 56 | var mpc = ks.mpcDistance(metricSamples.mpcSamples); |
57 | var na = ks.naDistance(metricSamples.naSamples); | 57 | var na = ks.naDistance(metricSamples.naSamples); |
58 | var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); | 58 | var outDegree = ks.outDegreeDistance(metricSamples.outDegreeSamples); |
59 | var typedOutDegree = ks.typedOutDegreeDistance(metricSamples.typedOutDegreeSamples); | 59 | //var typedOutDegree = ks.typedOutDegreeDistance(metricSamples.typedOutDegreeSamples); |
60 | 60 | var distance = new MetricDistanceGroup(mpc, na, outDegree); | |
61 | return new MetricDistanceGroup(mpc, na, outDegree, typedOutDegree); | 61 | distance.nodeTypeInfo = metricSamples.nodeTypeSamples; |
62 | return distance; | ||
62 | } | 63 | } |
63 | 64 | ||
64 | def MetricDistanceGroup calculateMetricEuclidean(PartialInterpretation partial){ | 65 | def MetricDistanceGroup calculateMetricEuclidean(PartialInterpretation partial){ |
@@ -66,7 +67,6 @@ class PartialInterpretationMetricDistance { | |||
66 | metrics.add(new OutDegreeMetric()); | 67 | metrics.add(new OutDegreeMetric()); |
67 | metrics.add(new NodeActivityMetric()); | 68 | metrics.add(new NodeActivityMetric()); |
68 | metrics.add(new MultiplexParticipationCoefficientMetric()); | 69 | metrics.add(new MultiplexParticipationCoefficientMetric()); |
69 | metrics.add(new TypedOutDegree()); | ||
70 | 70 | ||
71 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | 71 | val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); |
72 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | 72 | var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); |
@@ -158,8 +158,8 @@ class PartialInterpretationMetricDistance { | |||
158 | var features = newDoubleArrayOfSize(2); | 158 | var features = newDoubleArrayOfSize(2); |
159 | //constant term | 159 | //constant term |
160 | features.set(0, 1); | 160 | features.set(0, 1); |
161 | 161 | features.set(0, Math.sqrt(step) + 30) | |
162 | features.set(1, 1.0 / step); | 162 | features.set(1, 1.0 / (step + 30) ); |
163 | // features.set(2, violations); | 163 | // features.set(2, violations); |
164 | // features.set(3, Math.pow(violations, 2)); | 164 | // features.set(3, Math.pow(violations, 2)); |
165 | 165 | ||
@@ -172,6 +172,7 @@ class MetricDistanceGroup{ | |||
172 | var double naDistance; | 172 | var double naDistance; |
173 | var double outDegreeDistance; | 173 | var double outDegreeDistance; |
174 | var double typedOutDegreeDistance; | 174 | var double typedOutDegreeDistance; |
175 | protected var HashMap<String, Double> nodeTypeInfo; | ||
175 | 176 | ||
176 | new(double mpcDistance, double naDistance, double outDegreeDistance, double typedOutDegreeDistance){ | 177 | new(double mpcDistance, double naDistance, double outDegreeDistance, double typedOutDegreeDistance){ |
177 | this.mpcDistance = mpcDistance; | 178 | this.mpcDistance = mpcDistance; |
@@ -201,4 +202,8 @@ class MetricDistanceGroup{ | |||
201 | def double getOutDegreeDistance(){ | 202 | def double getOutDegreeDistance(){ |
202 | return this.outDegreeDistance | 203 | return this.outDegreeDistance |
203 | } | 204 | } |
205 | |||
206 | def double getNodeTypePercentage(String typeName){ | ||
207 | return nodeTypeInfo.getOrDefault(typeName, 0.0); | ||
208 | } | ||
204 | } \ No newline at end of file | 209 | } \ No newline at end of file |