はじめに
こんにちわ。今回はばんえい競馬予想AIモデルを作る上でSonnet3.7に聞いたLightGBMのハイパーパラメータの意味について軽くまとめます。今更かよ!?な内容なので生暖かい目でご覧ください。
各ハイパーパラメータの説明
learning_rate: 0.032...
意味: 学習率。AIがどのくらい積極的に学習するか
イメージ: 学校での勉強ペース。ゆっくり確実に(小さい値)か、速く大胆に(大きい値)か
効果: 小さいと精度は上がりやすいが学習に時間がかかる。大きいと速いが粗くなりがち
n_estimators: 2559
意味: 決定木の数。いくつの「判断ルール」を組み合わせるか
イメージ: 選挙での投票者数。多いほど総意は正確になるが、時間がかかる
効果: 多いほど複雑なパターンを学習できるが、過学習のリスクも
num_leaves: 36
意味: 木の葉の数。1つの判断ルールの中での分岐数
イメージ: 質問の細かさ。「馬の体重は何kg以上?」という質問をいくつの選択肢に分けるか
効果: 多いほど細かく分類できるが、ノイズも拾いやすい
max_depth: 4
意味: 木の最大深さ。判断の階層の数
イメージ: 「はい/いいえ」の連続質問の最大数
効果: 深いほど複雑な関係性を学習できるが、過学習の危険も
min_child_samples: 62
意味: 葉ノードの最小サンプル数。判断に必要な最低データ量
イメージ: 結論を出すのに必要な最低限の事例数
効果: 大きいと安定するが細かいパターンを見逃す。小さいと過学習しやすい
(葉ノード:決定木の一番端にある最終的な判断ポイント)
subsample: 0.603...
意味: データのサブサンプリング率。学習に使うデータの割合
イメージ: 全国調査ではなく一部地域だけの調査で傾向を把握する
効果: 1未満にすると過学習を防げるが、情報損失のリスクも
colsample_bytree: 0.964...
意味: 特徴量のサンプリング率。判断に使う情報の割合
イメージ: 馬の全情報から「体重」「騎手」など一部だけに注目する
効果: 木ごとに異なる特徴量を使うことで、多様な視点からの判断になる
reg_alpha: 7.488...
意味: L1正則化。モデルの複雑さを制限
イメージ: 余計なルールを削る「整理整頓係」
効果: 不要な特徴量の影響を0にして、シンプルさを保つ
reg_lambda: 1.168...
意味: L2正則化。モデルの極端さを抑制
イメージ: 極端な判断を和らげる「バランサー」
効果: 特徴量の極端な重み付けを避け、安定した予測に
L1正則化とL2正則化について
L1正則化(Lasso回帰)
L1正則化は、モデルの複雑さを抑えるために絶対値を使ったペナルティを加える
特徴と効果:
特徴量の選択機能: 重要でない特徴量の重みを完全に0にできる(スパース性)
数式: コスト関数 + λ × |重み|の合計
視覚的イメージ: ダイヤモンド型の制約領域を作り、コーナー(軸上)で解が得られやすい
用途: 多くの特徴量から重要なものだけを自動選択したい場合に有効
L2正則化(Ridge回帰)
L2正則化は、モデルの複雑さを抑えるために二乗を使ったペナルティを加える手法です。
特徴と効果:
重みの縮小: すべての特徴量の重みを小さくしますが、完全に0にはしません
数式: コスト関数 + λ × (重み)²の合計
視覚的イメージ: 円形(楕円)の制約領域を作り、すべての方向に均等にペナルティ
用途: 多重共線性がある場合や、過学習を防ぎたい場合に有効
違いの簡単なまとめ
L1: 「不要な特徴量を捨てる」効果→モデルを単純化したい時
L2: 「すべての特徴量を残しつつ影響を小さくする」効果→バランスよく過学習を防ぎたい時
つまり特徴量が多い場合はL1、相関の高い特徴量が多い場合はL2が良いってことっぽい。
おわりに
いかがでしたか?
正直今まで数字が小さい方がカッコよくて強いくらいのミリしらAI使いだったので非常に勉強になりました。
計算結果待ちの間もログを見ながらニヤニヤできるようになったり、処理の負荷の大小をイメージしやすくなりました。
ばんえい競馬AI予想完成に向けてこれからもLightGBMと仲良くしていこうと思います。