/// <summary> /// Called from MetricComputation /// </summary> protected override void ComputeImplementation() { Results = new SerializableDictionary <string, double>(); IMetricComputation avgP = new AveragePrecisionQueryComputation(_matrix, _oracle); avgP.Compute(); Results.Add("MeanAveragePrecision", avgP.Results.Values.Average()); }
/// <summary> /// Called from MetricComputation /// </summary> protected override void ComputeImplementation() { Results = new SerializableDictionary<string, double>(); IMetricComputation avgP = new AveragePrecisionQueryComputation(_matrix, _oracle); avgP.Compute(); Results.Add("MeanAveragePrecision", avgP.Results.Values.Average()); }
public override void Compute() { Logger.Trace("Starting metrics computation: " + _config.TechniqueName); TLSimilarityMatrix matrix = (TLSimilarityMatrix)Workspace.Load("CandidateMatrix"); TLSimilarityMatrix oracle = (TLSimilarityMatrix)Workspace.Load("AnswerMatrix"); #region Precision if (_config.Precision) { Logger.Trace("Computing precision..."); IMetricComputation computation = new PrecisionQueryComputation(matrix, oracle); computation.Compute(); ResultsController.Instance.AddResult(_config.TechniqueName, _config.DatasetName, computation); } else { Logger.Trace("Skipped precision computation."); } #endregion #region Recall if (_config.Recall) { Logger.Trace("Computing recall..."); IMetricComputation computation = new RecallQueryComputation(matrix, oracle); computation.Compute(); ResultsController.Instance.AddResult(_config.TechniqueName, _config.DatasetName, computation); } else { Logger.Trace("Skipped recall computation."); } #endregion #region Average Precision if (_config.AveragePrecision) { Logger.Trace("Computing average precision..."); IMetricComputation computation = new AveragePrecisionQueryComputation(matrix, oracle); computation.Compute(); ResultsController.Instance.AddResult(_config.TechniqueName, _config.DatasetName, computation); } else { Logger.Trace("Skipped average precision computation."); } #endregion #region Mean Average Precision if (_config.MeanAveragePrecision) { Logger.Trace("Computing mean average precision..."); IMetricComputation computation = new MeanAveragePrecisionComputation(matrix, oracle); computation.Compute(); ResultsController.Instance.AddResult(_config.TechniqueName, _config.DatasetName, computation); } else { Logger.Trace("Skipped mean average precision computation."); } #endregion }