2023/08/31

学習データ内での検証

 未来的な予測ではなく、あくまでも与えられたデータを元に学習させるとこんな結果になるのが機械学習なんだろうとは思います。新馬戦用と通常用を1時間AutoMLで学習させてみました。流石に1時間ではどちらの学習でもエラーなしで行けました。先週末までのデータを学習用に準備してるので検証期間の2021年~2022年は期間内です。これが新馬戦用の検証結果で

単勝:的中[49.50%] 回収[480.12%] 複勝:的中[86.12%] 回収[210.90%]
枠連:的中[42.28%] 回収[720.58%] 馬連:的中[36.79%] 回収[1,391.35%] 
ワイド:的中[65.05%] 回収[690.33%] 馬単:的中[25.59%] 回収[2,203.29%]
三連複:的中[29.43%] 回収[3,201.32%] 三連単:的中[12.04%] 回収[7,367.41%] 
予想[598] 的中[519] (86.79%) 購入[¥408,700] 払戻[¥9,655,320 (2,362.45%)]

こちらが通常用の検証結果で

単勝:的中[17.72%] 回収[108.13%] 複勝:的中[39.21%] 回収[91.27%]
枠連:的中[9.77%] 回収[130.07%] 馬連:的中[7.13%] 回収[188.41%] 
ワイド:的中[15.61%] 回収[124.96%] 馬単:的中[4.34%] 回収[241.35%]
三連複:的中[4.82%] 回収[349.01%] 三連単:的中[1.42%] 回収[682.03%]
予想[6,912] 的中[2,808] (40.62%) 購入[¥4,769,200] 払戻[¥13,147,980 (275.69%)]

明らかに新馬用が異常ですね😯 いくら学習データに寄せる様に調整されているとはいえ、これは無いんじゃないかと思えたり。更にそれを含んだ通常用なので間違いなく結果は引き上げられてるかと。新馬用は今回新たに新しい検証で行ったのでバグがって話もなくもないんですが、しかし、的中判定は同じメソッド使ってますので、そこにはバグは無いんじゃないかと。

で、Model Builderでも1時間学習させてみた。新馬戦用は

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBShinba\ShinbaTime.csv                      |
|Label : Souha                                                       |
|Total experiment time :  3600.0000 Secs                             |
|Total number of models explored: 3799                               |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|3203  FastTreeRegression                  2.0112     2.0530         |
|3213  FastTreeRegression                  2.0113     2.0400         |
|3186  FastTreeRegression                  2.0115     1.5820         |
|3211  FastTreeRegression                  2.0116     3.1070         |
|3217  FastTreeRegression                  2.0116     1.7630         |
|--------------------------------------------------------------------|

単勝:的中[19.40%] 回収[91.39%] 複勝:的中[49.83%] 回収[91.56%]
枠連:的中[9.22%] 回収[94.93%] 馬連:的中[7.02%] 回収[97.14%]
ワイド:的中[16.05%] 回収[76.07%] 馬単:的中[3.34%] 回収[92.81%]
三連複:的中[3.18%] 回収[35.43%] 三連単:的中[0.50%] 回収[32.39%]
予想[598] 的中[304] (50.84%) 購入[¥408,700] 払戻[¥356,410 (87.21%)]

これ見る限りではやはり新馬用の検証にバグがある訳ではない感じはしますね。通常用は
|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv                        |
|Label : Souha                                                       |
|Total experiment time :  3600.0000 Secs                             |
|Total number of models explored: 165                                |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|158   FastTreeRegression                  1.4945     37.2040        |
|116   FastTreeRegression                  1.4968     43.0370        |
|155   FastTreeRegression                  1.4968     41.7740        |
|135   FastTreeRegression                  1.5301     277.5560       |
|134   FastTreeRegression                  1.5655     16.0720        |
|--------------------------------------------------------------------|
単勝:的中[10.20%] 回収[81.66%] 複勝:的中[28.26%] 回収[80.54%]
枠連:的中[4.47%] 回収[65.10%] 馬連:的中[2.04%] 回収[47.06%]
ワイド:的中[5.84%] 回収[69.84%] 馬単:的中[1.10%] 回収[55.11%]
三連複:的中[0.91%] 回収[82.27%] 三連単:的中[0.16%] 回収[33.21%]
予想[6,912] 的中[2,031] (29.38%) 購入[¥4,769,200] 払戻[¥3,513,190 (73.66%)]

これは通常用があまりにもひどい感じですね。ちょっとどうしていいのか悩みます。

全く別のバグ

 通常用学習データCSV作成時のバグを発見。どの程度精度に影響しているかは不明ですが、バグ修正しましたので、まずは通常用学習データCSVの作成し直し。実はまあ、ちょっと機械学習クラスにメソッド追加したりしたので新馬戦用学習データCSVも新たに作成しました。なので、これらが一通り出来上がった時点でまずは走破予測の学習を行い、その後、順位予測用学習データCSVを作成し、順位予測学習という順番で作業するので週末に間に合うかは微妙。

検証のバグ修正

 いや~、意外と直ぐにバグ修正出来ました。で、学習モデルの成績が実戦配備にはまだ早い事も分かったので、更に精度が向上するべく努力するしかないです。

単勝:的中[19.27%] 回収[86.01%] 複勝:的中[45.40%] 回収[84.82%]
枠連:的中[10.29%] 回収[88.33%] 馬連:的中[6.61%] 回収[77.09%] 
ワイド:的中[16.17%] 回収[87.28%] 馬単:的中[3.47%] 回収[73.83%]
三連複:的中[3.53%] 回収[121.00%] 三連単:的中[0.71%] 回収[51.48%] 
予想[6,912] 的中[3,244] (46.93%) 購入[¥4,769,200] 払戻[¥4,568,780 (95.80%)]

まだ、TARGETとのレース数の差がどこから来ているのかは不明ではありますが、検証結果的には大分近いかと。ここで回収率的には三連複がなんですが、これ、的中率3.53%でってひたすら万馬券的なヒットで助かってるだけで、投資した場合のスランプが通常では耐えきれないんですよね。まあ、これはあくまで1点買いでの成績なので買い方工夫すれば、もしかしてって感じだと思います。
これ、自分が長年愛用しているアプリのものですが、これを超えられる様にしなきゃなんですよね。このアプリに出来るなら、超えられない事はない筈です。



2023/08/30

直面している検証問題

 リアルマネーに関わる問題なので非常に気になってます。まあね、自分のバグなら仕方が無いんですが、だから、もう少しデバックしっかりとしなきゃとは思ってます。

単勝:的中[19.27%] 回収[86.01%] 複勝:的中[67.82%] 回収[143.10%]
枠連:的中[10.29%] 回収[88.33%] 馬連:的中[6.61%] 回収[77.09%] 
ワイド:的中[33.51%] 回収[224.46%] 馬単:的中[3.47%] 回収[73.83%]
三連複:的中[3.53%] 回収[121.00%] 三連単:的中[0.71%] 回収[51.48%] 
予想[6,912] 的中[4,748] (68.69%) 購入[¥4,769,200] 払戻[¥5,919,780 (124.13%)]

