准确率、查准率、召回率

混淆矩阵

True Positive(真正,TP):将正类预测为正类数

True Negative(真负,TN):将负类预测为负类数

False Positive(假正,FP):将负类预测为正类数误报

False Negative(假负,FN):将正类预测为负类数→漏报


在这里插入图片描述

1、 准确率(Accuracy)
定义:就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好。
反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负。
Acc=(TP+TN)/(TP+TN+FN+FP)Acc=(TP+TN)/(TP+TN+FN+FP)Acc=(TP+TN)/(TP+TN+FN+FP)

2、召回率(Recall)
定义:返回的结果中的正例占总的正例的比例,总的正例包括返回的正确的正例以及未返回的正例(即错误分为负例中的正例)

  • 反映了被正确判定的正例占总的正例的比重。
  • 所以为了提高召回率,可以多预测。
    R=TP/(TP+FN)R=TP/(TP+FN)R=TP/(TP+FN)
    eg:有128个样本,其中32个正,96个负。
    我可以说,我预测有128个正样本。所以recall= 32/32 = 100%

3、精度(Precision)
定义:被分为正例中实际为正例的比例,反映了被分类器判定的正例中真正的正例样本的比重。

  • 为了提高查准率(精度),可以少预测。
    P=TP/(TP+FP)P=TP/(TP+FP)P=TP/(TP+FP)
    eg:还是上面的例子,上面的precision = 32/128 = 25%
    我为了提高precision,我可以只预测一个样本。这样就有1/4的概率能预测到。假设恰好预测到了正样本,此时precision = 1/1 = 100%
### 混淆矩阵及其相关概念 混淆矩阵是一种用于评估分类模型性能的重要工具,尤其在二分类问题中应用广泛。它通过展示预测值与真实值之间的关系,帮助分析模型的表现。 #### 查准率(Precision) 查准率是指被模型预测为正类的样本中,实际为正类的比例。其定义如下: \[ \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} \] 其中, - TP (True Positive): 被正确预测为正类的样本数; - FP (False Positive): 被错误预测为正类的样本数[^1]。 查准率衡量的是模型对于正类预测的准确性,通常适用于希望减少误报的情况。 #### 召回率(Recall) 召回率是指实际为正类的样本中,被模型正确预测为正类的比例。其定义如下: \[ \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} \] 其中, - FN (False Negative): 实际为正类但被预测为负类的样本数[^2]。 召回率关注的是模型识别所有正类的能力,适合于需要降低漏报的应用场景。 #### Python代码实现 以下是基于 `scikit-learn` 的混淆矩阵、查准率召回率的计算示例: ```python from sklearn.metrics import confusion_matrix, precision_score, recall_score # 假设 y_true 是真实的标签列表,y_pred 是模型预测的结果 y_true = [0, 1, 1, 0, 1, 0, 1, 0] y_pred = [0, 1, 0, 0, 1, 1, 1, 0] # 计算混淆矩阵 cm = confusion_matrix(y_true, y_pred) # 提取 TP, TN, FP, FN TN, FP, FN, TP = cm.ravel() # 手动计算 Precision 和 Recall precision_manual = TP / (TP + FP) recall_manual = TP / (TP + FN) # 使用 scikit-learn 函数计算 precision_sklearn = precision_score(y_true, y_pred) recall_sklearn = recall_score(y_true, y_pred) print(f"Confusion Matrix:\n {cm}") print(f"Manual Precision: {precision_manual:.2f}, Sklearn Precision: {precision_sklearn:.2f}") print(f"Manual Recall: {recall_manual:.2f}, Sklearn Recall: {recall_sklearn:.2f}") ``` 以上代码展示了如何利用混淆矩阵手动计算查准率召回率,并验证了 `scikit-learn` 中对应函数的一致性。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值