もともとAutoMLについて色々と試行錯誤して始めた機械学習なんですが、取っ掛かり時にどこかで学習データはfloat型と思い込まされていたんですが、これ、単に自分の間違った思い込みだったのかもです。基本全てファクターをfloat型としてCSVデータとして出力し、これを学習させてます。float型では有効精度は約7桁と今更再確認した訳ですが、これが問題なんです。血統登録番号は10桁なのでこれを維持出来ない状態で学習させてますので、まっ、ある意味問題外な学習ってレベルかも😱
ここ最近はKeras.NETの作業で手一杯でしたが、大掛かりな修正が必要になりました。ちょっと早急に対処して、また学習作業のやり直しです。
追記 2025.1.25 8:53
ちと上記は間違いがありました。CSVデータはfloat型ではなく、それぞれの項目毎に型は違います。ただ、全て文字列ではなく数値にしてます。で、実際のモデルの学習時にfloat型に統一してます。
モデルビルダーでデータ詳細設定でstringかsingleの2択なのがfloat型がML.NETで制限されている感じが表れているかと思います。しかし、LightGBMとかではfloat型かdouble型かを指定出来るのでこちらは単にdouble型に変更すれば行けるかと。
そもそも血統登録番号の10桁は数値というよりはカテゴリーとしてるので文字列でも行けそうな気はしてますので、ちょっとモデルビルダーとの兼ね合いからもfloat型的に行く方が無難な気がしてきました。
ここ数日かけてfloat型→double型の作業して今学習させたりしてるんですが、悩むなぁ😓
取敢えずLightGBMの方は単独なのでこちらはdouble型に変更してみます。
追記 2025.1.25 9:32
さてLightGBMの修正をとソースコード確認すると、LightGBMは当初色々苦労してどうにか動かせるようになったので、その際に色々試していて最終的にdouble型で行けるって事でdouble型が使われてたのでこちらは問題なかった😁
後はモデルビルダーとAutoMLをどうするかなのでソースはバックアップしてあるのに戻します。こんな時、ソースの世代管理とかしてれば楽なんだとは思うけど、その管理ソフトを入れるのが面倒なんだよね😒 Visual Studioが標準でしてくれれば助かるのにね。
0 件のコメント:
コメントを投稿