我一直在参考这个库示例,但我似乎无法让批处理执行在一个作业中返回多个评分结果。
一切都正常工作,即可以部署预测Web API并请求单个评分。但每当我发送一个批处理执行作业(使用示例C#代码)时,如果请求超过一个,例如:
ID1,ID21,23,15,1
Azure ML 只会返回第一个请求1,2
的预测评分,而不会返回其他行的评分。
我不确定我哪里做错了,但我应该期望得到所有三个请求的结果。任何帮助将不胜感激!
回答:
看起来你选择了一个不幸的例子:零售预测Web服务中的自定义脚本明确地丢弃了除第一个ID对之外的所有内容。要看到这一点,尝试加载“零售预测:第6步中的6A”实验,并查看“创建完整时间序列。添加未来时间戳”模块中的代码。你会发现以下内容:
all.time <- data.frame(ID1 = data$ID1[1], ID2 = data$ID2[1], time = all.time)data <- join(all.time, data, by = c("ID1", "ID2", "time"), type = "left")maml.mapOutputPort("data");
左连接语句将忽略任何data$ID1 != data$ID1[1]和data$ID2 != data$ID2[1]的行。这就是为什么你只保留了第一个ID对的原因。
看起来在单个作业中对多个ID对进行批量预测并不是自定义脚本作者为他们的Web服务设想的用例。如果你精通R语言并且特别对这个用例感兴趣,你可以修改这个实验中的脚本以支持同时处理多个时间序列。否则,你可能需要尝试另一个示例实验。