如何从Azure AI Automated ML部署的端点获取分类概率
为Azure AI AutoML分类端点添加预测概率的简便方法
方法一:训练阶段配置(无需修改代码)
在AutoML实验创建阶段开启概率返回设置,部署后端点会自动输出概率:
- 进入Azure ML Studio的AutoML实验配置页面,选择分类任务后,找到预测设置板块,勾选“返回预测概率”(部分版本界面显示为Include probability scores)。
- 完成训练后,将新生成的模型部署为端点,此时调用端点会同时返回预测类别和对应概率值。
方法二:修改已部署端点的评分脚本(无需重新训练)
如果模型已经部署,可通过修改端点的score.py脚本实现概率输出:
- 登录Azure ML Studio,找到目标端点对应的部署详情页,进入“模型”标签下载当前的
score.py文件。 - 修改脚本中的预测逻辑,将
model.predict()替换为同时获取类别和概率的代码:def run(raw_data): import json import pandas as pd data = json.loads(raw_data)['data'] df = pd.DataFrame(data) # 获取预测类别和概率矩阵 predicted_classes = model.predict(df) probability_matrix = model.predict_proba(df) # 格式化输出,将类别与对应概率绑定 output = [] for cls, probs in zip(predicted_classes, probability_matrix): output.append({ "predicted_class": cls, "class_probabilities": dict(zip(model.classes_, probs)) }) return output - 回到部署详情页,选择“更新部署”,上传修改后的
score.py并确认更新,等待部署完成后,调用端点即可获取包含概率的输出。
注意事项
- 大部分AutoML分类模型(如逻辑回归、XGBoost、随机森林等)都支持
predict_proba()方法,少数轻量模型可能不支持,若报错可尝试重新训练时开启概率选项。 - 若使用SDK提交AutoML任务,可在
AutoMLConfig中设置enable_production_optimizations=False(避免优化移除概率输出),同时确保任务类型为classification。
内容的提问来源于stack exchange,提问作者Travis Troyer
相关产品推荐
相关产品推荐

