如今,我们的模型处理信息流。当他们提供的新数据与用于训练的数据显著不同时,他们需要更新。这就是为什么机器学习工具不仅需要提供准确的、可扩展的、可重复的、随时可用的解决方案,而且可以迅速地集成到任何信息系统中。这意味着机器学习工具不一定要寻找完美的不变模型,而是需要灵活的解决方案,在情况发生变化的时候,这些解决方案可以很容易地重新训练,并在最短的时间内投入生产。

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(1)

今天,我们将提供一个新工具,帮助你在有了新数据时更好地重新训练现有模型。 BigMLer新增了一个BigMLer再训练子命令到BigMLer,BigMLer是BigML中自动化工作流的命令行。

为什么和如何重新调整?

构建机器学习模型的典型场景涉及一些试验和错误。这可以通过手动或自动使用最佳功能选择或SMACDown等脚本完成,但有些任务是重复的。例如,上传数据,确定对你的模型重要的字段,评估预测或检查模型性能。因为你的业务或问题领域可能会发生变化,你的模型将需要最终使用新的数据进行再训练。但是我们怎么做呢?

那么,你需要认识到,当你首先训练一个模型时,数据会经历一些任务:为每个字段设置一个类型,转换字段值,添加新字段或者过滤行。该模型很少能够处理原始数据,因此要向现有模型添加更多数据,所有这些转换都需要先重新运行。

在BigML中,一旦建立模型(或任何其他资源),它是不可变的。它的基本属性没有一个是可以改变的(只有非必要的属性,比如它们的名字或描述,才能被更新)。该模型保存有关使用哪些资源来构建它的信息,或保存哪些配置选项以获取它们。这可以确保导出实际模型的所有步骤都可以推导出来,即模型构建工作流程。通过简单地将这个工作流程应用于新的数据,你可以得到一个再训练的模型。

使用BigMLer重新调整模型

我们假设你从一个数据样本训练一个模型,并希望稍后用更多的数据重建它。你可以使用BigMLer命令,例如:

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(2)

提供包含第一个数据样本的文件diabetes_sample.csv,并为生成的资源添加一个唯一标记。 BigML中的标签就像可以在搜索中用来检索资源的关键字一样。在命令中,我们为模型添加了一个best_diabetes标签,以便我们可以在决定重新训练时使用它作为参考。

在这种情况下,使用BigMLer重新训练模型的调用将是:

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(3)

BigMLer将为你执行的过程包括:

·将diabetes_new_data.csv中的数据上传到平台。

·检索用于构建best_diabetes标记的最后一个模型的工作流程。

·将上传的数据添加到该模型中使用的数据集。

·通过使用相同的配置参数从合并的数据生成新的模型:重新训练的模型。

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(4)

每次在特定模型上运行bigmler重新训练命令时,都会生成新的模型资源。

BigMLer使用—output-dir中设置的目录来存储包含此过程中生成的资源信息的文件。它还在控制台上显示报告、过程的演变。

下面的例子,你可以使用这个查询:

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(5)

检索最新的再训练模型。 $ BIGML_AUTH环境变量代表凭据信息(username = [my_username]; api_key = [api_key])。

这个URL的输出是一个JSON,其中一个objects属性包含一个包含单个元素的列表:模型信息。要在你的信息系统中使用最新的再训练模式,你可以将此信息传递给本地模型对象,就像我们在任何绑定中提供的模型对象一样。局部模型提供了生成模型预测的功能。

再训练的窗口

其他情况下,需要定期使用最新数据的一个子集重新训练模型。一个例子可能是销售模式,每月更新一次,并考虑数据的月数限制。在这种情况下,你的数据将需要逐步上传,但不应汇总。相反,我们需要将每月数据保存在一个单独的数据集中。我们可以通过在—window-size选项中设置要在模型构造中使用的数据集的数量来轻松实现:

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(6)

这将现在上传你的数据,与它建立一个新的数据集,并使用窗口大小中指定的最后一个数据集的列表来重建一个集合。

通过ID引用

当然,标签的使用只是一种人性化的机制。 不需要添加标签来重新训练模型。 由于BigML中的每个资源都有自己唯一的资源ID,所以你可以在bigmler retrain命令中使用它作为参考:

bigemap地图如何建模(BigMLer更好的重新训练现有模型)(7)

因此,建立具有给定ID(在这种情况下为集群)的资源的工作流程将被再现,所以将在合并的数据上建立新的集群。

正如我们刚刚解释的,BigMLer可以重新训练你的机器学习模型就像运行一个命令一样简单。 这个过程可以通过你的机器上的任何本地调度程序来触发。 要启动,你将可以使用最新的再训练模式。 生产就绪机器学习系统的一个真正简单的设置。接下来你就可以自己试试了!

,