模型调参概述:为什么调参?准确率与召回率的基本概念
做模型调参这件事,说白了就是让模型在真实场景里发挥最大价值。我见过不少团队,模型在测试集上跑出99%的准确率,一上线就崩。为什么?因为指标没选对。今天咱们先打好基础,搞清楚两个最基础的指标——准确率和召回率。
为什么调参?——调参的意义
调参不是玄学,是工程。你把模型当成一辆车,超参数就是方向盘、油门、刹车。出厂设置可能让你直线行驶,但遇到弯道、坡道、雨雪天气,不调整就会翻车。
我自己做过一个信贷风控项目,一开始用默认参数,准确率还挺高。结果业务方反馈:坏账率根本没降。查了半天才发现,模型把绝大多数坏客户都放过去了。准确率高只是因为好客户占95%以上,模型什么都不做,直接预测“好客户”就能拿到95%的准确率。这就是典型的不调参陷阱。
核心观点:调参的目标不是堆高某一个指标,而是让模型在业务场景中真正有效。不同业务关心的指标不同,你必须先想清楚要优化什么。
准确率(Accuracy)——最直观的指标,但坑也多
准确率的定义很简单:预测正确的样本数占总样本数的比例。
accuracy = (TP + TN) / (TP + TN + FP + FN)
其中:
- TP:真正例,把正类正确预测为正类
- TN:真负例,把负类正确预测为负类
- FP:假正例,把负类错误预测为正类(误报)
- FN:假负例,把正类错误预测为负类(漏报)
听起来挺完美,对吧?但有一个大坑:当类别极度不平衡时,准确率就是一张遮羞布。
避坑指南:我曾经在欺诈检测项目里踩过这个坑。数据集里99%是正常交易,1%是欺诈。模型直接输出“全部正常”,准确率99%。业务方看了直摇头——因为所有欺诈交易全漏了。所以,当正负样本比例严重失调时,千万别迷信准确率。
召回率(Recall)——捕捉正类的硬实力
召回率衡量的是模型“找全”正类的能力。它能找出多少真正的正样本。
recall = TP / (TP + FN)
还是那个欺诈检测的例子,召回率只关心欺诈交易。模型漏掉一个欺诈,召回率就下降。对于医疗诊断、安全监控这些“宁可错杀一千,不可放过一个”的场景,召回率比准确率重要得多。
但是你想想看,如果只追求召回率,模型很容易走极端——把所有样本都预测成正类,召回率直接100%。不过这样准确率就会暴跌。这说明啥?指标之间是互相制约的。
准确率 vs 召回率:一张表看清区别
| 维度 | 准确率 | 召回率 |
|---|---|---|
| 关注点 | 整体预测的正确性 | 正类是否被充分找出 |
| 对类别不平衡的敏感性 | 非常敏感,容易被多数类主导 | 不敏感,只关心正类 |
| 极端情况 | 全预测为多数类,准确率仍高 | 全预测为正类,召回率100% |
| 适用场景 | 类别平衡、误分类代价相近 | 漏报代价高(如疾病筛查、欺诈检测) |
我个人的习惯:拿到一个新任务,先画混淆矩阵,再算准确率和召回率,最后对比看差异。很多时候,光看准确率会让你错过真实问题。
一个简单的例子帮你感受
假设我们有100个样本,其中10个是正类,90个是负类。模型预测结果如下:
TP = 8, FN = 2
TN = 85, FP = 5
准确率 = (8+85)/100 = 93%
召回率 = 8/(8+2) = 80%
你看,准确率93%看起来很漂亮。但召回率只有80%,意味着每5个正样本里就漏掉1个。如果这是癌症筛查,那漏掉的1个患者就出大事了。
所以,调参的第一步不是调参数本身,而是搞清楚:你更在意哪个指标?或者是两者的平衡?
下面这个图把核心概念串起来了,你可以对照着理解。