sklearn中的metric中共有70+种损失函数,让人目不暇接,其中有不少冷门函数,如brier_score_loss,如何选择合适的评估函数,这里进行梳理。
文章目录
分类评估指标
- TP:预测为正向(P),实际上预测正确(T),即判断为正向的正确率
- TN:预测为负向(N),实际上预测正确(T),即判断为负向的正确率
- FP:预测为正向(P),实际上预测错误(F),误报率,即把负向判断成了正向
- FN:预测为负向(N),实际上预测错误(F),漏报率,即把正向判断称了负向
Positive | Negative | |
---|---|---|
True | TP 真阳性 | TN 真阴性 |
False | FP 假阳性 | FN 假阴性 |
准确率Accuracy:函数accuracy_score
A C C = T P + T N T P + T N + F P + F N ACC= \frac{TP+TN}{TP+TN+FP+FN} ACC=TP+TN+FP+FNTP+TN
分类准确率分数指的是所有分类正确的百分比。
缺点:(1)无法告知响应值的潜在分布,也无法告知分类器错误。
(2) 在数据集不平衡的时候,不太能反映模型优劣。
例如:分类问题的数据集中本来就有97% 示例是属于X,只有另外3%不属于X,所有示例都被分类成X的时候,准确率仍然高达97%,但这没有任何意义。
- 形式:
sklearn.metrics.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None)
normalize:默认值为True,返回正确分类的比例;如果为False,返回正确分类的样本数
精确率Precision:函数precision_score
P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP