当前位置: 首页 > news >正文

分类模型的评价指标

评价指标:

1、准确率
2、精准率
3、召回率
4、f1-Score
5、auc曲线
在了解评价指标在hi前,首先需要了解一种叫做混淆矩阵的东西
混淆矩阵:
真正例TP:本来正确的,分类到正确的类型
伪正例FP:本来是错误的,分类到正确的
伪反例FN:本来是正确的,分类到错误的
真反例TN:本来是错误的,分类到错误的真正例率TPR=TP/(TP+FN)预测为正例并且实际为正例的样本占所有训练集中为正例样本的比例将正例预测对的占正样本的比例,这个比例越大越好伪反例率FPR=FP/(FP+TN)预测为正例但是实际为反例的样本占所有反例样本的比例准确率:(TP+TN)/(TP+FN+FP+TN)也就是预测正确的占所有预测结果的比例
需要用到的api是:
from sklearn.metrics import recall_score  # 使用的是召回率
from sklearn.metrics import accuracy_score  # 精确率
from sklearn.metrics import f1_score

程序如下:

from sklearn.linear_model import LogisticRegression
import warnings
from sklearn.metrics import recall_score  # 使用的是召回率
from sklearn.metrics import accuracy_score  # 精确率
from sklearn.metrics import f1_score
warnings.filterwarnings("ignore")
import sklearn.datasets as dt
from sklearn.model_selection import train_test_split
feature = dt.load_breast_cancer()['data']
target = dt.load_breast_cancer()['target']
x_train,x_test,y_train,y_test=train_test_split(feature,target,train_size=0.8,random_state=2023)
#log = LogisticRegression()# 比较重要的参数,超参数plentaly,用l1还是l2
# l = LogisticRegression(max_iter=1000,penalty='l2').fit(x_train,y_train)
l = LogisticRegression(max_iter=10000, penalty='l1',solver='liblinear').fit(x_train,y_train)
print('l', l.score(x_test, y_test))
print('召回率',recall_score(y_test,l.predict(x_test)))
print('精确率',accuracy_score(y_test,l.predict(x_test)))
print('f1-score',f1_score(y_test,l.predict(x_test)))

实验结果

l 0.9736842105263158
召回率 0.9859154929577465
精确率 0.9736842105263158
f1-score 0.979020979020979

AUC:

只可以用于二分类模型,改评价指标通常应用比较多,对于分类模型,需要一个阈值来判断分类,逻辑回归默认阈值时 0.5,表面之曲线下的面积
需要用到的api:from sklearn.metrics import roc_auc_score
还需要用到模型将样本集分到正例类别的概率l.predict_proba(x_test)[:,1]
from sklearn.linear_model import LogisticRegression
import warnings
from sklearn.metrics import roc_auc_score
from sklearn.metrics import recall_score  # 使用的是召回率
from sklearn.metrics import accuracy_score  # 精确率
from sklearn.metrics import f1_score
warnings.filterwarnings("ignore")
import sklearn.datasets as dt
from sklearn.model_selection import train_test_split
feature = dt.load_breast_cancer()['data']
target = dt.load_breast_cancer()['target']
x_train,x_test,y_train,y_test=train_test_split(feature,target,train_size=0.8,random_state=2023)
#log = LogisticRegression()# 比较重要的参数,超参数plentaly,用l1还是l2
# l = LogisticRegression(max_iter=1000,penalty='l2').fit(x_train,y_train)
l = LogisticRegression(max_iter=10000, penalty='l1',solver='liblinear')
l.fit(x_train,y_train)
# print('l', l.score(x_test, y_test))
# print('召回率',recall_score(y_test,l.predict(x_test)))
# print('精确率',accuracy_score(y_test,l.predict(x_test)))
# print('f1-score',f1_score(y_test,l.predict(x_test)))
# 找到模型将测试样本集分到正例类别的概率
y_score = l.predict_proba(x_test)[:,1]
a = roc_auc_score(y_test,y_score)
print(a)

结果如下:
0.9983622666229938

http://www.lryc.cn/news/213347.html

相关文章:

  • 第五章 I/O管理 八、缓冲区管理
  • 笔记软件推荐!亲测好用的8款笔记软件!
  • MPJQueryWrapper 用法
  • 50元买来的iPhone手机刷机经验
  • 数据结构学习笔记——链式表示中的双链表及循环单/双链表
  • DC电源模块去除输出电源中的高频噪声及杂波
  • 【驱动开发】注册字符设备使用gpio设备树节点控制led三盏灯的亮灭
  • 面向制造企业的持续发展,2023数字化工单管理系统创新篇章-亿发
  • mysql 元数据锁 MDL读锁与MDL写锁
  • 批量预处理哨兵2影像
  • Unity地面交互效果——2、动态法线贴图实现轨迹效果
  • 视频剪辑达人教您:如何运用嵌套合并技巧制作固定片尾
  • 【腾讯云 TDSQL-C Serverless 产品体验】TDSQL-C MySQL Serverless最佳实践
  • SQLyog连接数据库报plugin caching_sha2_password could not be loaded......解决方案
  • linux应急排查
  • Apache POI及easyExcel读取及写入excel文件
  • 为什么写作
  • python基于VGG19实现图像风格迁移
  • BoredHackerBlog: Cloud AV RT日记
  • 数据结构之“初窥门径”
  • css:transform实现平移、旋转、缩放、倾斜元素
  • 如何理解AutoGPT
  • 【网络知识必知必会】聊聊网络层IP协议
  • 66. 加一
  • 逻辑(css3)_强制不换行
  • 营收净利双降、股价下跌四成,敷尔佳带伤闯关“双11”
  • C语言KR圣经笔记 2.8自增和自减 2.9位运算 2.10赋值
  • PHP的Excel导出与导入
  • Ubuntu自建git服务器
  • 【面试专题】并发编程篇①