Vowpal Wabbit
Classes | Functions
loss_functions.cc File Reference
#include <math.h>
#include "correctedMath.h"
#include <iostream>
#include <stdlib.h>
#include <float.h>
#include "global_data.h"
#include "vw_exception.h"

Go to the source code of this file.

Classes

class  squaredloss
 
class  classic_squaredloss
 
class  hingeloss
 
class  logloss
 
class  quantileloss
 
class  poisson_loss
 

Functions

loss_functiongetLossFunction (vw &all, std::string funcName, float function_parameter)
 

Function Documentation

◆ getLossFunction()

loss_function* getLossFunction ( vw all,
std::string  funcName,
float  function_parameter 
)

Definition at line 363 of file loss_functions.cc.

References shared_data::max_label, shared_data::min_label, noop_mm(), vw::sd, vw::set_minmax, and THROW.

Referenced by kernel_svm_setup(), log_multi_setup(), nn_setup(), parse_example_tweaks(), and loss_function::~loss_function().

364 {
365  if (funcName.compare("squared") == 0 || funcName.compare("Huber") == 0)
366  return new squaredloss();
367  else if (funcName.compare("classic") == 0)
368  return new classic_squaredloss();
369  else if (funcName.compare("hinge") == 0)
370  return new hingeloss();
371  else if (funcName.compare("logistic") == 0)
372  {
373  if (all.set_minmax != noop_mm)
374  {
375  all.sd->min_label = -50;
376  all.sd->max_label = 50;
377  }
378  return new logloss();
379  }
380  else if (funcName.compare("quantile") == 0 || funcName.compare("pinball") == 0 || funcName.compare("absolute") == 0)
381  {
382  return new quantileloss(function_parameter);
383  }
384  else if (funcName.compare("poisson") == 0)
385  {
386  if (all.set_minmax != noop_mm)
387  {
388  all.sd->min_label = -50;
389  all.sd->max_label = 50;
390  }
391  return new poisson_loss();
392  }
393  else
394  THROW("Invalid loss function name: \'" << funcName << "\' Bailing!");
395 }
void(* set_minmax)(shared_data *sd, float label)
Definition: global_data.h:394
void noop_mm(shared_data *, float)
Definition: global_data.cc:135
shared_data * sd
Definition: global_data.h:375
float min_label
Definition: global_data.h:150
float max_label
Definition: global_data.h:151
#define THROW(args)
Definition: vw_exception.h:181