この検証結果なんですが、これをTARGET外部指数で出力してTARGETで検証させると
これがワイドの成績です。軸Aは当然1点目なのでこの勝率は大体こちらの検証と一致します。しかし、ワイドの的中率も回収率も誤差レベルではないです。軸Aの3着内もこちらの複勝率からはかけ離れてます。
自分のアプリでも外部指数検証機能があったりするんですが、この結果からも1点目の3着以内はTARGETの物に誤差レベルで近い感じです。ただ、数値的な話では3着以内が複勝率と同じとは限らないって事もあります。ああっ、これは3着が同着とかで拾われたり等が3着以内と複勝率の違いとなる1つなんですが...まあ、先ずはバグの洗い出しかな😓

もう一つ気になる点なんですが、自分のアプリではレース数が当然一致はしてるので良いのですが、TARGETの同じ期間でもあるのにレース数が45レース少ないのも気になるんですよね。この2年間にレースが取りやめになったりしたのが上手く処理出来てないのか、JRA-VANのデータ処理自体に問題があるのかが心配になったりします。検証を検証するって...大変です。

Ubuntuの端末で既定で使うプロファイル指定

 Linuxのディストリビューション選定で未だに右往左往です。ただ、今試している

  • Ubuntu
  • openSUSE
  • Fedora
では、やはりUbuntuが群を抜いて良い感じかも。先日の.NET SDK 7のインストールも散々苦労させられたりしましたが、確かにopenSUSEでは問題なく.NET SDK 7のインストールが出来たりとか、それぞれのディストリビューションの違いはありました。まだまだ自分が使いきれてないからの不便は多々あるんですが、そんな中でもUbuntuの仕上がりがしっくり来てると。

ただ、何にしても日進月歩で進化するOSな為かアイビー先生やグーグル先生も役に立たないというか、逆に更に深みにはめられる事もある感じなのがWindowsとの違いかも。今回も端末(ターミナル)の起動時に希望するプロファイルを設定する方法なんですが、教えてくれる方法のメニューに無いものがとか、項目に無いものとか本当に苦労させられます。

こんな感じでプロファイル追加した奴のメニューに「デフォルトとして設定」があるので設定出来ました。

Ubuntuで更に苦労してるのが毎回起動時に求められる
これを態々自動ログインにしてるのに求められたらもともこもないのでって設定方法確認するとそんな項目が無くなってたり、更に終了時や再起動時の
これも無しにする方法として設定ファイルでって説明で指示通りにやっても有効になりません。徐々に解明してなれるしかないかなと頑張ってます。

2023/08/29

Model Builderでの24時間学習

 やっとModel Builderの24時間も終わりました。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time : 86400.0000 Secs                             |
|Total number of models explored: 3339                               |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|549   FastTreeRegression                  4.0183     94.0720        |
|551   FastTreeRegression                  4.0183     91.9470        |
|584   FastTreeRegression                  4.0184     100.4100       |
|589   FastTreeRegression                  4.0184     98.5930        |
|609   FastTreeRegression                  4.0186     101.5200       |
|--------------------------------------------------------------------|

何が悲しいって4時間程度で最適見付けて残り20時間は何? これ、Microsoftが自分の見解ではModel BuilderにもLightGBMのバグがあると思うのでそれを修正してもらうと更なる高みが望めるかも。

単勝:的中[19.27%] 回収[86.01%] 複勝:的中[67.82%] 回収[143.10%]
枠連:的中[10.29%] 回収[88.33%] 馬連:的中[6.61%] 回収[77.09%] 
ワイド:的中[33.51%] 回収[224.46%] 馬単:的中[3.47%] 回収[73.83%]
三連複:的中[3.53%] 回収[121.00%] 三連単:的中[0.71%] 回収[51.48%] 
予想[6,912] 的中[4,748] (68.69%) 購入[¥4,769,200] 払戻[¥5,919,780 (124.13%)]

学習期間内の検証とは言え、いや、RMSEの観点からだと4.0をきって欲しいと思っていましたが、今週末は取敢えずこれで行きます。ただ、喜んでばかりはいられません。これ、毎週追加の学習データ追加して24時間学習させてって手間が必要なのか。普通に考えればやれば理想だし、やらなきゃある程度の精度低下が有っても不思議じゃないですね。

本来、このソフトでトップ狙うつもりでいました😉 しかし、諦めます。JRA-VAN公認のTARGETに変わるアプリも夢見たりしましたが、止めておきます。公開準備でサイト構築とか諸々も始めてはいましたが、ちと、これがこのまま、まあ、仮にLightGBMが修正されて更に向上した場合、ソフトは破滅の道に進むのはねぇ。その昔、実は予想家したりも経験してますが、良い予想してると狙われオッズ低下で回収率激減とかね。

多分、世の中自分よりキレる方は山ほどいて、既に自分以上のアプリ完成されているかと思います。はっきり言えば、儲かるアプリとか儲かる予想家とか、公開してる時点で微妙なんですよね。ああっ、本当にお世話になってるアプリもあるので実名出しませんが、無料でしたが有料化。当たり前ですが、自分もそうですが、苦労したものをサラッと持っていかれる程度は問題なくても、自分の利益に影響するのはねぇ。ギャンブルなんで、ってか、まあ、株式投資やFXとかだってギャンブルだし、起業とかもある意味ねぇ。資本主義で裕福に行ける事を更に目指すため、このアプリの一般公開はしません😊

AutoMLでの10時間学習

 今朝方AutoMLの10時間学習が終わりました。採用されてたのはLightGBMでした。今週末実戦配備出来る様に先週末までのデータで学習させましたので、検証自体はあくまで今晩終わるModel Builderで24時間学習させている物との比較用ですが、

単勝:的中[17.94%] 回収[83.74%] 複勝:的中[66.09%] 回収[140.52%]
枠連:的中[9.73%] 回収[87.08%] 馬連:的中[6.32%] 回収[69.30%] 
ワイド:的中[32.12%] 回収[211.70%] 馬単:的中[3.41%] 回収[70.53%]
三連複:的中[3.28%] 回収[73.68%] 三連単:的中[0.55%] 回収[25.08%] 
予想[6,912] 的中[4,623] (66.88%) 購入[¥4,769,200] 払戻[¥5,204,070 (109.12%)]

1時間学習より改善されているのは時間が長いからって事より、学習期間内の検証だからの方が強いと思わないとですね。学習期間内の検証ならもう少し行けても良いと思ったりしますが、今回の学習の本当に終りの方に出たものなので、時間延長すればまだ改善はされるかも。ただ、チラッとログみたらその少し前に3時間超えのトライアルがあったりもしました。本来こちらも24時間でも良かったかもですが、時間長くなればアプリがメモリ不足で落ちる確率も上がるので10時間で行きました。

2023/08/28

ファクター追加と学習

 まあ少しやらかしました。10時間学習させている間にファクター追加したCSV出力開始。いやね、学習プロセス開始時にCSVは既に読み込んでメモリにあるんだと勝手に解釈して...だって、あのスピードで学習してくんだからと思う訳で、まあ、CSV出力開始時にはトライアルに数十分掛かるやつだった感じで、まあ、そのトライアルが相変わらずオーバーフローか何かで終わって次に行きだした途端にエラーの嵐😖 そもそもファクター追加後には使えない学習モデルなのでまあ大きく影響はないんですがね。

ああっ、学習中にCSV出力始めたら、本来期待してた修正されたスピードでガンガン行くと思いきや、やや拍子抜けなスローなスタートだったんです。まあ、当たり前ですが学習プロセスがCPU90%前後なんで残りで他のプロセスがって事で、エラーが出て学習中断すればスピードアップ。2年分で大体5分弱な感じでした。

