这篇主要是为了记录如何进行模型更新和模型评估。
模型更新
- loss function
- cross-entropy: 针对多分类(二分类为例)
- focal-loss: 针对数据不均衡的方式,可以采用(二分类为例)
2. optimizer:
- gradient descend:
- Adam:
模型评估
我们先要知道几个概念:
- True positive (TP): 真实标签和预测标签都为正样本。
- False positive (FP): 真实标签是负样本, 但是预测标签是正样本。
- True negative (TN): 真实和预测都是负样本。
- False negative (FN): 真实为正样本,预测为负样本。
评估一个二分类模型,有accuracy, F1 score, AUC 和 PRC
- Accuracy: 很简单就是预测正确数/样本总数。
- F1 score:
AUC:
AUC是评价一个二分类器整体的优劣性的,我们可以简单把AUC的计算公式:
通常情况下我们会使用ROC的曲线来体现AUC, 我们需要做的两件是:
- 分类概率进行排序。
- threshold
根据不同的threshold我们可以计算不同的 TPR和FPR:
选取不同的threshold,我们可以刻画出 TPR vs FPR的曲线:
AUC的缺点:
- 忽略了预测的概率值和模型的拟合优度;(举个例子, 假设某个模型对“1”类样本输出的概率是0.51, 对“0”类样本的输出概率是0.49, 此时的AUC=1, 但是binary cross entropy会非常大)。
- AUC无法反应召回率、精确率等在实际业务中经常关心的指标。比如垃圾邮件监控中我们希望看到的是recall尽量高。比如在刑侦案件中,我们要秉持着疑罪从无。
- 把FPR和TPR同等看待。
PRC
与AUC类似,不过我们需要关心的是 recall 和 precision直接的关心。刻画PRC的时候,我需要关心不同threshold的情况下, recall和precision之间的关系, 最后刻画出来的precision和recall的prc图像呈现为: