混淆矩阵

在介绍支持向量机之前呢,首先得先认识一下混淆矩阵,什么叫混淆矩阵呢。
1.混淆矩阵及其用法
一般来说,如果我们是进行数据分类的话,混淆矩阵是我们常用的一个工具
混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法。
以下有几个概念需要先说明:
TP(True Positive): 真实为1,预测也为1
FN(False Negative): 真实为1,预测为0
FP(False Positive): 真实为0,预测为1
TN(True Negative): 真实为0,预测也为0

将这四个指标一起呈现在表格中,就能得到如下这样一个矩阵,我们称它为混淆矩阵(Confusion Matrix):
  混淆矩阵
针对混淆矩阵
1.准确率(Accuracy)—— 针对整个模型的
2.精确率(Precision)
3.灵敏度(Sensitivity):就是召回率(Recall)
4.特异度(Specificity) 在这里插入图片描述
一般来说评价一个分类模型的好坏我们只取其中的三个指标,分别是准确率、灵敏度 、特异度三个指标。
准确率:所有判断正确的结果占总观测值的比重。
灵敏度:在真实值为正的所有结果中,模型预测为正的比重。
特异度:在真实值为负的所有结果中,模型预测为负的比重。
一般来说只有当这三个指标同时较大时才算模型预测分类良好。
代码实现:
python中可以利用svm中的混淆矩阵confusion_matrix来实现
但是python 中confusion_matrix生成的混淆矩阵跟上图生成的稍有差异
在这里插入图片描述
可以看出python的很多指标跟传统指标有很大的差异的:
所以我们可以采取如下代码

from sklearn.metrics import confusion_matrix #从svm输出混淆矩阵
a=confusion_matrix(y_true=你的真实值,y_pred=你的预测值)
tn,fp,fn,tp=a.ravel()   #将混淆矩阵的四个值输出给四个值
正确率=(tp+tn)/(tp+tn+fp+fn)
灵敏度=tp/(tp+fn)
特异度=tn/(tn+fp)
print("模型的正确率为:"+str(正确率))
print("模型的灵敏度为:"+str(灵敏度))
print("模型的特异度为:"+str(特异度))

当然我们也可以利用pandas画出混淆矩阵

import pandas as pd
pd.crosstab(test_pork["y"],result,rownames=["y_true"],colnames=["y_pred"])
#上面的四个参数分别是真实值,预测值,行名,列名  

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值