使用SageMaker批量转换作业时,XGBoost的输出在多行显示

0

【以下的问题经过翻译处理】 你好, 我刚刚基于 SageMaker 示例笔记本,使用 XGBoost 算法训练了一个流失预测模型。 我使用CSV文件的多个记录作为输入,创建了基于这个模型的SageMaker批量转换作业。但输出文件是单个记录 CSV,其中包含单个逗号分隔行中的所有推论。 结果是我无法将“Join source”功能与“Input - Merge input data with job output”一起使用,因为输入和输出文件必须与记录数匹配。 我尝试过不同的批处理作业配置,但总是得到相同的单行输出文件。

有人知道是否有任何配置允许我合并输入和输出,以便在输入列与其推理结果之间建立直接关联? 这是 XGBoost 算法内置实现的限制吗?

profile picture
专家
已提问 9 个月前51 查看次数
1 回答
0

【以下的回答经过翻译处理】 听起来像是配置问题,这个算法应该能够输出正确的输出CSV。

您是否在您的Transformer中使用了accept="text/csv"assemble_with="Line"?您的strategy设置为SingleRecord还是MultiRecord

.transform()调用上是否设置了split_type="Line"content_type="text/csv"

我过去曾经发现自定义算法在多记录批处理中意外输出行向量而不是列向量(因为它们给出了一维输出,而默认的序列化器将其解释为行),但没有内置的算法这样做。

降级到 SingleRecord 可能是最后的手段(通过强制 Batch Transform 本身处理序列化),但会降低效率/速度。

profile picture
专家
已回答 9 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则