Open1

LightGBMコード探訪

名無し。名無し。

コンテキスト: https://bsky.app/profile/nnc5522.bsky.social/post/3laq3ensoj22x

二値分類はデフォルトでラベルが0より大きいか、どうかで1/-1を使ってloglossのgrad/hessを計算する。L37でis_pos_に無名関数がセットされてる。

この関数を使って、L113のGetGradients内で1/-1のラベルを作ってる。
is_pos_関数がtrue/falseを返す
→変数定義部分でintに暗黙的にキャスト
→0/1でclass_val_には[-1, 1]が入っててこれによってサンプルごとのラベルを作成
→作成したラベルを使ってloglossのgrad/hessを計算してる

https://github.com/microsoft/LightGBM/blob/5151fe85f08e5dccff7d48242dddace51f9c8ede/src/objective/binary_objective.hpp