3. 评估指标体系入门

在金融文本模型评估中,最危险的做法是只看一个数字就下结论。金融场景的样本分布、误判代价和业务目标差异极大,同一个模型在“准确率”上表现优异,却可能在真正关心的风险事件上几乎失效。本节从混淆矩阵出发,建立一套可解释、可对比、可落地的指标体系。

一、核心原理:从混淆矩阵到指标族

所有二分类指标几乎都源自混淆矩阵。以“金融文本是否属于风险事件”为例,正类为“风险”,负类为“非风险”:

真实\预测预测为正(风险)预测为负(非风险)
真实为正(风险)TP(真正例)FN(假负例,漏报)
真实为负(非风险)FP(假正例,误报)TN(真负例)

由此可定义:

  • 准确率 Accuracy = (TP+TN) / 总数,衡量整体判对比例。
  • 精确率 Precision = TP / (TP+FP),预测为风险中真正风险的比例,关注“误报”。
  • 召回率 Recall = TP / (TP+FN),真实风险中被抓出的比例,关注“漏报”。
  • F1 = 2·P·R / (P+R),精确率与召回率的调和平均。
  • AUC:ROC 曲线下面积,衡量模型对正负样本的排序能力,与阈值无关。
  • MCC:马修斯相关系数,综合 TP、TN、FP、FN,取值 [-1,1],类别极不平衡时更稳健。
金融文本中正类往往极少(如违约公告、异常交易描述),此时准确率会被大量负类“稀释”。例如 1000 条文本中仅 10 条风险,全部预测为“非风险”也能得到 99% 准确率,但召回率为 0。因此必须结合精确率、召回率、F1 与 MCC 综合判断。
金融文本二分类:指标从混淆矩阵到业务决策 混淆矩阵 TP 真正例 / FN 漏报 FP 误报 / TN 真负例 风险文本:正类稀少 基础指标 Accuracy / Precision Recall / F1 AUC / MCC 金融业务含义 漏报→合规风险 误报→人工成本 排序→阈值调优 指标选择决策路径 正类是否稀少? 是→看 MCC/F1 更怕漏报? 是→优先 Recall 更怕误报? 是→优先 Precision 需要排序? 是→看 AUC

二、方法流程:如何计算与解读

在金融文本项目中,建议按以下流程建立指标基线:

  1. 明确正类定义:是“违约”“欺诈”“负面舆情”还是“合规风险”,不同定义直接改变 TP/FN 的边界。
  2. 划分训练集、验证集、测试集,并保持时间顺序,避免未来信息泄漏。
  3. 在验证集上计算混淆矩阵,再派生各指标。
  4. 根据业务代价选择阈值:漏报代价高则降低阈值提高召回,误报代价高则提高阈值提高精确。
  5. 用测试集做最终报告,同时给出 AUC 与 MCC 作为稳健性参考。
from sklearn.metrics import (accuracy_score, precision_score, recall_score,
                             f1_score, roc_auc_score, matthews_corrcoef)

y_true = [0,0,1,1,0,1,0,0,1,0]
y_pred = [0,0,1,0,0,1,1,0,1,0]
y_prob = [0.1,0.2,0.8,0.4,0.3,0.9,0.6,0.2,0.7,0.1]

print("Accuracy :", accuracy_score(y_true, y_pred))
print("Precision:", precision_score(y_true, y_pred))
print("Recall   :", recall_score(y_true, y_pred))
print("F1       :", f1_score(y_true, y_pred))
print("AUC      :", roc_auc_score(y_true, y_prob))
print("MCC      :", matthews_corrcoef(y_true, y_pred))

三、案例/场景:金融文本中的指标取舍

假设某银行用模型识别“贷款合同中的隐性违约条款”。测试集 2000 条,其中真实风险 40 条。模型 A 预测风险 60 条,命中 30 条;模型 B 预测风险 35 条,命中 28 条。

  • 模型 A:Precision=50%,Recall=75%,F1≈60%,误报 30 条。
  • 模型 B:Precision=80%,Recall=70%,F1≈74.7%,误报 7 条。

若业务目标是“尽量不漏”,模型 A 更合适;若人工复核成本极高,模型 B 更优。AUC 可进一步判断两个模型在不同阈值下的整体排序能力,而 MCC 在正类仅 2% 的情况下比 F1 更能反映真实相关性。

在金融文本中,建议同时报告“固定阈值下的 P/R/F1”与“阈值无关的 AUC/MCC”。前者对应实际部署效果,后者用于模型选型与稳定性比较。

四、误区与复盘

常见误区一:用准确率汇报不平衡数据。误区二:只看 F1 不看业务代价。误区三:在测试集上反复调阈值导致过拟合。误区四:忽略文本长度、领域漂移对指标的影响。

复盘时建议保留每次实验的混淆矩阵、阈值、样本分布和指标快照,形成可追溯的评估日志。只有把指标与金融业务代价绑定,评估才真正有意义。