#ifndef _RISK_H_ #define _RISK_H_ #include #include "sparse_vector.h" class EvaluationMetric; namespace training { class CandidateSet; class CandidateSetRisk { explicit CandidateSetRisk(const CandidateSet& cs, const EvaluationMetric& metric) : cands_(cs), metric_(metric) {} // compute the risk (expected loss) of a CandidateSet // (optional) the gradient of the risk with respect to params double operator()(const std::vector& params, SparseVector* g = NULL) const; private: const CandidateSet& cands_; const EvaluationMetric& metric_; }; }; #endif