c# Обучение регрессии AutoML не будет показывать Rsquared или MeanAbsoluteError - PullRequest
0 голосов
/ 10 февраля 2020

Я использую c# AutoML для обучения модели регрессии, и я не вижу Rsquared или MeanError для любого из алгоритмов

        //loading train data through Text Loader
        var trainData = loader.Load(_filePath);
        Console.WriteLine("created train data");

        var settings = new RegressionExperimentSettings
        {
            MaxExperimentTimeInSeconds = 10,
            //OptimizingMetric = RegressionMetric.MeanAbsoluteError
        };

        var progress = new Progress<RunDetail<RegressionMetrics>>(p =>
        {
            if (p.ValidationMetrics != null)
            {
                Console.WriteLine($"Current Result - {p.TrainerName}, {p.ValidationMetrics.RSquared}, {p.ValidationMetrics.MeanAbsoluteError}");
            }
        });

        var experiment = context.Auto().CreateRegressionExperiment(settings);
        //find best model

        var labelColumnInfo = new ColumnInformation()
        {
            LabelColumnName = "median_house_value"
        };

        var result = experiment.Execute(trainData, labelColumnInfo, progressHandler: progress);
        Console.WriteLine(Environment.NewLine);
        Console.WriteLine("Best run:");
        Console.WriteLine($"Trainer name - {result.BestRun.TrainerName}");
        Console.WriteLine($"RSquared - {result.BestRun.ValidationMetrics.RSquared}");
        Console.WriteLine($"MAE - {result.BestRun.ValidationMetrics.MeanAbsoluteError}");
        Console.ReadLine();

Когда я запускаю консольное приложение, я получаю 0 -infinite или not a number

1 Ответ

0 голосов
/ 15 февраля 2020

Я получил аналогичные результаты, когда мой набор данных был слишком мал.

AutoML использует 10-кратную перекрестную проверку, если я правильно помню. Это может привести к тому, что набор тестовых данных будет слишком маленьким, чтобы извлечь из него какие-либо пригодные для использования метрики.

Так что, если ваш набор данных небольшой, вы можете попробовать использовать больший набор и посмотреть, получит ли он лучшие показатели, по крайней мере исключить этот случай.

...