You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure AI Foundry评估中获取精确率/召回率/F1分数

实现Azure AI Foundry文本分类器的精确率、召回率及F1分数计算

要在现有String Check评估的基础上获取精确率、召回率和F1分数,核心是先区分分类场景下的**真阳性(TP)、假阳性(FP)、假阴性(FN)、真阴性(TN)**四类样本,再基于这些统计值推导指标。以下是两种简便实现方式:

方法一:扩展现有String Check规则,自定义计算逻辑

利用Azure AI Foundry Review Evaluation的自定义表达式功能,直接在现有评估流程中新增指标:

  1. 定义四类样本统计规则
    假设你的数据集包含actual_class字段存储样本真实类别(若字段名不同请替换),添加四个自定义指标:

    • TP(真阳性):IF(AND({{sample.output_text}} CONTAINS {{item.humanlabel}}, {{item.actual_class}} == {{item.humanlabel}}), 1, 0)
    • FP(假阳性):IF(AND({{sample.output_text}} CONTAINS {{item.humanlabel}}, {{item.actual_class}} != {{item.humanlabel}}), 1, 0)
    • FN(假阴性):IF(AND(NOT({{sample.output_text}} CONTAINS {{item.humanlabel}}), {{item.actual_class}} == {{item.humanlabel}}), 1, 0)
    • TN(真阴性):IF(AND(NOT({{sample.output_text}} CONTAINS {{item.humanlabel}}), {{item.actual_class}} != {{item.humanlabel}}), 1, 0)
  2. 推导核心评估指标
    基于上述统计值,添加三个最终指标:

    • 精确率:SUM(TP) / (SUM(TP) + SUM(FP))(分母为0时设为1)
    • 召回率:SUM(TP) / (SUM(TP) + SUM(FN))(分母为0时设为1)
    • F1分数:2 * (精确率 * 召回率) / (精确率 + 召回率)(分母为0时设为0)
  3. 配置到评估面板
    将所有表达式添加为新的评估指标,平台会自动在评估时汇总计算结果。

方法二:使用自定义评估脚本(复杂场景适用)

如果是多标签分类等复杂场景,可编写Python脚本作为自定义评估组件:

def calculate_classification_metrics(samples):
    tp = fp = fn = tn = 0
    for sample in samples:
        output_has_label = sample["humanlabel"] in sample["output_text"]
        actual_matches = sample["actual_class"] == sample["humanlabel"]
        
        if output_has_label and actual_matches:
            tp += 1
        elif output_has_label and not actual_matches:
            fp += 1
        elif not output_has_label and actual_matches:
            fn += 1
        else:
            tn += 1
    
    precision = tp / (tp + fp) if (tp + fp) > 0 else 1.0
    recall = tp / (tp + fn) if (tp + fn) > 0 else 1.0
    f1 = 2 * (precision * recall) / (precision + recall) if (precision + recall) > 0 else 0.0
    
    return {
        "precision": precision,
        "recall": recall,
        "f1_score": f1,
        "accuracy": (tp + tn) / (tp + tn + fp + fn) if (tp + tn + fp + fn) > 0 else 0.0
    }

将脚本打包为评估组件,关联到你的文本分类器项目,运行评估后即可直接获取所有指标。

注意事项

  • 必须确保数据集包含真实类别字段,这是区分四类样本的核心依据
  • 多标签分类场景需调整逻辑,为每个标签单独计算TP/FP/FN,再通过宏平均或微平均得到整体指标

内容的提问来源于stack exchange,提问作者CrowsNose

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 22:32:10