#实现混淆矩阵,精准率和召回率
import numpy as np
from sklearn import datasets
digits = datasets.load_digits()
X = digits.data
y = digits.target.copy()

使数据偏斜

y[digits.target == 9] = 1
y[digits.target != 9] = 0
from sklearn.model_selection import train_test_split
X_train,X_test,y_train,y_test = train_test_split(X,y,random_state=666)
from sklearn.linear_model import LogisticRegression
log_reg = LogisticRegression()
log_reg.fit(X_train,y_train)
log_reg.score(X_test,y_test)
y_log_predict = log_reg.predict(X_test)

TN

def TN(y_true,y_predict):assert len(y_true) == len(y_test)return np.sum((y_true == 0) & (y_predict == 0))
TN(y_test,y_log_predict)
403

FN

def FN(y_true,y_predict):assert len(y_true) == len(y_test)return np.sum((y_true == 1) & (y_predict == 0))
FN(y_test,y_log_predict)
9

FP

def FP(y_true,y_predict):assert len(y_true) == len(y_test)return np.sum((y_true == 0) & (y_predict == 1))
FP(y_test,y_log_predict)
2

TP

def TP(y_true,y_predict):assert len(y_true) == len(y_test)return np.sum((y_true == 1) & (y_predict == 1))
TP(y_test,y_log_predict)
36

混淆矩阵

def confusion_matrix(y_true,y_predict):return np.array([[TN(y_true,y_predict),FP(y_true,y_predict)],[FN(y_true,y_predict),TP(y_true,y_predict)]])
confusion_matrix(y_test,y_log_predict)
array([[403,   2],[  9,  36]])

精准率

def precision_score(y_true,y_predict):tp = TP(y_true,y_predict)fp = FP(y_true,y_predict)try:return tp / (tp + fp)except:return 0.0
precision_score(y_test,y_log_predict)
0.9473684210526315

召回率

def recall_score(y_true,y_predict):tp = TP(y_true,y_predict)fn = FN(y_true,y_predict)try:return tp / (tp + fn)except:return 0.0
recall_score(y_test,y_log_predict)
0.8

scikit-learn中的混淆矩阵,精准率和召回率

#scikit-learn中的混淆矩阵,精准率和召回率
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_log_predict)
array([[403,   2],[  9,  36]], dtype=int64)
from sklearn.metrics import recall_score
from sklearn.metrics import precision_score
recall_score(y_test,y_log_predict)
0.8
precision_score(y_test,y_log_predict)
0.9473684210526315

Python机器学习:评价分类结果003实现混淆矩阵,精准率和召回率相关推荐

  1. 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

    文章目录 混淆矩阵 召回率与准确率 准确度Accuracy sklearn代码示例 混淆矩阵 混淆矩阵(Confusion Matrix):将分类问题按照真实情况与判别情况两个维度进行归类的一个矩阵, ...

  2. 混淆矩阵、准确率、召回率、ROC曲线、AUC

    混淆矩阵.准确率.召回率.ROC曲线.AUC 假设有一个用来对猫(cats).狗(dogs).兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结.假设总共 ...

  3. 分类器MNIST交叉验证准确率、混淆矩阵、精度和召回率(PR曲线)、ROC曲线、多类别分类器、多标签分类、多输出分类

    本博客是在Jupyter Notebook下进行的编译. 目录 MNIST 训练一个二分类器 使用交叉验证测量精度 混淆矩阵 精度和召回率 精度/召回率权衡 ROC曲线 多类别分类器 错误分析 多标签 ...

  4. 混淆矩阵与精确度、召回率、F1 Score

    1.计算公式 从混淆矩阵计算精确度.召回率.F1 Score的过程如下图所示,其中P和R即Precision和Recall: 2.验证实验 如下图为Azure ML自带的一个示例给出的模型评分结果:原 ...

  5. 机器学习中精准度、召回率、准确率、F1 Score、G分数计算学习笔记

    目录 1.基本符号表示 2.类别下的精准度计算(precision) 3.类别下的召回率计算(recall) 4.准确率的计算(accuracy) 5.F1 Score 6.G分数 1.基本符号表示 ...

  6. Python机器学习:评价分类结果008多分类问题中的混淆矩阵

    多分类问题中的混淆矩阵 #十分类问题 import matplotlib.pyplot as plt import numpy as np 数据 from sklearn import dataset ...

  7. python分类预测降低准确率_【火炉炼AI】机器学习011-分类模型的评估:准确率,精确率,召回率,F1值...

    [火炉炼AI]机器学习011-分类模型的评估:准确率,精确率,召回率,F1值 (本文所使用的Python库和版本号: Python 3.5, Numpy 1.14, scikit-learn 0.19 ...

  8. 详细讲解分类模型评价指标(混淆矩阵)python示例

    前言 1.回归模型(regression): 对于回归模型的评估方法,通常会采用平均绝对误差(MAE).均方误差(MSE).平均绝对百分比误差(MAPE)等方法. 2.聚类模型(clustering) ...

  9. 机器学习-------评价分类结果

    准确度的陷阱和混淆矩阵和精准率召回率 准确度的陷阱 准确度并不是越高说明模型越好,或者说准确度高不代表模型好,比如对于极度偏斜(skewed data)的数据,假如我们的模型只能显示一个结果A,但是1 ...

最新文章

  1. linux 命令之文件读取,head, tail, tailf, sed
  2. CC2540获取本机MAC地址
  3. Google联手Facebook 要在AI研究上搞什么大事?
  4. MySQL-基础操作之增删改查
  5. NYOJ 409 郁闷的C小加(三)
  6. java跳过_java跳过https证书直接请求工具类
  7. Java黑皮书课后题第6章:**6.25(将毫秒转化成小时、分钟、秒数)使用下面的方法头,编写一个将毫秒数转换成小时数、分钟数和描述的方法,返回形式如“小时:分钟:秒“
  8. LINUX环境搭建:安装中文定制版UBUNTU 10.10
  9. 《鸟哥的Linux基础》
  10. strcpy和strcat
  11. Python中的异常处理try、exception、raise
  12. 自动优化工具Black帮你写出规范漂亮的python代码
  13. CardView的基本使用
  14. sublime text3 verilog代码编写高级操作篇
  15. 社交网络电影深度解析论文,社交网络 电影解析
  16. mybatis获取map中的key和value
  17. 游戏引擎设计的技术及详解
  18. ubuntu清理系统垃圾与备份
  19. A* 流程+代码详细注释
  20. vb.net 教程 5-9 屏幕范围内取色

热门文章

  1. 【BZOJ2653】middle,主席树(非权值线段树)维护序列和信息+二分答案
  2. python获取手机号码归属地_Python批量获取并保存手机号归属地和运营商的示例
  3. 【英语学习】【Level 07】U02 Live Work L5 This is where we work
  4. Pentium 4处理器架构/微架构/流水线 (7) - NetBurst前端详解 - 分支预测
  5. json生成shp_使用JS把shapefile地图数据转换为geojson格式
  6. 流程在团队管理中的作用
  7. matlab 二值化图像反色,图像处理——灰度化、二值化、反色、饱和度、对比度...
  8. 如何在 ES5 环境下实现一个const ?
  9. docker如何安装vim和yum命令?
  10. Hadoop_10_HDFS 的 DataNode工作机制