/*
* File: SupervisedPerformanceEvaluator.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright September 27, 2007, Sandia Corporation. Under the terms of Contract
* DE-AC04-94AL85000, there is a non-exclusive license for use of this work by
* or on behalf of the U.S. Government. Export of this program may require a
* license from the United States Government. See CopyrightHistory.txt for
* complete details.
*
*
*/
package gov.sandia.cognition.learning.performance;
import gov.sandia.cognition.learning.data.InputOutputPair;
import gov.sandia.cognition.evaluator.Evaluator;
import gov.sandia.cognition.learning.data.TargetEstimatePair;
import java.util.Collection;
/**
* The {@code SupervisedPerformanceEvaluator} interface extends the
* {@code PerformanceEvaluator} interface for performance evaluations of
* supervised machine learning algorithms where the target type is evaluated
* against the estimated type produced by the evaluator.
*
* @param <InputType> The input type to evaluate.
* @param <TargetType> The type of the ground-truth targets (the labels).
* @param <EstimateType> The type of estimate to evaluate.
* @param <ResultType> The output type of the performance evalautor.
* @author Justin Basilico
* @since 2.0
*/
public interface SupervisedPerformanceEvaluator
<InputType, TargetType, EstimateType, ResultType>
extends PerformanceEvaluator
<Evaluator<? super InputType, ? extends EstimateType>,
Collection<? extends InputOutputPair<? extends InputType, TargetType>>,
ResultType>
{
/**
* Evaluates the performance accuracy of the given estimates against the
* given targets.
*
* @param data The target-estimate pairs to use to evaluate performance.
* @return The performance evaluation result.
*/
ResultType evaluatePerformance(
Collection<? extends TargetEstimatePair<? extends TargetType, ? extends EstimateType>> data);
}