objective_function.cpp 716 Bytes
Newer Older
Guolin Ke's avatar
Guolin Ke committed
1
2
3
4
#include <LightGBM/objective_function.h>
#include "regression_objective.hpp"
#include "binary_objective.hpp"
#include "rank_objective.hpp"
5
#include "multiclass_objective.hpp"
Guolin Ke's avatar
Guolin Ke committed
6
7
8
9

namespace LightGBM {

ObjectiveFunction* ObjectiveFunction::CreateObjectiveFunction(const std::string& type, const ObjectiveConfig& config) {
Guolin Ke's avatar
Guolin Ke committed
10
  if (type == std::string("regression")) {
Guolin Ke's avatar
Guolin Ke committed
11
    return new RegressionL2loss(config);
Guolin Ke's avatar
Guolin Ke committed
12
  } else if (type == std::string("binary")) {
Guolin Ke's avatar
Guolin Ke committed
13
    return new BinaryLogloss(config);
Guolin Ke's avatar
Guolin Ke committed
14
  } else if (type == std::string("lambdarank")) {
Guolin Ke's avatar
Guolin Ke committed
15
    return new LambdarankNDCG(config);
Guolin Ke's avatar
Guolin Ke committed
16
  } else if (type == std::string("multiclass")) {
17
    return new MulticlassLogloss(config);
Guolin Ke's avatar
Guolin Ke committed
18
19
20
21
  }
  return nullptr;
}
}  // namespace LightGBM