机器学习入门-混淆矩阵-准确度-召回率-F1score 1.itertools.product 2. confusion_matrix(test_y, pred_y)
1. itertools.product 进行数据的多种组合
intertools.product(range(0, 1), range(0, 1)) 组合的情况[0, 0], [0, 1], [1, 0], [1, 1]
2. confusion_matrix(test_y, pred_y) # 构造混淆矩阵
混淆矩阵是TP(正的预测成正的), FP(正的预测成负的), TN(负的预测成负的), FN(负的预测成正的)

从混淆矩阵中,我们可以很清楚的看出这个信息,这是一个信用欺诈的案例, 134表示的是将欺诈的预测出来的数值, 13表示的是将欺诈的预测成正常的, 131表示的是将正常的预测成正常的,18表示将正常的预测成欺诈的
精度: (134 + 131) / (134+131+13+18)
召回率: (134) / (134 + 13)
F1得分 : (1 / (精度 + 召回率))
代码:使用的是一个下采样的欺诈数据的代码,使用confusion_matrix 获得混合矩阵,然后使用plt.imshow() 进行画图操作
best_c = printing_KFold_score(under_train_x, under_train_y) import itertools
# 画出混淆矩阵, 导入confusion_matrix
def plot_matrix(conf, classes,
title='confusion matrix', cmap=plt.cm.Blues):
# 展示直方图
plt.imshow(conf, cmap=cmap)
# 图片标题
plt.title(title)
# 图片颜色条
plt.colorbar()
# 设置x轴和y轴位置
x_index = np.array(classes)
# 第一个参数是位置,第二个参数是标签名
plt.xticks(x_index, classes, rotation=0)
plt.yticks(x_index, classes)
conf_mean = conf.max() / 2
# itertools.product
# [0, 1] & [0, 1]
# [0, 0], [0, 1], [1, 0], [1, 1]
# 将数字添加到混合矩阵中
for i, j in itertools.product(range(conf.shape[0]), range(conf.shape[1])):
plt.text(j, i, conf[i, j], horizontalalignment='center',
color='white'if conf[i, j] > conf_mean else 'black')
# 画出的图更加的紧凑
plt.tight_layout() from sklearn.metrics import confusion_matrix
# 建立逻辑回归模型
lr = LogisticRegression(C=best_c, penalty='l1')
# 模型训练
lr.fit(under_train_x, under_train_y)
# 模型预测
pred_y = lr.predict(under_text_x)
# 获得混合矩阵
conf = confusion_matrix(under_test_y, pred_y)
# 画图
plot_matrix(conf, classes=[0, 1])
# accrurracy
# 精度
accurracy = (conf[0, 0] + conf[1, 1]) / (conf[0, 0] + conf[0, 1] + conf[1, 0] + conf[1, 1])
# 召回率
recall = conf[1, 1] / (conf[1, 0] + conf[1, 1])
# F1得分
F1_score = 1 / (accurracy + recall)
plt.show()
机器学习入门-混淆矩阵-准确度-召回率-F1score 1.itertools.product 2. confusion_matrix(test_y, pred_y)的更多相关文章
- Andrew Ng机器学习课程笔记--week6(精度&召回率)
Advice for applying machine learning 本周主要学习如何提升算法效率,以及如何判断学习算法在什么时候表现的很糟糕和如何debug我们的学习算法.为了让学习算法表现更好 ...
- 混淆矩阵(Confusion matrix)的原理及使用(scikit-learn 和 tensorflow)
原理 在机器学习中, 混淆矩阵是一个误差矩阵, 常用来可视化地评估监督学习算法的性能. 混淆矩阵大小为 (n_classes, n_classes) 的方阵, 其中 n_classes 表示类的数量. ...
- 机器学习入门-概率阈值的逻辑回归对准确度和召回率的影响 lr.predict_proba(获得预测样本的概率值)
1.lr.predict_proba(under_text_x) 获得的是正负的概率值 在sklearn逻辑回归的计算过程中,使用的是大于0.5的是正值,小于0.5的是负值,我们使用使用不同的概率结 ...
- 机器学习 F1-Score 精确率 - P 准确率 -Acc 召回率 - R
准确率 召回率 精确率 : 准确率->accuracy, 精确率->precision. 召回率-> recall. 三者很像,但是并不同,简单来说三者的目的对象并不相同. 大多时候 ...
- 混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值
准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前 ...
- 二分类算法的评价指标:准确率、精准率、召回率、混淆矩阵、AUC
评价指标是针对同样的数据,输入不同的算法,或者输入相同的算法但参数不同而给出这个算法或者参数好坏的定量指标. 以下为了方便讲解,都以二分类问题为前提进行介绍,其实多分类问题下这些概念都可以得到推广. ...
- 混淆矩阵、准确率、召回率、ROC曲线、AUC
混淆矩阵.准确率.召回率.ROC曲线.AUC 假设有一个用来对猫(cats).狗(dogs).兔子(rabbits)进行分类的系统,混淆矩阵就是为了进一步分析性能而对该算法测试结果做出的总结.假设总共 ...
- 机器学习入门-交叉验证选择参数(数据切分)train_test_split(under_x, under_y, test_size, random_state), (交叉验证的数据切分)KFold, recall_score(召回率)
1. train_test_split(under_x, under_y, test_size=0.3, random_state=0) # under_x, under_y 表示输入数据, tes ...
- 机器学习-Confusion Matrix混淆矩阵、ROC、AUC
本文整理了关于机器学习分类问题的评价指标——Confusion Matrix.ROC.AUC的概念以及理解. 混淆矩阵 在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型 ...
随机推荐
- Eclipse使用前准备(转)
Eclipse的发布流程 M1 08/19/2009 M2 09/30/2009 M3 11/11/2009 M4 12/16/2009 M ...
- asp.net 导出excel的一种方法
项目用到的一种导出excel 的方法予以记录:(具体的业务类可更具情况替换使用) protected void Export(string filename, List<ComponentCon ...
- linux下 mysql主从备份
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/czh0423/article/details/26720539 一.准备 用两台server做測试: ...
- error MSB3073: 命令“regsvr32 /s /c:VCEnd”已退出,代码为 3
版权声明:博客地址:blog.csdn.net/x356982611,未经同意不得转载,不得转载,不得转载 https://blog.csdn.net/x356982611/article/detai ...
- 写了一篇关于 FastAdmin 插件路由的分析文章
写了一篇关于 FastAdmin 插件路由的分析文章 插件路由演示 ThinkPHP 的路由就像是整个应用的调度室,让你的应用 url 更友好,而且让应用更安全,不会让真实的地址暴露出去. 了解过 L ...
- RequireJS 学习
几个学习点: 配置模块路径 定义模块 配置不支持 AMD jsonp 服务 text 插件 css 插件
- 【转】每天一个linux命令(17):whereis 命令
原文网址:http://www.cnblogs.com/peida/archive/2012/11/09/2761928.html whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数- ...
- linux mutt的安装和使用
首先介绍一下mutt这个软件,它是一款基于文字界面的邮件客户端,非常小巧,但功能强大,可以用它来读写,回复保存和删除你的邮件,能在linux命令行模式下收发邮件附件. 我只讲它很小的一部分功能,因为我 ...
- Servlet 串联过滤器
1. 串联Servlet过滤器的工作流程 2. 创建两个过滤器 MyFilter1和MyFilter2 1) MyFilter1 package com.example.filter; import ...
- bzoj4153 [Ipsc2015]Familiar Couples
Description 有n对夫妇,一开始夫妇之间互不认识,若两男或两女成为朋友,称他们为"熟人","熟人"关系具有传递性,即若a熟b且b熟c则a熟c.若两组夫 ...