1#ifndef LIGHTGBM_METRIC_H_
2#define LIGHTGBM_METRIC_H_
4#include <LightGBM/utils/log.h>
5#include <LightGBM/utils/common.h>
7#include <LightGBM/meta.h>
8#include <LightGBM/config.h>
9#include <LightGBM/dataset.h>
10#include <LightGBM/objective_function.h>
33 virtual const std::vector<std::string>& GetName()
const = 0;
35 virtual double factor_to_bigger_better()
const = 0;
61 static void DefaultEvalAt(std::vector<int>* eval_at);
62 static void DefaultLabelGain(std::vector<double>* label_gain);
67 static void Init(
const std::vector<double>& label_gain);
88 static void CalDCG(
const std::vector<data_size_t>& ks,
89 const label_t* label,
const double* score,
116 static void CalMaxDCG(
const std::vector<data_size_t>& ks,
128 static std::vector<double> label_gain_;
130 static std::vector<double> discount_;
Static class, used to calculate DCG score.
Definition metric.h:59
static void CheckLabel(const label_t *label, data_size_t num_data)
Check the label range for NDCG and lambdarank.
Definition dcg_calculator.cpp:152
static double CalDCGAtK(data_size_t k, const label_t *label, const double *score, data_size_t num_data)
Calculate the DCG score at position k.
Definition dcg_calculator.cpp:107
static void Init(const std::vector< double > &label_gain)
Initial logic.
Definition dcg_calculator.cpp:40
static void CalMaxDCG(const std::vector< data_size_t > &ks, const label_t *label, data_size_t num_data, std::vector< double > *out)
Calculate the Max DCG score at multi position.
Definition dcg_calculator.cpp:75
static double GetDiscount(data_size_t k)
Get discount score of position k.
Definition metric.h:124
static void CalDCG(const std::vector< data_size_t > &ks, const label_t *label, const double *score, data_size_t num_data, std::vector< double > *out)
Calculate the DCG score at multi position.
Definition dcg_calculator.cpp:127
static double CalMaxDCGAtK(data_size_t k, const label_t *label, data_size_t num_data)
Calculate the Max DCG score at position k.
Definition dcg_calculator.cpp:51
The interface of metric. Metric is used to calculate metric result.
Definition metric.h:20
virtual std::vector< double > Eval(const double *score, const ObjectiveFunction *objective) const =0
Calcaluting and printing metric result.
virtual ~Metric()
virtual destructor
Definition metric.h:23
static LIGHTGBM_EXPORT Metric * CreateMetric(const std::string &type, const Config &config)
Create object of metrics.
Definition metric.cpp:11
Metric & operator=(const Metric &)=delete
Disable copy.
Metric(const Metric &)=delete
Disable copy.
virtual void Init(const Metadata &metadata, data_size_t num_data)=0
Initialize.
The interface of Objective Function.
Definition objective_function.h:13
desc and descl2 fields must be written in reStructuredText format
Definition application.h:10
float label_t
Type of metadata, include weight and label.
Definition meta.h:33
int32_t data_size_t
Type of data size, it is better to use signed type.
Definition meta.h:14