机器学习模型评估指标

精确度(特异度)\(Precision=\frac{TP}{TP+FP}\)

真阳性率/召回率(敏感度)\(TPR/Recall=\frac{TP}{TP+FN}\)

假阳性率\(FPR=\frac{FP}{FP+TN}\)

\(F1-Score=2 \times \frac{Precision \times Recall}{Precision + Recall}\)

准确率\(Accuracy=\frac{TP+TN}{TP+TN+FP+FN}\)

ROC曲线

作用

模型能否在“少误杀”的同时“多抓对”?

不同模型之间,谁的总体区分能力更强?

核心思想

想象你在筛选垃圾邮件:

  • 阈值(Threshold):你设定的判断标准(比如“邮件中包含‘免费’一词就判为垃圾”)。
  • 调整阈值
    • 标准严格(阈值=0.9):只有非常确定的垃圾邮件才被过滤 → 漏掉很多垃圾(FN↑),但几乎不错杀正常邮件(FP↓)
    • 标准宽松(阈值=0.1):稍有嫌疑就判为垃圾 → 抓住更多垃圾(TP↑),但误杀很多正常邮件(FP↑)

ROC曲线就是展示所有可能阈值下,模型在“抓对”(TPR)和“误杀”(FPR)之间的权衡。

  • 完美模型:紧贴左上角(TPR=1且FPR=0)。
  • 随机猜测:对角线(TPR=FPR)。
  • 实际模型:介于两者之间,越靠近左上角越好。

关键指标

指标公式别名解释
TPR(真阳性率)\(\frac{TP}{TP+FN}\)召回率、敏感度真实正例中,被模型找出的比例
FPR(假阳性率)\(\frac{FP}{FP+TN}\)真实负例中,被模型误判的比例

绘制ROC曲线的步骤

假设有5个样本,模型输出的正类概率和真实标签如下:

样本预测概率真实标签
A0.9
B0.8
C0.6
D0.4
E0.3

Step1: 按概率从高到低排序

A(0.9) → B(0.8) → C(0.6) → D(0.4) → E(0.3)

Step 2:动态调整阈值,计算TPR和FPR

阈值范围判为正的样本TPFPFNTNTPRFPR坐标点(FPR,TPR)
阈值>0.900320/3=00/2=0(0, 0)
0.8-0.9A10221/3=0.330/2=0(0, 0.33)
0.6-0.8A, B20122/3=0.670/2=0(0, 0.67)
0.4-0.6A, B, C21112/3=0.671/2=0.5(0.5, 0.67)
0.3-0.4A, B, C, D31013/3=11/2=0.5(0.5, 1)
阈值≤0.3全部判为正32003/3=12/2=1(1, 1)

Step 3:连接所有点形成ROC曲线

模型比较(AUC)

  • AUC(曲线下面积):量化模型性能(0.5~1,越大越好)。
    • AUC=0.9:模型能很好区分正负样本。
    • AUC=0.6:模型效果有限。
  • 对比不同模型:直接看谁的ROC曲线更靠左上方。

看完说谢谢了吗?哈哈哈~
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