1#ifndef LIGHTGBM_OBJECTIVE_FUNCTION_H_
2#define LIGHTGBM_OBJECTIVE_FUNCTION_H_
4#include <LightGBM/meta.h>
5#include <LightGBM/config.h>
6#include <LightGBM/dataset.h>
34 virtual const char* GetName()
const = 0;
36 virtual bool IsConstantHessian()
const {
return false; }
38 virtual bool IsRenewTreeOutput()
const {
return false; }
40 virtual double RenewTreeOutput(
double ori_output,
const double*,
45 virtual double RenewTreeOutput(
double ori_output,
double,
52 virtual double BoostFromScore(
int )
const {
return 0.0; }
54 virtual bool ClassNeedTrain(
int )
const {
return true; }
56 virtual bool SkipEmptyClass()
const {
return false; }
58 virtual int NumModelPerIteration()
const {
return 1; }
60 virtual int NumPredictOneRow()
const {
return 1; }
65 virtual void ConvertOutput(
const double* input,
double* output)
const {
69 virtual std::string ToString()
const = 0;
71 ObjectiveFunction() =
default;
The interface of Objective Function.
Definition objective_function.h:13
virtual bool NeedAccuratePrediction() const
The prediction should be accurate or not. True will disable early stopping for prediction.
Definition objective_function.h:63
ObjectiveFunction(const ObjectiveFunction &)=delete
Disable copy.
ObjectiveFunction & operator=(const ObjectiveFunction &)=delete
Disable copy.
virtual void GetGradients(const double *score, score_t *gradients, score_t *hessians) const =0
calculating first order derivative of loss function
static LIGHTGBM_EXPORT ObjectiveFunction * CreateObjectiveFunction(const std::string &type, const Config &config)
Create object of objective function.
Definition objective_function.cpp:10
virtual void Init(const Metadata &metadata, data_size_t num_data)=0
Initialize.
virtual ~ObjectiveFunction()
virtual destructor
Definition objective_function.h:16
desc and descl2 fields must be written in reStructuredText format
Definition application.h:10
float score_t
Type of score, and gradients.
Definition meta.h:26
int32_t data_size_t
Type of data size, it is better to use signed type.
Definition meta.h:14