Python分类模型评估

1 声明

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。

2 分类模型评估简介

对给给定的分类模型进行质量评估,常见概念见下:

其中TP是true positive(真正的)、TN是true negative (真负的)、FP是false positive,(假负的)、positive(正的)、negative(负的)个数。

混淆矩阵见下:

这里的positive指的是买了电脑的那一类(数据集参考《数据挖掘概念与技术》一书里的购买电脑的数据集),则TP是实际是买了电脑的预测是买了的数量,对应TP,而FP则是实际没买电脑,但预测买了的数量。FN则实际买了电脑但是预测值确实没买的个数,TN则是实际没买,预测的也是没买的个数。

Receiver operating characteristic curves 简称ROC曲线是比较模型的性能评价方法。它主要是反应true positive rate (TPR)真正率与false positive rate(FPR)假负率的权衡。

ROC曲线越接近左上角,说明该分类器的性能越好,这表明这个分类器在假负率很低的同时真正率也很高。

Area Under Curve简称为AUC 被定义为ROC曲线下的面积。ROC曲线一般都处于y=x这条直线的上方,所以它的取值范围为[0.5,1],有了AUC这个数值指标,判别分类器的效果就很直观,它越大越好。

注:准确率accuracy不适用于分类不平衡问题。

3 分类模型评估代码示例

# Step1 加载相关包
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import roc_curve, roc_auc_score
from sklearn.model_selection import train_test_split
# Step2 加创建特征矩阵和目标向量(y)
features, target = make_classification(n_samples=10000,n_features=10,n_classes=2,n_informative=3,random_state=3)# Step3 加利用train_test_split拆分测试集、训练集(测试占比10%)
features_train, features_test, target_train, target_test = train_test_split(
features, target, test_size=0.1, random_state=1)
# Step4 创建Logistic分类器
logit = LogisticRegression()
# Step5 训练模型
logit.fit(features_train, target_train)
# Step6 获得预测的概率值
target_probabilities = logit.predict_proba(features_test)[:,1]
# Step7 通过roc_curve获得FPR和TPR
false_positive_rate, true_positive_rate, threshold = roc_curve(target_test,
target_probabilities)
# Step8 画ROC曲线
plt.title("Receiver Operating Characteristic")
plt.plot(false_positive_rate, true_positive_rate)
plt.plot([0, 1], ls="--")
plt.plot([0, 0], [1, 0] , c=".7"), plt.plot([1, 1] , c=".7")
plt.ylabel("True Positive Rate")
plt.xlabel("False Positive Rate")
plt.show()
# Step9 计算AUC的值
roc_auc_score(target_test, target_probabilities)

4 总结

Python分类模型评估相关推荐

  1. python 两点曲线_python机器学习分类模型评估

    python机器学习分类模型评估 1.混淆矩阵 在分类任务下,预测结果(Predicted Condition)与正确标记(True Condition)之间存在四种不同的组合,构成混淆矩阵(适用于多 ...

  2. 分类模型评估的方法及Python实现

    提到分类模型评估相信大家应该都不会觉得陌生(不陌生你点进来干嘛[捂脸]),本文就分类模型评估的基本原理进行讲解,并手把手.肩并肩地带您实现各种评估函数.完整实现代码请参考本人的p...哦不是...gi ...

  3. 02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理

    此博文参考: 关于ROC绘制参考博文: https://blog.csdn.net/u011630575/article/details/80250177 Python+ROC相关的博文: https ...

  4. R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)

    R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录

  5. R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵、并使用summary函数基于混淆矩阵输出分类模型评估的其它详细指标(kappa、npv等13个)

    R语言使用yardstick包的conf_mat函数计算多分类(Multiclass)模型的混淆矩阵(confusion matrix).并使用summary函数基于混淆矩阵输出分类模型评估的其它详细 ...

  6. Python回归模型评估

    Python回归模型评估 1 声明 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理. 2 回归模型评估简介 对给给定的回归模型进行质量评估,常 ...

  7. R语言编写自定义函数计算分类模型评估指标:准确度、特异度、敏感度、PPV、NPV、数据数据为模型预测后的混淆矩阵、比较多个分类模型分类性能(逻辑回归、决策树、随机森林、支持向量机)

    R语言编写自定义函数计算分类模型评估指标:准确度.特异度.敏感度.PPV.NPV.数据数据为模型预测后的混淆矩阵.比较多个分类模型分类性能(逻辑回归.决策树.随机森林.支持向量机) 目录

  8. k近邻算法,朴素贝叶斯算法,分类模型评估,模型调优

    k近邻算法,朴素贝叶斯算法,分类模型评估,模型调优 k近邻算法 k近邻算法概述 k近邻算法代码实现 k近邻算法的评价 朴素贝叶斯算法 朴素贝叶斯算法概述 朴素贝叶斯代码实现 朴素贝叶斯的评价 分类模型 ...

  9. 视频|分类模型评估:精确率、召回率、ROC曲线、AUC与R语言生存分析时间依赖性ROC实现

    最近我们被客户要求撰写关于分类模型的研究报告,包括一些图形和统计输出. 本文将帮助您回答以下问题: ROC曲线是什么? 曲线下的面积是多少? 二元分类的决策阈值是多少? 分类模型可接受的 AUC值是多 ...

最新文章

  1. 数据流重定向和管道命令, grep, tr,sort, wc, cut,split,tee,sleep(shell 02)
  2. 130242014076+陈旭+第3次实验
  3. itchat微信调用图灵机器人API
  4. Mysql安装注意问题
  5. 文件权限二(特殊权限、隐藏属性、文件访问控制列表、切换用户方式)
  6. 计算机网络实验报告访问控制列表,电子政务《计算机网络实验》期末报告 07-访问控制列表实验报告.doc...
  7. python执行shell脚本、执行mongodb_mongodb如何执行js
  8. Unity3D中C#编写脚本
  9. 别说我不告诉你,如此养车包你把自己也养穷了……
  10. 关于updatepanel回传之后JS失效问题
  11. Hyperledger Fabric教程(12)--链码chaincode样例
  12. 【操作系统】时间片轮转调度法
  13. HCIE 习题整理 含解释
  14. 2017二本各大学计算机分数线,2017全国二本大学排名及分数线查询 (2017二本大学名单一览)...
  15. linux之hugepage
  16. 静态IP和动态IP有什么区别?什么是静态IP?
  17. 服务器dns被劫持如何修复,dns劫持,教您DNS被劫持如何修复
  18. K8s 集群节点在线率达到 99.9% 以上,扩容效率提升 50%,我们做了这 3 个深度改造...
  19. python批量下载bilibili视频_关于bilibili视频下载的一些小思路
  20. IP 地址详解(IPv4、IPv6)

热门文章

  1. VTK:Cell3D演示用法实战
  2. JavaScript实现MaximumSubarray最大子阵列(Brute Force蛮力解决方案)算法(附完整源码)
  3. wxWidgets:wxWebRequest 示例
  4. boost::math::legendre_stieltjes用法的测试程序
  5. boost::hana::Comparable用法的测试程序
  6. boost::format模块演示添加到 printf 语法的功能
  7. Boost:最小最大计时器测试程序
  8. OpenCV密集光流算法的实例(附完整代码)
  9. OpenCV推断onnx格式目标检测模型(SSD)(附完整代码)
  10. C语言找出两个字符串唯一不同的一个字符(附完整源码)