1
1

More than 1 year has passed since last update.

LightGBMのコードを読み解くのに必要だった知識をまとめてみた

Last updated at Posted at 2022-07-25

LightGBMのコードを読み解く必要があり、調べた内容をまとめました。

LightGBMとは

NIPS2017読み会
LightGBMの理論のまとめ

GBDT(勾配ブースティング決定木)のフレームワーク
動きが早いかつ精度高く人気らしい

GOSSとEFBが重要らしいけどちゃんと理解するのは保留

使用されているパラメータ

boosting_type

boostingはアンサンブル手法のこと
LightGBMで選択できるのは下記の4つ

lightgbm.LGBMClassifier

正式 日本語 意味
GBDT Gradient Boosting Decision Tree 勾配ブースティング決定木 https://www.acceluniverse.com/blog/developers/2019/12/gbdt.html
DART Dropouts meet Multiple Additive Regression Trees 多重加法回帰木 https://www.simpletraveler.jp/2019/10/01/gradientboosting-dart/
GOSS Gradient-based One-Side Sampling
RF Random Forest ランダムフォレスト

GOSSって日本語だとなんだろう?

objective

目的
Core Parameters

日本語 意味 補足
regression 回帰 mean_squared_errorを誤差関数として使う回帰
regression_l1 回帰 mean_absolute_errorを誤差関数として使う回帰
metricはmaeかmse,rmseがよい?
binary 二値分類 logless? ラベルは0,1
multiclass 多クラス分類 metricはmulti_logloss(softmax関数)とmulti_error, num_classsオプションも推奨
huber
fair
poisson
quantile
mape
gamma
tweedie
multiclassova
cross_entropy クロスエントロピー
cross_entropy_lambda
lambdarank
rank_xendcg

まずはregression , binary, multiclassを抑えておけばよさそう。

metric

評価方法
Metric Parameters

種類が多いので押させておきたいものだけ表にしました。

【翻訳】scikit-learn 0.18 User Guide 3.3. モデル評価:予測の質を定量化する
機械学習で使われる評価関数まとめ

その他、GBDTで使われるパラメータ

lightgbm.LGBMClassifier

こちらの記事で図解で説明されていたのでとてもわかりやすかったです。
https://knknkn.hatenablog.com/entry/2021/06/29/125226

知っておくべきライブライ

# train, testデータの分割(デフォテスト25%)
from sklearn.model_selection import train_test_split

# train, testデータの分割
from sklearn.model_selection import KFold

# カテゴリ変数を数値へ変換
from sklearn.preprocessing import LabelEncoder

# モデル評価用(回帰用)
from sklearn.metrics import mean_squared_error  # 平均二乗誤差
from sklearn.metrics import r2_score  # 決定係数

# モデル評価用(分類用、多分)
from sklearn.metrics import log_loss 
from sklearn.metrics import f1_score  # F値

# 表作成用 
import matplotlib.pyplot as plt
!pip install japanize-matplotlib  # Google Colaboratoryで必要
import japanize_matplotlib
import seaborn as sns
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1