先ずは1時間学習をModel BuilderとAutoMLにて行いました。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time :  3600.0000 Secs                             |
|Total number of models explored: 194                                |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|192   FastTreeTweedieRegression           4.1101     19.5600        |
|191   FastTreeTweedieRegression           4.1944     16.9520        |
|189   FastTreeTweedieRegression           4.2590     15.4970        |
|188   FastTreeTweedieRegression           4.2657     16.0370        |
|187   FastTreeTweedieRegression           4.2759     14.3270        |
|--------------------------------------------------------------------|

1時間としてはまずまずなRMSEだったかと。検証結果は

単勝:的中[15.08%] 回収[82.16%] 複勝:的中[60.29%] 回収[136.25%]
枠連:的中[7.11%] 回収[71.68%] 馬連:的中[4.17%] 回収[56.15%] 
ワイド:的中[25.98%] 回収[191.87%] 馬単:的中[2.14%] 回収[53.06%]
三連複:的中[2.31%] 回収[70.97%] 三連単:的中[0.33%] 回収[87.78%] 
予想[6,912] 的中[4,222] (61.08%) 購入[¥4,769,200] 払戻[¥5,133,820 (107.65%)]

とまずまずだとは思います。AutoMLの方は数分で出来たモデルの後は超えるモデルが発見出来ないまま終了。最後のトライアルも数十分やってる途中で時間切れな感じ。

単勝:的中[16.61%] 回収[79.52%] 複勝:的中[62.79%] 回収[135.41%]
枠連:的中[8.81%] 回収[75.29%] 馬連:的中[5.66%] 回収[69.97%] 
ワイド:的中[29.43%] 回収[201.00%] 馬単:的中[2.97%] 回収[68.55%]
三連複:的中[2.71%] 回収[70.85%] 三連単:的中[0.67%] 回収[47.87%] 
予想[6,912] 的中[4,412] (63.83%) 購入[¥4,769,200] 払戻[¥5,121,240 (107.38%)]

これらの学習は2004年~2020年のデータを学習させ、2021年~2022年で検証させてますので、ファクター追加した効果はかなり有ったかと思うので報われました😁 数分で出たAutoMLが的中率では勝ってるのが何度もですけどね。本来しっかりと作り込んでいればAutoMLでもModel Builder同様RMSEとか表示出来たとは思うんですが、それよりも、早くLightGBMが改善されてって方が気になってます。Microsoftの対応なので全く期待出来ないのが...

AutoMLでも学習

 順位学習のAutoML版のコーディングも済ませたので学習してます。10時間でしてるんですが、3時間程度でセーブされてたモデルを検証してみました。

単勝:的中[13.85%] 回収[86.54%] 複勝:的中[56.79%] 回収[143.68%]
枠連:的中[6.40%] 回収[71.40%] 馬連:的中[3.83%] 回収[71.23%] 
ワイド:的中[23.19%] 回収[215.05%] 馬単:的中[2.05%] 回収[87.55%]
三連複:的中[1.68%] 回収[75.04%] 三連単:的中[0.33%] 回収[53.02%] 

予想[6,912] 的中[3,983] (57.62%) 購入[¥4,769,200] 払戻[¥5,504,400 (115.42%)]

若干的中上がって回収率が下がってる感じです。まあ、途中なので最終的にこのままなのか改善されたモデルが出来るかは今晩に分かるかと思います。

ただ、ちょっと改善の余地があるかもって事でファクター追加してあるので、それも随時学習させて検証します。

2023/08/27

無茶な実戦

 いつも選択ミスが多いので今回も疑心暗鬼(?)って日本語あまり得意じゃなかったりするんですが、昨日から実戦強硬してました。昨日終了時点では多分回収率50%程度でしたので、やっちまった感が半端なかったです😓 たとえ100円競馬といえど、リアルマネーはビビりながらの投入です。

昨日もそうなんですが、流石に5頭立てに入れる気がしなくて、でも、昨日なら悪くないチョイスだったりしたんですが、本日もスルー。36件あるのはWIN5も買っているからです。回収率土日トータルでは150%程度。勝てて良かった😁 実践したのは当然ですが、検証から判断するとワイドが狙い目なのは必然です。通常用走破で行くか、順位で行くか、判断出来ずに両方とも各100円。土日で数レースかぶってたレースは1点100円のみで。2年検証でトータル回収率200%前後って実は怖いのは経験済みなんです。流石に30年程馬券買ってますので苦い経験も多々あるので、今回の決断も悩んだんですが、ここまで費やした自分の労力に報いが有っても良いのかなっとね。

今日は一日用事があるのは分かってたので10時前に35レースとWIN5に投票済ませて出掛けたりしてました。昼過ぎに確認するとまた回収率50%弱位で、やっぱり実戦は早過ぎたかなと後悔してたんですが、希望は捨てずに。札幌12Rで見事にワイ万ゲットで無事に終わりました。

実は昨晩、自分の投票データの判定機能のコーディングで若干チョンボしてユーザーデータベース内の昨日分を破壊してましたので、今朝、即PATの投票履歴から手動で復元してデバックを済ませました。ああ、今朝は5時前に起床してましたのでね。これで、後はもう少し機能追加すると、一応自分のイメージしていたアプリの完成形になりそうなところです。実際には即PAT投票部分も自分で作る予定ではいたんですが、技量不足で他の方のアプリを利用してたりなのは若干想定外だったりはしますけどね。

しかし、問題が無い訳ではないんです。今日の投票分でも、昨日のでも気が付いてたんですが、朝、レースに自分のマークを学習済みモデルの予測から付けて投票してるんですが、後でレース開いてみると、予測が変わってるレースがあるんです。変わってないレースの方が多いんですけど、気になります。そんなコーディングした気はないので、まったく原因に心当たりはないんです。まあ、馬場コンディションも予想ファクターとして入れてますので、朝の時点と札幌なんかは芝も13時過ぎに良→稍重→重と変わってるので、これが原因だとはおもうんですけど。じゃあ、朝一気に予想しちゃうのはNG? この札幌12Rの場合は朝が正解で馬場状態変わった後の予測結果ではどちらも競走中止になった9番を対抗に選んでたりします。しかし、昨日の予測が変わっているレースだと変わった方なら取れてたり😏 これって永遠のテーマなのかもですが、どこかで妥協ですね。妥協した結果が良ければねぇ。

2023/08/26

機械学習クラスを総点検

 これまでやってた機械学習はAutoML関連の情報集めながら、まあ言っちゃうと行き当たりばったりのコーディングしてた訳ですが、少し前にもチラッと触れたと思うけど、クラスにしてます。なので、順位の機械学習関連なんかは全てこのクラスに依存してる訳なんです。で、学習用のCSVに時間が掛かったりとか諸々非常に気になってまして、なんでここまで遅いのかと。まあね、自分のコーディング技量不足ってのは分かってるんです。その昔にJRA-VANの提供データ全てを取り込むフルセットアップが12時間以上掛かってたり...親切にアドバイス頂いたりして改善し、今は3時間弱。順位学習の検証も一昨日夜に実行した時には2年分が3時間半掛かってました。クラスにする時のカプセル化(?)で処理に対して無駄に変数の初期化を1回で済むのに毎回にしてたりを見直して、何とか使用に耐えられる感じになってきました。今は2年分の検証は4分ちょっとで済みます😁 なので今は必要ないのでしませんが、CSV出力に1ヶ月分が8分とか掛かってたと思うけど、それも多分改善されていると思います。

