Visual Studio中的机器学习向导对二进制分类任务有何作用?

j1dl9f46  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(136)

我有一个二进制分类问题,我试图ML.net在Visual Studio 2022中应用www.example.com。
使用VS中的向导(右击项目、添加、机器学习模型),我取得了非常好的效果,准确率在90%以上。
然而,我希望这一切都在源代码中,而不是由向导完成的魔术,所以我试图用Auto ML API复制结果。我得到了几个百分点,但我从来没有达到与向导相同的准确性,所以我假设我错过了一两个步骤。
以下是我现在正在做的:
我创建了一个新的MLContext,并使用它从csv文件中加载数据。我已经尝试过显式地分离训练和测试数据,或者让ML.net处理它,这似乎没有什么区别。
然后我设置列信息,以处理数值列、分类列和忽略列,就像我在向导的UI中所做的那样。然后我创建实验,并运行它:

var settings = new BinaryExperimentSettings()
    {
        MaxExperimentTimeInSeconds = 60 * 15, // Train for 15 minutes, same as in wizard
        CacheDirectoryName = null, // Skip the disk and store in-memory
    };

    BinaryClassificationExperiment experiment = context.Auto().CreateBinaryClassificationExperiment(settings);

    // Actually Train the model
    ExperimentResult<BinaryClassificationMetrics> result;
    result = experiment.Execute(trainData: trainData,
        progressHandler: new ProgressReporter(),
        columnInformation: columnInformation
    );

是否有一些明显的向导做的事情,我在这里错过了?或者:我能做些什么来提高我的成绩?

68bkxrlz

68bkxrlz1#

这里的ModelBuilder开发人员,我会说模型构建器中的automl部分本质上与BinaryExperiment相同。featurizer的创建方式可能会略有不同,但不会导致训练指标的大差异。
如果您在ML.Net repo中提出问题并使用AutoML.Net对其进行标记,我们可以帮助您深入了解此问题。

  • AutoML.Net版本低于0.20。*
  • 你实际上是在模型构建器中运行多类分类。

相关问题