python算法测试结果自动保存到excel表格的实现步骤

 更新时间:2023年12月20日 10:37:13   作者:Coding的叶子  
我们在进行算法评估是通常会针对每个样本的算法处理结果进行统计,例如每个样本正确预测数量、漏检数量和误检数量、精度等,本文小编将给大家介绍python算法测试结果自动保存到excel表格的实现步骤,感兴趣的朋友可以参考下

前言

我们在进行算法评估是通常会针对每个样本的算法处理结果进行统计,例如每个样本正确预测数量、漏检数量和误检数量、精度等。特别是,算法验证是比较关注错误识别的样本,把每个样本的预测结果写入excel表格,可以进行快速筛查和定位,并且结果更加直观。

1 python excel操作

这里会将算法结果保存成.xls格式的excel文件,所需的python库为xlwt。如果没有xlwt库,请使用pip进行安装。

pip install xlwt

1.1 excel文件创建

excel文件创建分为两步,第一步是定义表格的编码方式,第二步是为表格创建表单。

myWorkbook = xlwt.Workbook(encoding = 'utf-8')
mySheet = myWorkbook.add_sheet('Sheet1')

1.2 单元格赋值

单元格赋值的方式是采用write函数,第一个参数表示第row+1行,row=0表示第一行。第二个参数表示第col+1列,col=0表示第1列。参数label是要写入单元格的内容。

mySheet.write(row, col, label='测试')

1.3 表格保存

表格保存的文件后缀为.xls。

savepath = 'test.xls'
myWorkbook.save(savepath)

2 定义算法结果保存函数

函数名称为write_result_to_excel,定义如下。

def write_result_to_excel(files, fps, fns, prs, lbs, savepath='res.xls')
  • files:list,每个元素为样本名称字符串。
  • fps:list,每个元素为样本中误检目标数量。
  • fns:list,每个元素为样本中漏检目标数量。
  • prs:list,每个元素为样本中算法预测目标数量。
  • lbs:list,每个元素为样本中真实标签目标数量。
  • savepath:excel表格保存路径。

3 函数完整定义

可以根据自身需要对函数进行更改。

def write_result_to_excel(files, fps, fns, prs, lbs, savepath='res.xls'):
    myWorkbook = xlwt.Workbook(encoding = 'utf-8')
    mySheet = myWorkbook.add_sheet('Sheet1')
    mySheet.write(0, 0, label='样本名称')
    mySheet.write(0, 1, label='目标标签个数')
    mySheet.write(0, 2, label='预测标签个数')
    mySheet.write(0, 3, label='正确预测个数')
    mySheet.write(0, 4, label='错误预测个数')
    mySheet.write(0, 5, label='漏检目标个数')
    for i in range(len(files)):
        mySheet.write(i+1, 0, label=files[i])
        mySheet.write(i+1, 1, label=lbs[i])
        mySheet.write(i+1, 2, label=prs[i])
        mySheet.write(i+1, 3, label=lbs[i]-fns[i])
        mySheet.write(i+1, 4, label=fps[i])
        mySheet.write(i+1, 5, label=fns[i]) 
   
    fp = sum(fps)
    fn = sum(fns)
    pr = sum(prs)
    lb = sum(lbs)
 
    residual  = fn / lb * 100
    recall    = 100 - residual
    error     = fp / pr * 100
    precision = 100 - error
    accuracy  = recall * precision / 100
    mySheet.write(i+2, 0, label='总计')
    mySheet.write(i+2, 1, label=lb)
    mySheet.write(i+2, 2, label=pr)
    mySheet.write(i+2, 3, label=lb-fn)
    mySheet.write(i+2, 4, label=fp)
    mySheet.write(i+2, 5, label=fn)
 
    mySheet.write(i+3, 1, label='检出率(%)')
    mySheet.write(i+3, 2, label='漏检率(%)')
    mySheet.write(i+3, 3, label='准确率(%)')
    mySheet.write(i+3, 4, label='误检率(%)')
    mySheet.write(i+3, 5, label='精度(%)')
 
    mySheet.write(i+4, 1, label=recall)
    mySheet.write(i+4, 2, label=residual)
    mySheet.write(i+4, 3, label=precision)
    mySheet.write(i+4, 4, label=error)
    mySheet.write(i+4, 5, label=accuracy)
    myWorkbook.save(savepath)
    s = '目标标签个数:{0}\n预测标签个数:{1}\n正确预测个数:{2}\n错误预测个数:{3}\n漏检目标个数:{4}\n'.format(lb, pr, lb-fn, fp, fn)
    s += '检出率recall:{0}\n漏检率residual:{1}\n准确率precision:{2}\n误检率error:{3}\n精度accuracy:{4}'.format(recall, residual, precision, error, accuracy)
    print(s)

以上就是python算法测试结果自动保存到excel表格的实现步骤的详细内容,更多关于python算法测试结果保存excel的资料请关注脚本之家其它相关文章!

相关文章

  • python 实现读取一个excel多个sheet表并合并的方法

    python 实现读取一个excel多个sheet表并合并的方法

    今天小编就为大家分享一篇python 实现读取一个excel多个sheet表并合并的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Pytorch测试神经网络时出现 RuntimeError:的解决方案

    Pytorch测试神经网络时出现 RuntimeError:的解决方案

    这篇文章主要介绍了Pytorch测试神经网络时出现 RuntimeError:的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • django页面跳转问题及注意事项

    django页面跳转问题及注意事项

    这篇文章主要介绍了django页面跳转问题及注意事项,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 深入了解Python中的序列解包

    深入了解Python中的序列解包

    在Python中,序列解包(Sequence Unpacking)指的是将一个序列(或任何可迭代的对象)解包,并将得到的值存储在一系列变量中,下面我们就来学习一下Python中序列解包的用法吧
    2023-10-10
  • 一文带你了解Python中的双下方法

    一文带你了解Python中的双下方法

    Python中有一些特殊方法的方法名都是以双下划线开始和结束,所以又被称为双下方法。本文就来为大家详细讲讲Python中的双下方法的使用,感兴趣的可以了解一下
    2022-07-07
  • Python实现SICP赋值和局部状态

    Python实现SICP赋值和局部状态

    这篇文章主要介绍了Python实现SICP 赋值和局部状态的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 人脸识别经典算法一 特征脸方法(Eigenface)

    人脸识别经典算法一 特征脸方法(Eigenface)

    这篇文章主要为大家详细介绍了人脸识别经典算法一,特征脸方法Eigenface,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • Python制作Windows凭据添加工具

    Python制作Windows凭据添加工具

    这篇文章主要为大家详细介绍了如何使用Python制作Windows凭据添加工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-12-12
  • Python中多进程调试技巧指南

    Python中多进程调试技巧指南

    调试多进程程序比单进程程序更具挑战性,因为每个进程都有独立的内存空间和执行环境,本文整理了调试 Python 多进程程序的有效方法,有需要的小伙伴可以了解下
    2025-06-06
  • Django调用百度AI接口实现人脸注册登录代码实例

    Django调用百度AI接口实现人脸注册登录代码实例

    这篇文章主要介绍了Django调用百度AI接口实现人脸注册登录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04

最新评论