そのCSVですが、先週末まで出力済みで157MBです。もう少しで10時間学習が終わるとって見てみたら終わってた😅 勘違いなのかModel Builderのあるたまに早めに終わったのかは何ともですが、

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time : 36000.0000 Secs                             |
|Total number of models explored: 1217                               |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|568   FastTreeRegression                  4.0962     40.1740        |
|552   FastTreeRegression                  4.0963     40.9130        |
|553   FastTreeRegression                  4.0989     41.3940        |
|535   FastTreeRegression                  4.1001     43.6240        |
|556   FastTreeRegression                  4.1008     39.8560        |
|--------------------------------------------------------------------|

こんな感じでやはり最適なRMSEは4.0未満にはまだまだです。しかし、半分程度で見つけてそれ以後はって感じなので時間延ばしても改善は見込めないかも。ちょっと前にこれの前の学習での2年間検証したのが

単勝:的中[10.19%] 回収[84.45%] 複勝:的中[47.22%] 回収[140.60%]
枠連:的中[4.50%] 回収[85.24%] 馬連:的中[1.87%] 回収[65.40%] 
ワイド:的中[15.23%] 回収[197.98%] 馬単:的中[1.04%] 回収[51.10%]
 三連複:的中[0.68%] 回収[58.24%] 三連単:的中[0.10%] 回収[30.26%] 
予想[6,912] 的中[3,330] (48.18%) 購入[¥4,769,200] 払戻[¥4,871,050 (102.14%)]

って感じです。今回の学習モデルに変更すると検証期間が学習期間に含まれるのでどこまで参考になるかは分かりませんが、

単勝:的中[12.34%] 回収[77.26%] 複勝:的中[56.52%] 回収[143.50%]
枠連:的中[6.58%] 回収[89.92%] 馬連:的中[3.83%] 回収[98.87%]
ワイド:的中[23.03%] 回収[222.27%] 馬単:的中[1.84%] 回収[76.35%]
三連複:的中[1.69%] 回収[91.28%] 三連単:的中[0.35%] 回収[42.06%] 
予想[6,912] 的中[3,957] (57.25%) 購入[¥4,769,200] 払戻[¥5,754,300 (120.66%)]

となります。時間掛けた分最適なRMSEが上昇した分なのか、単に学習期間内の検証だからなのかは不明ではありますが、まずまずだったりします。あっ、今回のクラス化で検証部分もクラスの機能として実装して以前の様なザックリなものではなく、ちょっと改善。

しかし、実は通常用なんかも同じ検証が出来る様になってるんですが、こちらも先週辺りに実戦用に先々週末までだったかの学習済みモデルなので学習期間内の検証にはなりますが、

単勝:的中[19.55%] 回収[81.10%] 複勝:的中[68.63%] 回収[137.54%]
枠連:的中[10.32%] 回収[82.53%] 馬連:的中[6.97%] 回収[70.39%] 
ワイド:的中[34.39%] 回収[200.70%] 馬単:的中[3.59%] 回収[59.56%]
三連複:的中[3.67%] 回収[64.79%] 三連単:的中[0.68%] 回収[49.87%] 
予想[6,912] 的中[4,804] (69.50%) 購入[¥4,769,200] 払戻[¥5,102,560 (106.99%)]

どっちが良いとか判断が微妙につけられない結果なんですよね😔 参考までに、真面目に検証内容に目を通して疑問を持つかもしれませんが、実際自分も最初はえ?っとなりました。本来総合的な的中率って複勝の的中率だよねって思ってました。しかし、曲者は枠連なんです。枠連って当たり前ですが予想した馬じゃない同枠の馬が来ても当たります。検証中にレース毎に何がいくら当たったとか表示してて、ん?今複勝当たってないのに枠連当たってるって目に入って考えたら、まあそういう事です。どっちにしてもこの検証結果信じるとワイド買い続ければ勝てる?

2023/08/25

新たな学習も5時間

もう少しで2020年までの出力は終わるんですが、この出力開始時に5時間程度は掛かる感じでしたので5時間学習させてみた。
|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time : 18000.0000 Secs                             |
|Total number of models explored: 1253                               |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|462   FastTreeRegression                  4.1876     20.5310        |
|887   FastTreeRegression                  4.1876     21.1860        |
|382   FastTreeRegression                  4.1915     19.1030        |
|827   FastTreeRegression                  4.1915     21.5000        |
|489   FastTreeRegression                  4.1915     19.3440        |
|--------------------------------------------------------------------|
最適見付けるのに苦労してる感じはしますね。長い分若干マシな結果にはなってますが、2004年~2020年のデータで10時間更には24時間もする必要性はあるかも。

Ubuntu 22.04.3 LTSへ.NET SDK 7のインストール

 昨日相当な時間掛けて色々とやりました。.NET SDK 7のインストール。アイビー先生に質問したりグーグル先生にお願いしたりと試してましたが原因不明でRuntimeはインストールされるけどSDKが入らない。インストールでエラー出てませんか?と言われても出ていれば気が付く。Microsoftの説明通りにやってもダメ。色々な場所の説明通りでもダメ。まあ、ダメな方法しかないのでAI駆使しても情報源が無ければ当然ながら解決不能。

そんな中でも若干の情報的に複数のリポジトリからパッケージが提供されているとバージョンにあったものが的確にダウンロードされなくて問題になるという事。そんな感じのQiitaの記事もあったんです。ただ、そこではUbuntuのリポジトリからソース化されない様にしてインストールする方法。これも試してましたがNGでした。調べる中でMicrosoftのトラブルシューティングに上手く出来なきゃディストリビューションのリポジトリからインストールしてみてって事でした。なので、まずはこれまでのゴミを削除するのに

sudo apt remove 'dotnet*' 'aspnet*' 'netstandard*'
sudo apt purge 'dotnet*' 'aspnet*' 'netstandard*'
sudo rm -fr /usr/share/dotnet

としてクリーンナップして、/etc/apt/preferencesファイルを

sudo vim /etc/apt/preferences

としてエディター起動して

Package: dotnet* aspnet* netstandard*
Pin: origin "packages.microsoft.com"
Pin-Priority: -10

という内容で作成。いざ、インストールという事で

sudo apt update
sudo apt install dotnet-sdk-7.0

とするんですが、update後にupgrade出来るのがあるよって言われてupgradeすると、既に要らないから削除するならremoveだよ的ステップ踏んでのインストールでした。無事に出来ているか確認するのに

dotnet --list-sdks
dotnet --version

で確認するんですが、散々苦労してたのはインストール後にこのコマンド使ってもSDKは表示されないし、バージョンの方は何やら2つの可能性があるよって表示されたりします。

dotnet --info

で情報表示すると

.NET SDK:
 Version:   7.0.110
 Commit:    ba920f88ac

ランタイム環境:
 OS Name:     ubuntu
 OS Version:  22.04
 OS Platform: Linux
 RID:         ubuntu.22.04-x64
 Base Path:   /usr/lib/dotnet/sdk/7.0.110/

Host:
  Version:      7.0.10
  Architecture: x64
  Commit:       a6dbb800a4

