aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.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/app/PartialInterpretationMetricDistance.xtend')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend21
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
18import java.util.Map 18import java.util.Map
19import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression 19import org.apache.commons.math3.stat.regression.OLSMultipleLinearRegression
20import org.eclipse.xtend.lib.annotations.Accessors 20import org.eclipse.xtend.lib.annotations.Accessors
21import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric
21 22
22class PartialInterpretationMetricDistance { 23class 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