17 using TraceLab.Components.DevelopmentKit.Utils;
18 using TraceLabSDK.Types;
20 namespace TraceLab.Components.DevelopmentKit.Postprocessors
34 public static TLSimilarityMatrix
Transform(TLSimilarityMatrix large, TLSimilarityMatrix small,
double lambda)
36 TLSimilarityMatrix largeNormal = Normalize(large);
37 TLSimilarityMatrix smallNormal = Normalize(small);
38 TLSimilarityMatrix combined =
new TLSimilarityMatrix();
40 foreach (TLSingleLink largeLink
in largeNormal.AllLinks)
42 double smallLink = smallNormal.GetScoreForLink(largeLink.SourceArtifactId, largeLink.TargetArtifactId);
43 combined.AddLink(largeLink.SourceArtifactId, largeLink.TargetArtifactId, Combine(largeLink.Score, smallLink, lambda));
56 public static double Combine(
double large,
double small,
double lambda)
58 return (lambda * large) + ((1 - lambda) * small);
66 public static TLSimilarityMatrix
Normalize(TLSimilarityMatrix matrix)
68 TLSimilarityMatrix norm =
new TLSimilarityMatrix();
71 foreach (TLSingleLink link
in matrix.AllLinks)
73 norm.AddLink(link.SourceArtifactId, link.TargetArtifactId, (link.Score - mean) / stdDev);