2024/10/18

LightGBM vs AutoML

機械学習(Machine Learning)で、自動機械学習なAutoMLではトレーナーはいつくか使い分けて最善の学習モデルを導き出してくれる? 使い始めた当初は5つ位用意されたトレーナー全てを使える指定でやってましたが、良い結果なのは大体LightGBMでした。なので時間短縮なのか効率アップなのか、まあ、トレーナーをLightGBMだけにしてここ最近はやってます。ただ、AutoMLが採用しているLightGBMはv3.3.5なんですが、多分来月位にML.NETはVersion 4.0.0が正式にリリースされると思われます。現時点自分のアプリでもPreviewを採用してますが、自分が把握している限りLightGBMは古いまま。

そこでAutoMLでLightGBMだけを使うのであれば、LightGBMで行けば?ってのがこの所のターゲットでした。ただ、まだ現時点ではやっとLightGBMで学習させて予測の検証が出来る様にはなりましたが、ここから更に精度アップで必要なのはパラメーター・チューニングなんですが、ここは多分機械学習の深い理解がないと簡単には出来ないかと😓 その辺りを不要にして自動で行っているのがAutoMLなんだと。AutoMLでは学習時間とその繰り返し数の調整で色々試してきました。結果は運次第的にまちまちなものでした。

LightGBMでは現在

  • 繰り返し数
  • 学習率
  • 早期停止

を指定可能にして色々試してます。繰り返し数は単純に何回学習させるかです。各回の学習でのRMSEを出力させてるんですが、基本的には回数を追う毎にRMSEは低い値になっていきます。で、低くならなくなった回数が早期停止数を超えたら止まる。学習率はまあ単純には多分調節を細かくしているかザックリなのかを調整する値なんだと思います。AutoMLでは学習時間が長ければ良いって事ではないのですが、LightGBMでは回数毎にほぼ進んでいく感じで、まあ、どこかで行き詰って止まるというイメージです。AutoMLでは無謀にも1週間ぶっ通しの学習にも挑んだりしましたか、LightGBMではそれは必要なさそうなのは助かります。

機械学習の素人なので的外れかもですが、ファクター毎に枝を選択していき、良い結果が得られそうな枝を残していくって事なんだと思います。良さそうな枝を選んでも、次に選ぶものから良い結果が得られないと元の枝選択に戻って更に良いものがあるかって感じで深めていくんだと思います。なのでRMSEの値が最初はガンガン小さくなっていき、一定の所まで来ると減るスピードが落ち、減らない時もあり、その後また少しづつ減る的な動きをしてるのでAutoMLと違ってなんか判りやすい。

まあ、問題はその下限の学習モデルを検証してってか、まあ、検証というか実践で良い結果が出る保証はないんだけど、その辺りも確認しながら良いモデルに出会えれば嬉しいですね。

追記 2024.10.18 16:06
2時間までは掛かりませんでしたが、先程5,000回 0.02 20の指定で終わった学習では最適RMSEは1.3973まで来ました。

