论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】
文章目录
- 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】
- 背景:数据分析师工作范围
- 基于GPT-4的端到端数据分析框架
- 将GPT-4作为数据分析师的框架的流程图
- 实验分析
- 评估指标
- 表1:GPT-4性能表现
- 表2:专业的数据分析师与GPT-4的比较
- 表3:
- 启发
论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】
为了更加清晰地理解ChatGPT等大模型对数据分析领域的影响和帮助我们在工作中灵活应用大模型,下面我们来阅读一下阿里达摩院与新加坡南洋理工大学的一篇评估GPT-4作为数据分析师能力的论文。
| 论文标题 | Is GPT-4 a Good Data Analyst? |
|---|---|
| 论文地址 | https://arxiv.org/abs/2305.15038 |
| 论文预览 | https://browse.arxiv.org/pdf/2305.15038.pdf |
| GitHub代码地址 | https://github.com/DAMO-NLP-SG/GPT4-as-DataAnalyst |

在论文中,为了回答“GPT-4是否是一位好的数据分析师”的研究问题,作者设计了一项对比研究。他们将GPT-4视为一位数据分析师,并使用各种领域的数据库进行端到端的数据分析。
为了进行实验,他们精心设计了GPT-4的提示信息,并设计了几个针对特定任务的评估指标,以系统地比较几位专业的人类数据分析师和GPT-4之间的性能。
实验结果表明,GPT-4在性能方面可以击败一个初级数据分析师,并且在性能上可以与一位高级数据分析师相媲美。在成本和时间方面,与雇佣一位数据分析师相比,GPT-4更便宜和更快速。
另外,作者还对评估结果进行了深入讨论,通过理解这些内容可以启发我们在数据分析领域中ChatGPT/GPT-4等大模型的灵活应用。
背景:数据分析师工作范围
通常而言,数据分析师的主要工作范围包括如下:
- 收集数据并进行初步处理。
- 清洗数据,将原始数据转化为可供分析的数据。
- 描述性统计分析,对数据进行描述和总结。
- 探索性数据分析,通过图表、报告等方式展示数据。
- 推断性分析,根据已有数据推断出未知信息。
- 预测性分析,基于历史数据预测未来趋势。
在论文中也介绍了数据分析师的主要工作范围:包括利用业务数据识别有意义的模式和趋势,并为利益相关者提供有价值的洞察,以支持战略决策。
为了实现这一目标,数据分析师必须具备包括SQL查询编写、数据清洗和转换、可视化生成和数据分析等。
基于上述提到的三个主要技能,数据分析师的主要工作范围可以分为三个步骤:数据收集、数据可视化和数据分析。
初始步骤涉及理解业务需求并决定哪些数据来源与解答问题相关。一旦确定了相关的数据表,分析师可以通过SQL查询或其他提取工具提取所需数据。
第二步是创建图表和图形等可视化工具,有效传达洞察。
最后,在数据分析阶段,分析师可能需要确定不同数据点之间的相关性,识别异常值和离群值,并追踪随时间变化的趋势。从这个过程中得出的洞察可以通过书面报告或演示文稿传达给利益相关者。
基于GPT-4的端到端数据分析框架
对于典型的数据分析师工作范围,论文作者提出了一个端到端的自动化框架(end-to-end automatic framework),用于进行数据收集、可视化和分析。
端到端的自动化框架(end-to-end automatic framework)是一种用于自动化数据分析和处理的框架。该框架通过以下三个主要步骤来实现自动化:
-
代码生成(code generation):利用GPT-4的能力,根据输入问题和数据,自动生成相应的代码。这些代码用于数据处理和分析。
-
代码执行(code execution):运行生成的代码,从数据库中提取数据并生成图表(处理和分析数据)。
-
分析生成(analysis generation):对提取的数据进行分析,识别趋势、模式和洞见。自动生成分析报告或可视化结果,帮助用户更好地理解和解释数据,
将GPT-4作为数据分析师的框架的流程图
使用GPT-4自动化整个数据分析过程如下图所示:

