【问题标题】:ML.net Add New Data to Exist Generated Model [closed]ML.net 将新数据添加到现有生成的模型 [关闭]
【发布时间】:2018-11-15 11:50:32
【问题描述】:

我使用 ML.Net V 0.7.0 最新版本生成了一个 ML 模型

我需要在现有模型中添加一个新的学习数据,而不用新旧数据重新生成它

因为我有一个超过 1 亿条记录的大型数据集

我需要添加 100 条记录而不重新加载所有最后一个数据集来生成新模型

大家有什么想法

这对我来说很重要

最好的问候

【问题讨论】:

  • 我认为我们需要重新学习以使模型能够根据新数据进行计算并生成目标模型,我们可以制作子训练器但不能给我们准确的结果,我们将关注每个模型一个单独的模型和总和的结果可能是好的,但不是在每种情况下都是正确的

标签: ml.net


【解决方案1】:

ML.NET 中的一些训练器支持使用初始预测器进行训练,这意味着您可以使用现有预测器作为使用新数据进行训练的起点。

可以在here 找到一个测试表明这一点,相关代码为:

// Train the first predictor.
var trainer = ml.BinaryClassification.Trainers.StochasticDualCoordinateAscent("Label", "Features",advancedSettings: s => s.NumThreads = 1);
var firstModel = trainer.Fit(trainData);

// Train the second predictor on the same data.
var secondTrainer = ml.BinaryClassification.Trainers.AveragedPerceptron("Label","Features");

var trainRoles = new RoleMappedData(trainData, label: "Label", feature: "Features");
var finalModel = secondTrainer.Train(new TrainContext(trainRoles, initialPredictor: firstModel.Model));

【讨论】:

  • 我认为 OP 有兴趣向第一个预测器添加更多数据,而不是创建第二种类型的预测器。我也对此感兴趣。
  • 是不是像训练model1和model2然后做finalmodel=model1.append(model2)一样简单?如果两个模型的训练方式相同?
  • 我认为我们需要重新学习以使模型能够根据新数据进行计算并生成目标模型,我们可以制作子训练器但不能给我们准确的结果,我们将关注每个模型一个单独的模型和总和的结果可能是好的,但不是在每种情况下都是正确的
  • 嗨,我如何在 ml 项目之外创建角色映射数据?它是一个密封的类。或者我如何创建一个 TrianContext?谢谢
猜你喜欢
  • 2020-11-13
  • 1970-01-01
  • 2013-03-01
  • 1970-01-01
  • 2016-10-22
  • 1970-01-01
  • 2021-08-31
  • 2017-07-11
  • 1970-01-01
相关资源
最近更新 更多