835R 1点 芝(411R) ダート(389R) 障害(35R) 8頭以下(62R) 9~12頭(255R) 13頭以上(518R) 多点
単勝 23.83%
(74.77%)
24.09%
(83.63%)
21.85%
(63.26%)
42.86%
(98.57%)
38.71%
(81.13%)
29.41%
(79.14%)
19.31%
(71.85%)
51.26%
(75.25%)
複勝 55.57%
(87.15%)
53.77%
(86.91%)
56.04%
(86.84%)
71.43%
(93.43%)
66.13%
(81.29%)
65.49%
(96.08%)
49.42%
(83.46%)
88.14%
(82.98%)
枠連 13.79%
(91.52%)
13.69%
(104.88%)
13.77%
(79.09%)
15.79%
(92.63%)
--
(--)
14.90%
(77.10%)
11.78%
(88.90%)
28.27%
(87.44%)
馬連 11.38%
(92.19%)
10.95%
(100.24%)
11.05%
(84.81%)
20.00%
(79.71%)
22.58%
(56.61%)
13.73%
(95.22%)
8.88%
(94.96%)
22.87%
(77.23%)
ワイド 23.23%
(84.61%)
21.65%
(75.77%)
23.91%
(94.40%)
34.29%
(79.71%)
41.94%
(61.13%)
27.06%
(85.06%)
19.11%
(87.20%)
44.31%
(77.32%)
馬単 5.87%
(74.49%)
4.87%
(71.75%)
5.91%
(72.75%)
17.14%
(126.00%)
16.13%
(75.81%)
7.45%
(73.53%)
3.86%
(74.81%)
22.87%
(76.13%)
三連複 4.79%
(66.50%)
4.87%
(76.67%)
4.37%
(58.28%)
8.57%
(38.57%)
14.52%
(43.39%)
5.88%
(40.31%)
3.09%
(82.16%)
14.01%
(67.87%)
三連単 2.16%
(135.16%)
2.43%
(116.03%)
1.29%
(154.70%)
8.57%
(142.57%)
6.45%
(77.10%)
3.14%
(69.33%)
1.16%
(174.52%)
14.01%
(65.36%)
総合 56.89%
(88.24%)
55.23%
(89.13%)
57.33%
(86.83%)
71.43%
(93.98%)
70.97%
(68.06%)
65.88%
(76.97%)
50.77%
(94.73%)
88.50%
(71.18%)

これと新馬CK用の最適RMSEが1.6487だった

124R 1点 芝(95R) ダート(29R) 8頭以下(19R) 9~12頭(42R) 13頭以上(63R) 多点
単勝 30.65%
(90.97%)
31.58%
(100.74%)
27.59%
(58.97%)
47.37%
(222.11%)
23.81%
(56.90%)
30.16%
(74.13%)
52.42%
(74.95%)
複勝 54.03%
(75.08%)
54.74%
(75.89%)
51.72%
(72.41%)
63.16%
(91.05%)
42.86%
(52.86%)
58.73%
(85.08%)
83.87%
(71.37%)
枠連 9.68%
(58.82%)
12.12%
(72.88%)
3.70%
(24.44%)
--
(--)
14.29%
(93.33%)
4.76%
(24.60%)
9.68%
(50.04%)
馬連 9.68%
(58.63%)
11.58%
(67.89%)
3.45%
(28.28%)
31.58%
(164.74%)
7.14%
(54.05%)
4.76%
(29.68%)
20.16%
(61.02%)
ワイド 18.55%
(52.74%)
21.05%
(61.47%)
10.34%
(24.14%)
52.63%
(109.47%)
19.05%
(75.95%)
7.94%
(20.16%)
40.32%
(55.54%)
馬単 6.45%
(81.37%)
8.42%
(106.21%)
0.00%
(0.00%)
26.32%
(381.05%)
4.76%
(55.00%)
1.59%
(8.57%)
20.16%
(58.01%)
三連複 2.42%
(15.24%)
3.16%
(19.89%)
0.00%
(0.00%)
15.79%
(99.47%)
0.00%
(0.00%)
0.00%
(0.00%)
12.10%
(50.85%)
三連単 1.61%
(98.71%)
2.11%
(128.84%)
0.00%
(0.00%)
10.53%
(644.21%)
0.00%
(0.00%)
0.00%
(0.00%)
12.10%
(43.31%)
総合 54.84%
(66.69%)
55.79%
(79.48%)
51.72%
(26.04%)
68.42%
(244.59%)
42.86%
(48.51%)
58.73%
(30.28%)
83.87%
(51.66%)

を使って順位予測CK学習用CSVを出力させて学習モデルがどこまで行けるか。ただ、まだそのコーディングはこれからですけどね😉

0 件のコメント:

コメントを投稿