※图1:将GPT-4作为数据分析师的框架的流程图
将GPT-4视为数据分析师的框架的流程可以表示为以下步骤:
-
接收业务问题和数据库:
GPT-4必需的输入信息包括业务问题和数据库(右上方的蓝色框所示)。
业务问题提供了分析数据的目的和目标,而数据库则为GPT-4提供了所需的数据来源。 -
对业务问题和数据库进行分析:(生成代码)
GPT-4根据用户提出的问题,理解和解析数据库中的数据(Schema),生成SQL和可视化代码,以便找到与业务问题相关的数据。 -
从数据库中提取数据:(执行代码)
根据业务问题和数据库的分析结果,GPT-4从数据库中提取与业务问题相关的数据。
这可以包括从数据库中检索特定类型的数据,或者根据业务问题的需求对数据进行筛选、处理和清洗。
GPT-4需要处理提取的数据,这可能包括统计分析、预测模型的构建等。同时,GPT-4还需要将处理后的数据可视化,例如创建图表、图形或图像来帮助理解和解释数据。 -
接收可选输入
可选输入指的是外部知识来源,用于查询与问题相关的额外文本信息(左上方的红色虚线框)。 -
输出提取的数据、数据可视化和分析结果:(生成分析)
GPT-4根据需要输出提取的数据、数据可视化的结果和分析结果(底部的绿色框)。
这些输出可以包括“data.txt”文件(包含提取的数据)、“figure.pdf”文件(包含数据可视化的结果)和分析报告(包含分析结果)。
实验分析
在论文中设计了上述框架,让GPT-4从各种领域数据库中进行端到端的数据分析,并将其性能与使用精心设计的任务特定评估指标的专业人类数据分析师进行了比较。
评估指标
作者精心设计了几个人工评估指标,分别评估生成的图表和数据分析。
图表评估包括如下3个指标:
- 信息准确性:图表中显示的数据和信息是否准确?
- 图表类型准确性:图表类型是否与问题要求匹配?
- 美观度:图表是否美观清晰,没有任何格式错误?
分析评估包括如下4个指标:
- 准确性:分析中是否包含错误的数据或信息?
- 对齐度:分析是否与问题一致?
- 复杂度:分析的复杂程度和深度如何?
- 流畅度:生成的分析是否流畅,语法正确,没有不必要的重复?
通过几个表格列举了GPT-4模型和数据分析师的各种比较数据。
表1:GPT-4性能表现

上表是GPT-4模型作为数据分析师的性能表现。
GPT-4在图表处理(生成)方面的各指标如下:
- 信息准确性:平均得分为0.78(满分为1),尽管存在一些小错误,但大多数图表基本上能够获得正确的结果。
- 图表类型准确性:平均得分为0.99%(满分为1),几乎满分的分数
- 美观度:平均得分为2.73(满分为3),大多数生成的图表对观众来说清晰无误,没有任何格式错误。
GPT-4在数据分析方面的各指标如下:
- 准确性:平均得分为0.94(满分为1),分析的正确性得分平均比图表的信息正确性得分要高得多。
- 复杂度:平均得分为2.16(满分为3),合理且令人满意
- 对齐度:平均得分为1.0(满分为1),满分
- 流畅度:平均得分为3.0(满分为3),满分
表2:专业的数据分析师与GPT-4的比较

专业的数据分析师与GPT-4的比较结果显示GPT-4能力介于初级分析师和高级分析师之间,但GPT-4花费的时间比人类数据分析师要短得多。
表3:

