Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等
Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等
目录
Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等
#pandas_ml包安装
#pandas_ml包的ConfusionMatrix函数计算混淆矩阵及其衍生指标;
#pandas_ml包的ConfusionMatrix函数计算混淆矩阵及其衍生指标(对于字符型数据)
#输出归一化的混淆矩阵
#ConfusionMatrix函数输出示例
#需要使用低版本的pandas和sklearn和pandas_ml去配合;
注意版本的问题,因为这个控件后来没有再持续更新。不过方法和思路各位可以借鉴。
#否则会发生版本不匹配的问题;
pip install pandas_ml==v0.6.1
#pip install pandas==0.22.0
#pip install pandas==scikit-learn 0.20.0
#pandas_ml包安装
pip install pandas_ml
#pandas_ml包的ConfusionMatrix函数计算混淆矩阵及其衍生指标;
import pandas as pd
from pandas_ml import ConfusionMatrixdata = {'y_Actual': [1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0],'y_Predicted': [1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0]}df = pd.DataFrame(data, columns=['y_Actual','y_Predicted'])
Confusion_Matrix = ConfusionMatrix(df['y_Actual'], df['y_Predicted'])
Confusion_Matrix.print_stats()import matplotlib.pyplot as pltconfusion_matrix.plot()plt.show()
#pandas_ml包的ConfusionMatrix函数计算混淆矩阵及其衍生指标(对于字符型数据)
#使用map函数将字符数据映射为数值数据;
例如:
map({'Yes': 1, 'No': 0})
import pandas as pd
from pandas_ml import ConfusionMatrixdata = {'y_Actual': ['Yes', 'No', 'No', 'Yes', 'No', 'Yes', 'No', 'No', 'Yes', 'No', 'Yes', 'No'],'y_Predicted': ['Yes', 'Yes', 'No', 'Yes', 'No', 'Yes', 'Yes', 'No', 'Yes', 'No', 'No', 'No'] }df = pd.DataFrame(data, columns=['y_Actual','y_Predicted'])
df['y_Actual'] = df['y_Actual'].map({'Yes': 1, 'No': 0})
df['y_Predicted'] = df['y_Predicted'].map({'Yes': 1, 'No': 0})Confusion_Matrix = ConfusionMatrix(df['y_Actual'], df['y_Predicted'])
Confusion_Matrix.print_stats()import matplotlib.pyplot as pltconfusion_matrix.plot()plt.show()
#输出归一化的混淆矩阵
import pandas as pd
from pandas_ml import ConfusionMatrix
import matplotlib.pyplot as plt
import string
%matplotlib inlineclasses = string.printable # 100 target classes
df = pd.DataFrame({'true':list(classes*10),'pred':sorted(classes*2)+list(classes*8)})
cm = ConfusionMatrix(df['true'],df['pred'])
cm.plot()plt.figure(figsize =(20,20))cm.plot(normalized = True,backend =“ seaborn”)
#ConfusionMatrix函数输出示例
Confusion Matrix:Classes 100 200 500 600 __all__
Actual
100 0 0 0 0 0
200 9 6 1 0 16
500 1 1 1 0 3
600 1 0 0 0 1
__all__ 11 7 2 0 20Overall Statistics:Accuracy: 0.35
95% CI: (0.1539092047845412, 0.59218853453282805)
No Information Rate: ToDo
P-Value [Acc > NIR]: 0.978585644357
Kappa: 0.0780141843972
Mcnemar's Test P-Value: ToDoClass Statistics:Classes 100 200 500 600
Population 20 20 20 20
Condition positive 0 16 3 1
Condition negative 20 4 17 19
Test outcome positive 11 7 2 0
Test outcome negative 9 13 18 20
TP: True Positive 0 6 1 0
TN: True Negative 9 3 16 19
FP: False Positive 11 1 1 0
FN: False Negative 0 10 2 1
TPR: Sensivity NaN 0.375 0.3333333 0
TNR=SPC: Specificity 0.45 0.75 0.9411765 1
PPV: Pos Pred Value = Precision 0 0.8571429 0.5 NaN
NPV: Neg Pred Value 1 0.2307692 0.8888889 0.95
FPR: False-out 0.55 0.25 0.05882353 0
FDR: False Discovery Rate 1 0.1428571 0.5 NaN
FNR: Miss Rate NaN 0.625 0.6666667 1
ACC: Accuracy 0.45 0.45 0.85 0.95
F1 score 0 0.5217391 0.4 0
MCC: Matthews correlation coefficient NaN 0.1048285 0.326732 NaN
Informedness NaN 0.125 0.2745098 0
Markedness 0 0.08791209 0.3888889 NaN
Prevalence 0 0.8 0.15 0.05
LR+: Positive likelihood ratio NaN 1.5 5.666667 NaN
LR-: Negative likelihood ratio NaN 0.8333333 0.7083333 1
DOR: Diagnostic odds ratio NaN 1.8 8 NaN
FOR: False omission rate 0 0.7692308 0.1111111 0.05
参考:Example of Confusion Matrix in Python
参考:Confusion Matrix
参考:混淆矩阵
Python使用pandas_ml输出混淆矩阵以及从混淆矩阵衍生出来的其他指标:TP、TN、FP、FN、TPR、TNR(SPC)、PPV、NPV、FPR、FDR、FNR、ACC、F1、MCC等相关推荐
- Python机器学习:评价分类结果003实现混淆矩阵,精准率和召回率
#实现混淆矩阵,精准率和召回率 import numpy as np from sklearn import datasets digits = datasets.load_digits() X = ...
- python矩阵定义_python定义矩阵
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 假如有俩个矩阵score,score1 save('score.mat','sc ...
- Python 数据分析三剑客之 NumPy(六):矩阵 / 线性代数库与 IO 操作
CSDN 课程推荐:<Python 数据分析与挖掘>,讲师刘顺祥,浙江工商大学统计学硕士,数据分析师,曾担任唯品会大数据部担任数据分析师一职,负责支付环节的数据分析业务.曾与联想.亨氏.网 ...
- python矩阵相乘例题_百道Python入门级练习题(新手友好)第一回合——矩阵乘法...
题目描述 [问题描述] 编写程序,完成3*4矩阵和4*3整数矩阵的乘法,输出结果矩阵. [输入形式] 一行,供24个整数.以先行后列顺序输入第一个矩阵,而后输入第二个矩阵. [输出形式] 先行后列顺序 ...
- 总结python源文件编译、反编译、加密混淆
本文更新地址 一.编译 1. 编译为 pyc 2. 编译为 pyo 或者 opt-n.pyc 文件 3. 编译成 pyd 或 so 链接库 编译方法一 编译方法二 编译方法三 使用建议 二.打包 1. ...
- Python矩阵计算类:计算矩阵加和、矩阵乘积、矩阵转置、矩阵行列式值、伴随矩阵和逆矩阵
最近在Python程序设计中遇到一道设计矩阵计算类的题目,原题目要求计算矩阵加和和矩阵乘积,而我出于设计和挑战自己的目的,为自己增加难度,因此设计出矩阵计算类,不仅可以求出矩阵加和和矩阵乘积,还能计算 ...
- python如何输入一个矩阵_python怎么输入矩阵
python怎么输入一个数组矩阵 下面是基于python3.4的 这样子: 1 2 3 4 import numpy as np arr = [1,2,3,4,5,6,7,8,9] matrix_a ...
- python给矩阵赋值_python给矩阵赋值
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python的numpy创造矩阵from numpy import matimp ...
- 【模型评估】混淆矩阵(confusion_matrix)之 TP、FP、TN、FN;敏感度、特异度、准确率、精确率
你这蠢货,是不是又把酸葡萄和葡萄酸弄"混淆"啦!!!这里的混淆,我们细品,帮助我们理解名词"混淆矩阵" 上面日常情况中的混淆就是:是否把某两件东西或者多件东西给 ...
最新文章
- 交情来自一系列的交易
- 使用 Contour 接管 Kubernetes 的南北流量
- Linux awk 使用
- 多目标遗传优化算法nsga2求解复杂约束问题【python源码实现,二进制编码】
- linux 定时器 代码,linux C++ 定时器代码
- Cannot update while running on a read-only volume. The application is on a read-only volume. Please
- 《南溪的目标检测学习笔记》——深度学习的假设
- Wi-Fi Direct
- windows2003安装网络打印机的问题(原创,转载请注明)
- yolov3视频检测图像上显示准确率
- C语言调用多元函数,遗传算法C语言源代码(一元函数和二元函数)
- 系统蓝屏日志DMP文件分析工具WinDbg及教程
- antd4.x [antd: Switch] `value` is not a valid prop, do you mean `checked`? 解决办法
- B站JavaScript从入门到精通智能社Blue石川老师视频部分代码_幻灯片
- 小伙创业做奶茶,兢兢业业把奶茶店已经扩张到了10家分店
- Is necessary to close fille in python?
- 百度天气预报API接口的一个坑
- Java使用Jsoup爬虫获取网站内容(三)获取元素内容属性的方法
- SpringBoot:yaml配置及语法、yml数据读取、多环境开发控制
- 02-20210222华为海思Hi3518EV300鸿蒙系统的编译