了解共形预测如何为人工智能提供无需分布的信息的不确定性。使用Ultralytics 实现预测集,以确保模型结果的可靠性。
共形预测是机器学习(ML)中的一种统计框架, 它为模型预测提供了 无需假设分布的不确定性度量。 与输出单点预测(例如某个特定的类别标签)不同, 共形预测器会输出一个预测集或区间,该预测集或区间包含真实值的概率由用户指定(例如 90% 或 95%)。 该框架可适配任何 人工智能(AI)模型, 在无需 更改模型架构的情况下提供正式的统计保证。如需获取最新的工具和研究资源的完整列表,您可以 浏览 Awesome Conformal Prediction代码库。
其基本机制是通过使用 “非符合度评分”来评估新预测与过去案例相比的异常程度。
您可以在 《共形预测入门指南》教程中探索该方法的数学证明,或了解 用于处理时间不确定性的 时间序列预测方法。
必须将该框架与模型测试中使用的标准指标区分开来: model testing:
在风险极高的领域中,了解模型的盲点至关重要,因此符合性预测不可或缺。
诸如 MAPIE(模型无关预测区间估计器)之类的库为 Python 提供了内置工具,而回归任务通常会利用 符合性分位数回归。 您还可以 利用Ultralytics 等高级模型的概率值,实现基本的符合性预测逻辑。以下示例通过 YOLO26 的分类概率构建预测 集,其逻辑是不断纳入排名前列的类别,直至累积 阈值达到。
from ultralytics import YOLO
# Load an Ultralytics YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Simple conformal-style prediction set logic based on cumulative probability
target_coverage = 0.95
prediction_set = []
cumulative_prob = 0.0
# Sort probabilities in descending order using the results object
probs = results[0].probs
sorted_indices = probs.top5
for idx in sorted_indices:
class_name = results[0].names[idx]
class_prob = probs.data[idx].item()
prediction_set.append((class_name, round(class_prob, 3)))
cumulative_prob += class_prob
# Stop adding to the set once we reach the 95% coverage threshold
if cumulative_prob >= target_coverage:
break
print(f"95% Prediction Set: {prediction_set}")
开发可靠的系统需要健全的数据管理实践,以防止 数据漂移破坏模型校准。诸如 Ultralytics 之类的工具,能够简化收集最新 分类数据集、重新训练模型以及安全 管理模型部署的过程。您可以在我们关于 理解数据集偏差的指南中进一步了解 如何整理平衡的数据,或track 在年度 COPA 会议上展示track 最新track 。

开启您的机器学习未来之旅