2023/09/01

RMSE表示機能を実装

 アイビー先生とグーグル先生に質問ぶつけました。先日は今一上手く実装出来なかったんですが、まあ、どうにか理解して実装にこぎつけました。

mlContext = new MLContext();
var model = mlContext.Model.Load(modelPath, out var modelSchema);

こんな感じで学習済みモデルを読み込んで、

ColumnInferenceResults columnInference = mlContext.Auto().InferColumns(this.CSV_name, labelColumnName: "Souha", groupColumns: false);
TextLoader loader = mlContext.Data.CreateTextLoader(columnInference.TextLoaderOptions);
IDataView data = loader.Load(this.CSV_name);

テストデータ(学習データ)を読み込み、

var predictions = model.Transform(data);

テストデータを使用して、学習済みモデルの予測を生成し、

var metrics = mlContext.Regression.Evaluate(predictions, columnInference.ColumnInformation.LabelColumnName);
var rmse = Math.Sqrt(metrics.MeanSquaredError);

予測とテストデータの実際の値を比較してRMSEを計算する。モデルによってはこれが20分以上とか掛かったりします。でも、これが分かるとやはりモデルの評価が分かりやすく感じます。例えば、先日の化け物的な新馬用なんですが、RMSEが1.03318057123648なんですよ。なので当然ながら学習期間内の検証では信じられない結果になります。当たり前ですが、比較したModel BuilderのモデルのRMSEは2.0112と随分と違うのでって事ですね。

0 件のコメント:

コメントを投稿