.NET SDKs installed:
  7.0.110 [/usr/lib/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 7.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  DOTNET_ROOT       [/usr/share/dotnet]

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

となる筈が、".NET SDKs installed:"の所が"no SDKs were found."とかになってて苦労したんです。後は、環境変数も問題があり、今回やる前から既に修正してたので多分インストール作業自体では設定されないかと思うのでPATHに/usr/share/dotnetが追加されているか確認する必要があり、DOTNET_ROOTがそもそも設定されてないので/usr/share/dotnetにしておく必要があります。

VMware Workstation 17 Player とLinux

 もう随分前のVMware Workstation 5の頃だったと思うけど、Red Hatとか入れたりしてLinuxに初めて触れたりした事があったんですが、ここ10年以上色々なLinux情報は耳にしても特に触ってみたいと感じる事も魅力もなかったのでスルーしてました。しかし、ちょっと自分の知識を増やす意味でも触っておこうとか、まあ、クラウド関連の事を色々と知る機会があったりで、Linuxの知識を増やしておいた方が良さそうだと思い重い腰を上げてみた😉

Linuxもディストリビューション色々とあり、ちと情勢把握しきれてませんが、その昔触ったRed Hatはなんだったかまあ今はIBMの子会社だったりするようですが、今回はなくとなく手を出してません。有名どころ=人気?なのかは分かりませんが、まず手を出してみようと思ったのはUbuntuとFedoraでした。UbuntuはJapanese Team作成の日本語Remixイメージとかがあったりするんですが、だから試したって事でもないんですが、これで躓き、一旦Fedoraに変更。しかし、Fedoraは仮想マシンにISOセットして起動すると、Liveで試すかメディアチェックした後Liveかトラブルシューティングの3択でスタート。まあ、最初は一応ダウンロードしたISOが問題ないか確認した方が無難と判断してメディアチェック後Liveを選択し、当然チェックはOK。しかし、その後の起動でエラー! 気を取り直して最初からLiveにしてもエラー! え?起動しない? こんな有名なディストリビューションなのに問題あるのかなぁって事で放棄。

気を取り直してUbuntuに戻り、本来?の日本語Remixではないイメージで行く事にして入れてみる。今回試したディストリビューション(3つ)の中ではインストールを含めて一番スムーズに感じました。

で、色々といじってみる過程でVisual Studio CodeでC#と.NETを使って諸々やろうと思って四苦八苦😖 アイビー先生の力を借りたりして随分と試したんですが解決出来てません。.NET使うなら最新な.NET 7だろうと.NET SDKのインストールを何度も試し、Ubuntu自体の再インストールも既に3度目なんですが全く解決出来てません。まあ、自分の知識不足が原因なんだとは思うけど、ここまで何で苦労しなきゃならないのかなぁって事で他のディストリビューションでもどうなのか気になり試してみる事にしました。

openSUSEを次のディストリビューションとして選択。openSUSEにも日本の有志が的なサイトがあったりしますが、まあ、取敢えず本家?的な日本語サイトに行くとTumbleweedとLeapがある。まあ、最先端なのか安定なのか的なものらしい。まっ、仕事でって事だと安定選択だとは思うけど、興味本位な導入でもあるので最先端って事でTumbleweedを選択。インストールは今回一番時間が掛かりました。デスクトップもいくつか選択肢があったんですが、KDE Plasmaを選択。まっ、単純にデフォルトって事らしいのでね。

取っ掛かりがUbuntuでしたので若干面食らった感じはしたんですが、結局の所Windowsに近くしてるのかな?ちょっと意図的な事は分かりませんがそう感じました。

あまりにもopenSUSEのインストールに時間が掛かり、持て余した時間を使ってFedoraに再チャレンジ。そもそも有名処だと思うFedoraが起動出来ないのが不思議で数回試すもやはりエラー。まあ、何かが原因なのは確かなんですが、結論から書くとVMwareで仮想マシン作成時にディストリビューション選択したりハードウェア構成をするんですが、いつも大体プロセッサ コアの数を2~4にするんですが、これが原因でした。確かに他のディストリビューション選択時にはデフォルトで2とかになっているのにFedoraの時には1がデフォルトなのは見てたんですが他の仮想マシン同様に4とかにすると起動しません。これが原因だと分かるまでアイビー先生に質問したりグーグル先生にお願いしたりと随分と苦労しました。で、まあ無事にインストール完了。openSUSEよりは若干早いですが、Ubuntuと比べると随分と時間掛かりました。

これはどうやらGNOMEってデスクトップらしい。なのでopenSUSEでも選択可能な感じっぽいです。

各仮想マシンをフルハイビジョンで行けば3つ並べられた感じはしますが、今回は,1920×1,200を3つ揃えて選択してるので無理がありました😅 取敢えずこの3つで色々と試してみます。

2023/08/24

学習用データ増やしての結果

 2004年~2010年でだいたい57MB弱です。なので一応1時間やってみました。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time :  3600.0000 Secs                             |
|Total number of models explored: 166                                |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|164   FastTreeRegression                  4.2906     112.2230       |
|163   FastTreeRegression                  4.2982     21.6560        |
|159   FastTreeRegression                  4.3018     2.8960         |
|44    FastTreeTweedieRegression           4.3031     3.4810         |
|24    FastTreeRegression                  4.3031     3.3460         |
|--------------------------------------------------------------------|

最後の方で少し改善してるので時間延ばせばとも思いますが、そんなには期待出来ないかも。まあ、今~2017年を出力してるんですが、~2020年まで出来たらもう少し長い時間学習させてみてもとは思ってます。でも、これは流石に難題なのか走破タイムの様に2.0未満どころか多分4.0未満も遠い気がしますね。まあ、ちょっとこれが検証でどの程度の実力か見てみないと何ともですね。



試しにModel Builderで1年分

 1年分では学習用としては全く足りないとは思いますが、まあ、動作確認がてら10分程学習させてみました。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBJuni\RaceJuni.csv                          |
|Label : Juni                                                        |
|Total experiment time :   600.0000 Secs                             |
|Total number of models explored: 286                                |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|175   FastForestRegression                4.1914     0.5160         |
|183   FastForestRegression                4.1914     0.5210         |
|186   FastForestRegression                4.1914     0.5470         |
|187   FastForestRegression                4.1914     0.5130         |
|191   FastForestRegression                4.1914     0.5280         |
|--------------------------------------------------------------------|

これ見ても全然な感じはします。どうやら若干出力スビートがもう少し早い計算ぽいので今2005年~2010年を出力してるんですが、順調に行けば16時前には終わる感じ。そこから一気に先週末までやるかもしくは2020年程度にして2021年~2022年で検証してみて最終的に先週末まででって事にするかは考えます。学習用データが増えてこの最適なRMSE値がどこまで上がるかも気になる所です。


コーディングの見直しで少し改善

 24時間学習を終えたので学習用CSV出力始めてみました。前回書いたデバッグ時に1か月分で50分はあまりにも遅過ぎるのでコーディングを再確認してみました。まあ、多少ってか大分マシになったかと。大体1ヶ月10分程に短縮出来た感じなので236ヶ月分だと40時間程では終わりそうなので8日強が2日弱なら随分と気が楽になります。まあ、それでもこれって検証にも最低でも1ヶ月10分は掛かるって事なので1年分検証するのに2時間はちょっと長いなぁ。なんかアイデアが浮かんだら改善出来るかもですが...

通常版の検証は確か2年分で20分位で出来てた気がしたんですが、何が違うのか確認すればもう少し改善出来る可能性はあるかも。まあ、取敢えず、学習用CSV出力完了したら学習させて最初の検証結果でやる気が出るかどうかに掛かってるかもです。

2023/08/23

24時間学習は無駄?

 24時間学習が無事(?)に終わりました。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBShinba\ShinbaTime.csv                      |
|Label : Souha                                                       |
|Total experiment time : 86401.0000 Secs                             |
|Total number of models explored: 42536                              |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|798   FastTreeRegression                  1.9994     11.5630        |
|921   FastTreeRegression                  1.9994     11.7550        |
|778   FastTreeRegression                  1.9995     11.5890        |
|901   FastTreeRegression                  1.9995     10.7760        |
|801   FastTreeRegression                  1.9996     11.6240        |
|--------------------------------------------------------------------|

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv                        |
|Label : Souha                                                       |
|Total experiment time : 86400.0000 Secs                             |
|Total number of models explored: 3010                               |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|2832  FastTreeTweedieRegression           1.4475     124.7470       |
|2797  FastTreeTweedieRegression           1.4476     123.4930       |
|2803  FastTreeTweedieRegression           1.4477     164.3130       |
|2800  FastTreeTweedieRegression           1.4484     180.3360       |
|2833  FastTreeTweedieRegression           1.4484     136.4710       |
|--------------------------------------------------------------------|

何故無駄って思うかというと、まあ、通常用はそれでもちょっとだけですが最後まで頑張ってますが、実は昨晩時点で最適なRMSEが1.45辺りでした。まあ、本当にちょっとだけ改善してますが、新馬戦用に至っては確か開始1時間以内で最適になって以後41,000トライアルは結局成果が出てません。

ただ、実は本当に気になっているLightGBM。Pythonのflamlではかなりの確率でLightGBMだったりしたので、ってかまあ、実はAutoMLでもなんですが、現在のModel Builderは間違いなくLightGBMに問題があると思います。一度もログに姿が無いのはありえないかと。で、先日も書きましたが、LightGBMだけではエラーになるって。"オブジェクト参照がぉ部ジェクトインスタンス設定されていません"って勝手に理解してるだけですが、自動機械学習の候補ってかアルゴリズムとしてLightGBMが割り当てられてない。なので、単独ではエラーになるけど、他のアルゴリズムを1つでも入れれば学習が成立するのでLightGBM無しで動く。まあ、実際には開発者ではないので分かりませんが、先日英語サイトで質問したけど完全にスルーされてます😖 まあ、いうなれば、Microsoftが先日閉鎖したやつの英語版的なものだとは思います。Microsof Learnとかと並んであるQ&Aの所にしたんですが、Visual Studioにはそもそも「問題を報告」ってあるんですよね。随分前に使った事があり、これってまあ流石に開発部門に飛ぶんですよ。これ、日本語でも大丈夫かは試した事がないですが、こちらに今回のLightGBMの件も投げました。再現性もあるのできっりと対処してくれる事を期待はするけど何時になるかはねぇ。

2023/08/22

次のステップ

前々から検討はしてたんですが、今回の学習済みモデルの吐き出す予測を元に今度はどの馬が勝つかを学習させる。で、まあ、ここの所滅茶苦茶コーディングしてるんですが、取敢えず、学習に使うCSV出力機能を書き上げてみました。しかし、ここでちょっとした問題があるのは、まあ、そもそも今回の機械学習で使うデータは出走別着度数も使ってる関係で、JRA-VANの提供している2004年以降で行ってます。2004年~2022年が19年なので228ヶ月で、今年が大体8か月終わりそうなので計236ヶ月分出力する事になるんですが、デバッグも兼ねて1ヶ月ぶん出力してみるとだいたい50分掛かります。だとすると、ザックリ丸8日ちょいです。でまあ今回考えているのは、一気にやるのは無理だしって事で1年分で10時間。この辺りで区切って出力し、最終的に結合すれば良い訳で、出力途中でコーディング終わればってか実際にはModel Builder使えばコーディング無しで学習にも挑めるので適度にしていくかも。

いや、実は前回までの機械学習部分もザックリ作ってたんですが、色々な部分でその機械学習機能を使う必要はあるのでクラス作ってみた。まあ、これがまた遅いんだよねぇ😔 どうしても全頭数分データ準備して予測するので仕方が無いのかなぁっと諦めてるんですが、だったら一度予測したらデータベースなんかにって事も当然可能なんですが、これ、学習済みモデルが変わればまたなんですよ。で、保存しておくって事はどのモデルでいつ予測したかとか持ってないと管理出来ないし、そんなの管理するのも嫌だなっとなる訳です。まあ、今回の様に数十年分一気に予測する事は今後は考えたくはないのですが、このデータで使うモデルにしても確定的な物があるなら良いんですが...まあ、先日の5時間では流石になので今また24時間やってます。良いのか出来ればその後にコツコツと2週間程度は掛かるつもりで挑んでみますorz

余談ですが、自分はEdgeをメインのブラウザーとしてもう随分使ってますが、ブラウザーで表示しているページを読んでくれるんですよね。英語では本当に違和感なく発声してるんですが、まあね、漢字混じりの日本語をしっかりと発音して読むのは大変な事だとは思うけど、日本語文章内に例えばVirtual Machineとあると、「バーチュアル・マチネ」とか言うんです。最初何を言ってるのかと思えばって話です。がんばれ、AI!

2023/08/21

ミスって事でもないけど

 学習用CSV出力を少し変更したので、また最初からトレーニングのやり直しです😖 で、実はここにあげる時にログ貼り付けてプロポーショナルフォントなので苦労してたんです。等倍フォント導入で、日本語フォントもあるんですが導入がちと面倒なので、取敢えずログは英数字だけなのでそれで対処。

|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBShinba\ShinbaTime.csv                      |
|Label : Souha                                                       |
|Total experiment time : 18000.0000 Secs                             |
|Total number of models explored: 13217                              |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|590   FastTreeRegression                  2.0041     5.5470         |
|672   FastTreeRegression                  2.0041     5.7210         |
|585   FastTreeRegression                  2.0043     5.5530         |
|665   FastTreeRegression                  2.0043     5.7610         |
|581   FastTreeRegression                  2.0046     5.6050         |
|--------------------------------------------------------------------|


|--------------------------------------------------------------------|
|                          Experiment Results                        |
|--------------------------------------------------------------------|
|                               Summary                              |
|--------------------------------------------------------------------|
|ML Task: regression                                                 |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv                        |
|Label : Souha                                                       |
|Total experiment time : 18004.0000 Secs                             |
|Total number of models explored: 827                                |
|--------------------------------------------------------------------|
|                        Top 5 models explored                       |
|--------------------------------------------------------------------|
|      Trainer                             RMSE       Duration       |
|--------------------------------------------------------------------|
|792   FastTreeRegression                  1.5005     53.3630        |
|790   FastTreeRegression                  1.5056     23.0950        |
|532   FastTreeRegression                  1.5113     21.8830        |
|534   FastTreeRegression                  1.5139     24.5980        |
|527   FastTreeRegression                  1.5139     24.7240        |
|--------------------------------------------------------------------|

どちらも5時間では前回におよびませんでしたのでやはりタイミングみて24時間やるしかない感じです。

でも、結局等倍フォント使ってもまだ少し面倒はありましたorz

2023/08/20

Model BuilderでのLightGBM

 Microsoft.ML.AutoMLの時にも色々と苦労したLightGBMなんですが、天下のMicrosoftが誇るアルゴリズムだと思ったんですが、きっと良いものなのかも? でも、AutoMLではエラーばかり起きてた。そこで、Model Builderに手を出したりしてるんですが、ふと、ログに出力されるアルゴリズムにLightGBMを見掛けない謎😒 ここにも何度か上げているサマリーにも全く現れない所かそもそもログにも出てきません。つまり、使われてない。そこで試したのが

LightGBMだけでのトレーニング。
エラーでトレーニング不能です。この事実にMicrosoftは気が付いてるのかな? 
としてやればFastTreeのオンパレードでトレーニングは進みます。LightGBMは全く出てきません。

そういえば、「どのくらいの期間トレーニングする必要があるか?」ってModel Builderにあって

新馬戦用CSVは5.82MBなので10分程度。通常用CSVは212MBなので30分って事の様です。

もう少し精度が上がると良いな~っと試してるんですが、なかなか学習が追いつかない😔

実戦配備

 チューナー変更して少し改善した両モデルを実戦配備して今日様子見です。

|-----------------------------------------------------|
|                                        Experiment Results                                      |
|-----------------------------------------------------|
|                                                   Summary                                                  |
|-----------------------------------------------------|
|ML Task: regression                                                                              |
|Dataset: E:\My Project\MBShinba\ShinbaTime.csv            |
|Label : Souha                                                                                            |
|Total experiment time : 86400.0000 Secs                                 |
|Total number of models explored: 32042                                   |
|-----------------------------------------------------|
|                                     Top 5 models explored                                    |
|-----------------------------------------------------|
|      Trainer                                                     RMSE       Duration       |
|-----------------------------------------------------|
|14257 FastTreeRegression                  1.9982     54.9460        |
|14890 FastTreeRegression                  1.9982     99.9830        |
|14251 FastTreeRegression                  1.9984     47.0360        |
|14884 FastTreeRegression                  1.9984     48.2260        |
|14244 FastTreeRegression                  1.9985     57.3780        |
|-----------------------------------------------------|

半分程度でベストが出てるので12時間辺りでこれ以上は見込めないのかもです。
|-----------------------------------------------------|
|                                        Experiment Results                                      |
|-----------------------------------------------------|
|                                                   Summary                                                  |
|-----------------------------------------------------|
|ML Task: regression                                                                              |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv               |
|Label : Souha                                                                                            |
|Total experiment time : 86400.0000 Secs                                 |
|Total number of models explored: 330                                        |
|-----------------------------------------------------|
|                                     Top 5 models explored                                    |
|-----------------------------------------------------|
|      Trainer                                                     RMSE       Duration       |
|-----------------------------------------------------|
|100   FastTreeRegression                  1.4370     675.8820        |
|107   FastTreeRegression                  1.4370     738.4640        |
|185   FastTreeRegression                  1.4370     656.5550        |
|325   FastTreeRegression                  1.4370     1039.7190     |
|191   FastTreeRegression                  1.4375     963.9480        |
|-----------------------------------------------------|
こちらも半分以下ってか1/3程度でベストが...まあ、終り頃にも同程度の物があるのでこちらはもしかするともう少しは改善可能かも。

2023/08/19

チューナーの選択ミス

 今朝終了した24時間学習はチューナーの選択ミスだった感じです。通常用がヘンテコな物が出来たので「再トレーニング」してみるもやはり「再トレーニング」は別に前回のトレーニングの続きではなく単純に再度トレーニングをしてる感じです。本来、AutoMLでもそうだと思うけど、前回のトレーニングのマトリックスとかの情報を保持しておいて続きを行える様にはなっているって話ではありますが、Model Builderの現バージョンでは単なる再度のトレーニングなんだと。

あっ、で、あまりにもトライアルが少な過ぎたのでチューナーをデフォルトに戻して再トライです。もう2時間以上経過してますが、新馬戦用は2,500トライアル超えてますし、最適なRMSEは2.0135と改善してる感じです。通常用はここ1時間程度ハマってますが、108トライアルこなして最適なRMSEは1.4370と改善してます。このまま明日の朝の結果を楽しみにしたい所ですが、トライアルが長引くとメモリ消費が膨らむのでその点だけは気掛りではあります。

通常用の24時間学習

 出来上がった学習済みモデルを開発中のアプリのフォルダにコピーする時にちょっと気にはなったんです。ってのも、これまでコピーなんて一瞬で終わるのが普通だったのに、プログレスダイアログが表示されて待たされたんです。で、気になってファイルサイズを見ると1.44GBです。更にモデルの読み込みでエラーになるんです。エラー内容もいまいち不明な感じでMicrosoft.ML内部での事で詳細が見ても理解出来るものではありません。う~ん、新馬戦用はまあ問題はないけど、あっ、そうか、もしかするとトライアル途中だったからそんな感じの情報も含んでモデル出力してるからもしかすると再トレーニングすると今度こそ何かあるのかも。ダメ元で試してみるしかないかも。ただ、後何時間が無難なのかは分からない状態だから取敢えず24時間で行くしかないかなぁ😓

Model Builderでの24時間学習

 ちょっとヒヤヒヤしてましたが、どうにか完走しました。

|--------------------------------------------------------|
|                                            Experiment Results                                         |
|--------------------------------------------------------|
|                                                      Summary                                                     |
|--------------------------------------------------------|
|ML Task: regression                                                                                    |
|Dataset: E:\My Project\MBShinba\ShinbaTime.csv                  |
|Label : Souha                                                                                                  |
|Total experiment time : 86400.0000 Secs                                       |
|Total number of models explored: 185                                              |
|--------------------------------------------------------|
|                                        Top 5 models explored                                       |
|--------------------------------------------------------|
|      Trainer                                                            RMSE       Duration       |
|--------------------------------------------------------|
|116   FastTreeTweedieRegression           2.0172     46.3450        |
|144   FastTreeRegression                            2.0249     47.6100        |
|151   FastTreeRegression                            2.0249     51.0520        |
|161   FastTreeRegression                            2.0249     42.0340        |
|162   FastTreeRegression                            2.0249     41.5530        |
|--------------------------------------------------------|

これ、実際には4分程早く勝手に止まりました。しかも、最後のトライアルは普通に12時間以上やってた途中でなんですよね😔

|-----------------------------------------------------|
|                                        Experiment Results                                      |
|-----------------------------------------------------|
|                                                   Summary                                                  |
|-----------------------------------------------------|
|ML Task: regression                                                                              |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv               |
|Label : Souha                                                                                            |
|Total experiment time : 86400.0000 Secs                                 |
|Total number of models explored: 36                                           |
|-----------------------------------------------------|
|                                     Top 5 models explored                                    |
|-----------------------------------------------------|
|      Trainer                                                 RMSE       Duration           |
|-----------------------------------------------------|
|21    FastTreeRegression                  1.4634     13122.3360     |
|31    FastTreeRegression                  1.4634     12618.6920     |
|32    FastTreeRegression                  1.5404     14702.6410     |
|15    FastTreeRegression                  1.6492     1028.7060       |
|33    FastTreeRegression                  1.8425     2949.5450       |
|-----------------------------------------------------|

こちらはきっちりと時間まで行って止まりました。少しだけ最高には及びませんでした。しかし、何にしてもAutoMLでもそうだったんですが、トレーニング時間を延ばしても個々のトライアルに掛かる時間が妙に長くなり通常用なんか
|30    FastTreeRegression                  2.3369     14719.4990     |
|31    FastTreeRegression                  1.4634     12618.6920     |
|32    FastTreeRegression                  1.5404     14702.6410     |
この3トライアルだけで11時間40分です。更に最後のトライアルも時間切れでしたが何時間だろ?昨夜寝る前からやってたのでざっくりと7~8時間は最低でもって感じです。
この2つはどちらもトレーニング用のCSVを先週末までにした実戦用なので検証は実戦のみなので様子見ながらです。

2023/08/18

Appleというのは

 もう随分と前の話になるんですが、まだ高校1年生だった頃(1979年)にプログラミングというものに出会いました。機種名も覚えてませんがIBMの確か16KB程度のメモリと6インチ程度のモノクロモニターにキーボード、プリンター、磁気テープが有りました。これが高校(まあ日本ではなくアメリカですが)にあり、これを使ったプログラミングコースを受講しました。使用言語はBASIC。コース受講したので、その後もお願いすると使わせて頂きました。記憶が正しければ冬休みに日本に一時帰国して、まあ当初の予定ではアリゾナ辺りの高校に入る予定でしたが諸事情でマサチューセッツの高校に入りましたので、衣服や諸々を用意して、春休みに帰国しないという条件で、当時日本への往復航空券が20万~30万円でしたので同額で購入可能だったApple][+を親にお願いしました。そんな訳で、パソコン(当時はそんな呼び方では無かったとは思う)デビューはAppleだったんです。しかし、高校卒業時に高校に保管お願いして大学に進学後に大学付近にアパートを借りてそこに送ってもらう依頼をすると、物が無いって😱 で、当然ですが、補償してもらう事になり、その補償金でNEC PC-8001を購入。っておいおいとは思いますが、別にAppleが好きだった訳じゃないんです。月刊I/Oとかをわざわざ日本から取り寄せて読んでたり、大学進学後はリトル東京の紀伊国屋で購入したりでAppleよりは断然PC-8001だったのでって事での選択です。

大学時代に初代Macなんかがリリースされてましたが触れる事もなく、新卒での就職先がNECだった関係でその次に買ったのはFM-77だったりとか。その後もまあNEC PC-9801なんかが主流で会社で触る機会も多かったりしましたが、確実にAppleとの縁は無くなってました。

Appleとの再会は1997年頃だったか、ネットの懸賞でiMacが当たりました😄 しかし、当時は既にPC-98の時代も終わりAT互換機を自作してた頃でiMacなんて使う気がしませんでした。ネットオークションで処分する事を考えてたんですが、兄が使いたいというので譲りました。何度か使用法を教えなければならず苦痛以外のなにものでもない使用感で、Appleのネガティブな感情は増してました。

世間的にスマホが普及する中ガラケーで十分と思ってたんですが、時代の流れからってか、まあ、息子がドコモからiPhoneが出たら買ってと希望してて我が家にAppleが入り込み始め、妻がPTAの連絡もLINEが増えてるからってスマホにする事になり息子のiPhoneに合わせる形で一家iPhoneに。

iPad所有したりでAppleに染まってる訳じゃないけど世間的には随分とって感じになってたり。そんな中でもまあ基本Windowsなのは当然の話。長年プログラミングしてますが、言語は変われどひたすら非Macです。しかし、ちょっと興味本位で調べるとiPhoneアプリ開発ってまあMacありきだったり、無しでも不可能じゃないって事でも、最終的にiPhoneにアプリをって事だとApple Developer Programとかいうものが存在し年$99だと😖 まあ、実際にAndroidでどうなのかまでは調べてませんが、有料ではないんじゃないかと。悪い会社ではないとは思いながら...

24時間という長いトレーニングは想定外?

 7時間が経過したけどなんだろ、AutoMLでもそうだったけど、数十秒だとないけど、長いトレーニング時間をしているとトライアルに使える時間制限とかが変わるのか普通に3時間超える時がある。これはチューナー選択が大きく影響しているのかもなのでチューナーだけをAutMLでも使っているものに戻して再トライする冪かもです。新馬戦用で7時間過ぎて184トライアル、通常用ではまだ30トライアルです。最適なRMSE的には新馬戦用が2.0172と前回よりも上回ってるし、通常用でも1.4634なのである程度の成果は出てるからこのまま続けますが、いや、トライアルが多ければいい訳じゃないけど、このスローさはどうなんだろうとね。

更に新馬戦用側ではメモリに異常はないのですが、まあ、通常用はそもそもファクターが多いので仕方がないんだとは思うけど、一時30ギガ超えてまして、今は26ギガ辺りをうろついてます。まあ、エラーが出たり止まったりや異常終了が無いけば良いんですが、若干明日の朝が怖い気がしてきました。

最適なRMSE

 ML.NET Model Builderの今のトレーニングのメトリックの種類ではなんとなく値がどの程度ならって感じがあるので、CSVデータを先週末まで用意して両方とも24時間で学習して今週末に備えてみようかと思います。実戦での検証方法をまだ導入してませんが、週末にでも考えてみます。その日の集計出力は作り込んだのでそこにプラスして学習モデルの予想結果と、まあ外部指数もついでだから入れてみようかと思います。

通常用では1.5辺りがボーダーで、理想は前回1.4433が最高でしたからそれ以上なら期待出来るかと。新馬戦用は2.0198とかでしたのでまずは2.0未満更に通常用に近づければなお良いかと思ってます。

今少し気になっているのはチューナーの選択です。それぞれのトレーニング時間が当初デフォルトでしているより明らかに長いんですが、メモリックスの種類がなのかチューナーなのかが分かってません。明日朝に終わった後チューナー変えて試してみたいかも。

2023/08/17

再トレーニングの謎

 前回の続きをやっているとはとても思えないけど終わらせてみない事にはどんなものかが判断出来ないので我慢して待ってます。残り1時間切っても最適が8.???的なえってレベルで何か違うなぁと思いながらも、ふと気が付くと1.6788になってるので何かはしてるんだとは思います。ここまでに約2時間のトライアルがあった事も確認済みです。ああ、残り1時間切った時点でまだ18トライアルとかなので、前提条件の20トライアルに届かないのかと心配したんですが、そこもクリアしてます。メモリ消費も一時は10ギガ超えたりもしてましたが無難なサイズでそろそろ終わろうとしてます。終了時のログをここに書き込んでから寝ようと我慢してます。やはり気合入れて一気に24時間とかに挑む必要性は感じてます。

|----------------------------------------------------|
|                                        Experiment Results                                    |
|----------------------------------------------------|
|                                                  Summary                                                 |
|----------------------------------------------------|
|ML Task: regression                                                                           |
|Dataset: E:\My Project\MBSouha\SouhaTime.csv             |
|Label : Souha                                                                                          |
|Total experiment time : 18000.0000 Secs                              |
|Total number of models explored: 38                                        |
|----------------------------------------------------|
|                                    Top 5 models explored                                   |
|----------------------------------------------------|
|      Trainer                                                   RMSE       Duration       |
|----------------------------------------------------|
|19    FastTreeRegression                  1.6788     580.8960       |
|31    FastForestRegression                3.1167     14.2320        |
|20    FastForestRegression                3.1900     9.3310          |
|29    FastForestRegression                4.4150     67.1420        |
|32    FastForestRegression                4.5716     48.5800        |
|----------------------------------------------------|

予想[6912] 的中[3137] (45.38%) 購入[¥4,838,400] 払戻[¥3,830,630 (79.17%)]