GPT- 4的成本约为初级数据分析师成本的0.71%,高级数据分析师成本的0.45%。
启发
通过这篇论文,我们可以学到以下几点:
-
如何使用GPT-4模型进行数据分析。
首先,需要提出一个问题,然后根据问题的性质选择合适的图表类型,并使用适当的软件或编程语言生成图表。最后,需要对数据进行分析以识别趋势、模式和洞察力,从而回答初始问题。 -
端到端的框架来自动化整个数据分析过程。
该框架包括三个步骤:代码生成、代码执行和分析生成。通过执行Python代码,可以获得图表和提取的数据。然后,使用GPT-4模型生成分析和见解,以强调关键要点。
根据业务场景,我们也可以借鉴这个框架来设计符合特定要求的自己框架。 -
大模型(如GPT-4)在数据分析领域具有潜力和应用价值。
尽管目前还没有关于是否可以用人工智能完全替代人类数据分析师的明确结论,但论文研究试图通过进行一系列初步实验来回答这个问题。通过实验的结果可以看到大模型(如GPT-4)在数据分析领域具有潜力和应用价值。在实际工作中,我们可以继续探索如何利用大模型技术来提高数据分析的效率和准确性。 -
数据分析师面临着巨大的挑战。
只有不断学习并跟上技术的发展和变化,在未来才能够有一席之地。
相关文章:
论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】
文章目录 论文阅读之【Is GPT-4 a Good Data Analyst?(GPT-4是否是一位好的数据分析师)】背景:数据分析师工作范围基于GPT-4的端到端数据分析框架将GPT-4作为数据分析师的框架的流程图 实验分析评估指标表1:GPT-4性能表现表2&…...
【数据结构】:二叉树与堆排序的实现
1.树概念及结构(了解) 1.1树的概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的有一个特殊的结点&#…...
纯css手写switch
CSS 手写switch 纯css手写switchcss变量 纯css手写switch 思路: switch需要的元素有:开关背景、开关按钮。点击按钮后,背景色变化,按钮颜色变化,呈现开关打开状态。 利用typecheckbox,来实现switch效果(修…...
PyTorch 深度学习之处理多维特征的输入Multiple Dimension Input(六)
1.Multiple Dimension Logistic Regression Model 1.1 Mini-Batch (N samples) 8D->1D 8D->2D 8D->6D 1.2 Neural Network 学习能力太好也不行(学习到的是数据集中的噪声),最好的是要泛化能力,超参数尝试 Example, Arti…...
LeetCode【438】找到字符串中所有字母异位词
题目: 注意:下面代码勉强通过,每次都对窗口内字符排序。然后比较字符串。 代码: public List<Integer> findAnagrams(String s, String p) {int start 0, end p.length() - 1;List<Integer> result new ArrayL…...
关于LEFT JOIN的一次理解
先看一段例子: SELECTproduct_half_spu.id AS halfSpuId,product_half_spu.half_spu_code,product_half_spu.half_spu_name,COUNT( product_sku.id ) AS skuCount,product_half_spu.create_on,product_half_spu.create_by,product_half_spu.upload_pic_date,produc…...
各报文段格式集合
数据链路层-- MAC帧 前导码8B:数据链路层将封装好的MAC帧交付给物理层进行发送,物理层在发送MAC帧前,还要在前面添加8字节的前导码(分为7字节的前同步码1字节的帧开始定界符)MAC地址长度6B数据长度46~1500B…...
【算法-动态规划】最长公共子序列
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
区块链游戏的开发流程
链游(Blockchain Games)的开发流程与传统游戏开发有许多相似之处,但它涉及到区块链技术的集成和智能合约的开发。以下是链游的一般开发流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司&…...
目标检测网络系列——YOLO V2
文章目录 YOLO9000better,更准batch Normalization高分辨率的训练使用anchor锚框尺寸的选择——聚类锚框集成改进——直接预测bounding box细粒度的特征图——passthrough layer多尺度训练数据集比对实验VOC 2007VOC 2012COCOFaster,更快网络模型——Darknet19训练方法Strong…...
15. Java反射和注解
Java —— 反射和注解 1. 反射2. 注解 1. 反射 动态语言:变量的类型和属性可以在运行时动态确定,而不需要在编译时指定 常见动态语言:Python,JavaScript,Ruby,PHP,Perl;常见静态语言…...
pdf处理工具 Enfocus PitStop Pro 2022 中文 for mac
Enfocus PitStop Pro 2022是一款专业的PDF预检和编辑软件,旨在帮助用户提高生产效率、确保印刷品质量并减少错误。以下是该软件的一些特色功能: PDF预检。PitStop Pro可以自动检测和修复常见的PDF文件问题,如缺失字体、图像分辨率低、颜色空…...
微信小程序入门开发教程
🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《微信小程序开发实战》。🎯Ἲ…...
php函数
1. strstr() 返回a在b中的第一个位置 2.substr() 截取字符串 3.PHP字符串函数parse_str(将字符串解析成多个变量)-CSDN博客 4.explode() 字符串分割为数组 5.trim() 1.去除字符串两边的 空白字符 2.去除指定字符 6.extract()函数从数组里…...
3.3 封装性
思维导图: 3.3.1 为什么要封装 ### 3.3.1 为什么要封装 **封装**,在Java的面向对象编程中,是一个核心的思想。它主要是为了保护对象的状态不被外部随意修改,确保数据的完整性和安全性。 #### **核心思想:** - 保护…...
Redis魔法:点燃分布式锁的奇妙实现
分布式锁是一种用于在分布式系统中控制对共享资源的访问的锁。它与传统的单机锁不同,因为它需要在多个节点之间协调以确保互斥访问。 本文将介绍什么是分布式锁,以及使用Redis实现分布式锁的几种方案。 一、前言 了解分布式锁之前,需要先了…...
iOS 项目避坑:多个分类中方法重复实现检测
#前言 在项目中,我们经常会使用分类 -> category。category在实际项目中一般有两个左右:1.给已有class增加方法,扩充起能力、2.将代码打散到多个文件中,避免因为一个类过于复杂而导致代码篇幅过长(应用于viewController中很好用) 但是 category 也有很多弊端~ **首…...
【003】EIS数据分析_#LIB
EIS数据分析 1. EIS测试及数据获取2. EIS数据分析2.1 EIS曲线划分 1. EIS测试及数据获取 点击查看往期介绍 2. EIS数据分析 2.1 EIS曲线划分 一般来说,实轴处的截获表示体电阻(Rb),它反映了电解质,隔膜和电极的电导率。高频区的半圆对应于…...
Sprint framework Day07:注解结合 xml 配置
前言 Spring注解结合XML配置是指在Spring应用中,使用注解和XML配置的方式来进行Bean的定义、依赖注入和其他配置。这种方式可以充分利用Spring框架的注解和XML配置两种不同的配置方式的特点。 在Spring框架中,我们可以使用注解来定义Bean,如…...
LiveGBS流媒体平台GB/T28181功能-国标流媒体服务同时兼容内网收流外网收流多网段设备收流
LiveGBS流媒体平台GB/T28181功能-国标流媒体服务同时兼容内网收流外网收流多网段设备收流 1、背景2、设备接入播放2.1、查看通道2.2、直播播放 3、默认收流地址配置4、其它网络设备收流配置5、搭建GB28181视频直播平台 1、背景 服务器部署的时候,可能有多个网卡多个…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【从零学习JVM|第三篇】类的生命周期(高频面试题)
前言: 在Java编程中,类的生命周期是指类从被加载到内存中开始,到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期,让读者对此有深刻印象。 目录 …...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
【LeetCode】3309. 连接二进制表示可形成的最大数值(递归|回溯|位运算)
LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 题目描述解题思路Java代码 题目描述 题目链接:LeetCode 3309. 连接二进制表示可形成的最大数值(中等) 给你一个长度为 3 的整数数组 nums。 现以某种顺序 连接…...
PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...
