Regularized Greedy Forest (RGF) のロス関数をカスタマイズする

Regularized greedy forest (RGF) in C++

RGF の公式実装のロス関数をカスタマイズするには、C++ のコードを直接書き換えることになる。とはいえそんなに難しくない。以下の方法がお手軽。

  • src/comm/AzLoss.cpp を開く
  • AzLoss::getLosses 関数に loss_type == AzLoss_Xtemp という場合分けを追加
  • o._loss1 にロス関数の 1 階微分を代入する
  • o.loss2 にロス関数の 2 階微分を代入する
  • 使用時には loss に 'Xtemp' を指定する

getLoss の方には追加せずとも動いた。getLoss と getLosses とか、_loss1 と loss2 とか、命名が滅茶苦茶すぎてヤバい……。