LightGBMのコードを読み解く必要があり、調べた内容をまとめました。
LightGBMとは
GBDT(勾配ブースティング決定木)のフレームワーク
動きが早いかつ精度高く人気らしい
GOSSとEFBが重要らしいけどちゃんと理解するのは保留
使用されているパラメータ
boosting_type
boostingはアンサンブル手法のこと
LightGBMで選択できるのは下記の4つ
略 | 正式 | 日本語 | 意味 |
---|---|---|---|
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
略 | 日本語 | 意味 | 補足 |
---|---|---|---|
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で使われるパラメータ
こちらの記事で図解で説明されていたのでとてもわかりやすかったです。
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