我已经构建了一个 Microsoft Azure ML Studio 工作空间预测Web服务,并且有一个scernario,我需要能够使用不同的训练数据集来运行该服务 .
我知道我可以通过Azure ML设置多个Web服务,每个都附加了不同的训练集,但我试图找到一种方法在同一个工作区内完成所有操作并传递 Web Input Parameter
作为输入值来选择哪个训练集使用 .
我找到了this文章,它几乎描述了我的场景 . 但是,本文依赖于从 Load Trained Data
模块中提取的训练数据集,因为它具有静态 endpoints (或blob存储位置) . 我没有看到任何基于 Web Input Parameter
动态(或有条件地)更改此位置的方法 .
Basically, does Azure ML support a "conditional training data" loading?
或者,可能有一种方法来组合训练数据集,然后根据传递的 Web Input Parameter
过滤?
2 回答
这可能不是您所需要的,但希望它可以帮助您 .
要组合数据集,可以使用Join Data module .
要过滤,可以通过执行Python脚本来完成 . 这是一个例子 .
使用成人人口普查收入二进制分类数据集,在年龄栏上,最低年龄为17岁 .
如果我想按年龄过滤数据集,请将其连接到Execute Python Script模块,这是使用
pandas
query方法的过滤代码 .在查看该输出时,它会过滤掉最小年龄为25的数据集 .
当然,你可以做到这一点 . 您想要的是使用 Execute R Script 或 SQL Transformation 模块根据您的输入数据确定要使用的模型 . 像这样的东西:
请注意,您的输入数据已清除/更新/功能设计,然后传递给两个不同的SQL转换,这将导致它转到两个路径之一 .
每条路径都有自己的训练数据 .
Note: 我不确定你的用例是什么,但如果是我,我会使用两种不同的训练数据训练两种不同的模型,然后尝试在我的网络服务中使用模型,而不是实际在网上训练服务,因为这可能会很慢 .