如何用 ChatGPT 帮你自动分析数据?

news/2024/10/31 9:29:58/

前段时间,我在 ChatGPT 选单里看到了 Code Interpreter。但是它正在灰度测试中 —— 先给一部分用户试用,如果反响不错并做了一定改进,就能推广给更多用户。

可惜当时我没能正确理解它的含义,我以为 Code Interpreter 是指「代码解释器」,也就是给代码添加注释进行讲解的。可那不是 ChatGPT 早就有了的功能吗?干嘛还专门弄个新的模式出来呢?

后来经朋友提醒我才发现,Code Interpreter 的功能不是「解释代码」,而是执行代码。在这个模式下,你可以上传文件作为输入,让 Code Interpreter 编写代码对输入文件做处理,并且在自带的虚拟环境中执行。根据代码内容的不同,它可以利用文本、数字、图形、表格等方式给你展示结果,甚至还可以给你一个下载链接,把你指定的输出以文件形式下载回本地。

当我意识到这一点时,真可以用「惊讶」和「懊恼」来形容。我迫不及待尝试后,赶紧写作本文,告诉你这个功能。以免你跟我一样望文生义,重蹈覆辙。

下面我用一个实际的例子给你演示。

首先我们需要一个演示数据集。这里我选择了一个名为 loans.csv 的贷款安全数据集。它是一张表格,属于简单结构数据,其中包含若干行,每一行代表一条贷款记录;而每列则代表某一相关属性特征,例如贷款等级,房屋拥有情况,贷款时长等信息。

最后一列 safe_loans 代表贷款成功或失败,也即这次放款是否安全。其中 -1 代表不安全。1 代表贷款安全回收。

首先我们需要将数据集上传到 Code Interpreter 中。上传按钮很不显眼,在输入框的旁边。

上传后,Code Interpreter 会自动进行分析,并为每列数据提供解释。

我点击了「show work」来看看究竟 Code Interpreter 是如何分析出上述结果的。

原来,Code Interpreter 直接编写了 Python 代码,读取了上传后的 loans.csv 文件,然后执行 head () 命令,打印出来前 5 行,根据列名称和具体显示的数据综合分析信息,然后做了回答。

数据已经准备好,我们现在可以开始输入提示语了。我觉得使用英文与 Code Interpreter 对话很别扭,因此我提出:

你可能会纳闷儿,老师你干嘛要这么客气呢?不就是个机器……🤫,别瞎说。礼多人不怪,AI 也一样。你跟它客气,它回答起来也会比较认真。 

闲言少叙,这是 Code Interpreter 返回的结果。

你看,用中文回答是不是感觉好多了?对比一下你就会发现,这里的「可循环信贷利用率」等专业术语,都已有具体解释了。Code Interpreter 还在最后提出「告诉我您希望对这些数据进行哪种分析或任务」。

此时,你可以要求 Code Interpreter 做一些简单分析,并要求绘制图表(如分布图)。但对于我而言,这样的机械操作实在太无趣了 —— 每个步骤都需要我来提示,那我还要你这 AI 干啥?

计划

因此,我的下一个提示语,是这样的:

注意这一段提示语中的两个技巧,你可以尝试吸收:「一步步思考」是尝试启动大语言模型的思维链;「有信心的答案」是指设定阈值,避免 ChatGPT 天马行空随意乱答。

这是 Code Interpreter 的反馈结果。

Code Interpreter 列出了可能的分析类型。

第一步是描述性分析,比如基本数量分布等。

第二步是相关性分析,总结其他变量间的相关性。

第三步是建立预测模型,其中提到了决策树,随机森林和逻辑回归等方法。也提到必须将之分为训练及测试数据集,且要「使用测试级来评估模型性能」。这种意识非常棒,已经超出了机器学习常见入门水平。

第四步就有点儿莫名奇妙了,虽然 Code Interpreter 提出使用支持向量机 (SVM)、朴素贝叶斯等几个新模型,但要做的事情和第三步是重复的。

好在,我们使用 AI 作为助手,而不是枪手。我们大可以将第四种分析类型省略,只让 Code Interpreter 将前三个步骤做一下。这里为了方便展示,我让 AI 一次只做一个步骤。下面是执行各个步骤的效果。

结果

第一步,描述性分析。Code Interpreter 给出了这个数据集的一些基本统计信息。包括记录数量、最常见的贷款等级、平均被雇佣不足一年人员数量、平均雇佣年限、平均债务收入、最常见贷款期限数量等。

第二步,相关性分析。Code Interpreter 识别出属于不同变量之间的正负相关关系。例如,短期雇佣与雇佣年限是相反的概念,因此 short_emp 和 emp_length_num 之间存在负相关性;债务收入比高的贷款申请者往往会使用循环信贷,因此 dti 和 revol_util 之间存在正相关性;而 safe_loans 和一些其他变量之间存在负相关性,这意味着对那些高债务收入比的人贷款,可能不太安全。

 

Code Interpreter 还不忘提醒咱们,这些相关性不意味着因果关系,尚需要考虑更多变量的交互和非线性关系。如果是我的学生回答此题,仅仅最后这一句,就会让我非常欣慰。

第三步,构建预测模型。

 

Code Interpreter 中规中矩地进行了数据预处理。 

我看了一下具体执行的代码: 

之后是模型的训练和性能测试环节。 

点开 show work,对应的代码是这样: 

之后,Code Interpreter 自动进行了结果的汇总输出与阐释。 

该模型在测试数据集上的准确率为 61.7%。虽然不高,但 Code Interpreter 指出相对于随机预测的准确率 50%,还是要好一些。有意思的是,它还自动提出了如何对准确率进行提升。例如超参数优化、特征工程、使用其他模型等。特别地,Code Interpreter 提出需要不仅仅关注准确率,还要考虑模型可解释性、训练和预测时间等其他指标。

非常好!不过你是说,让我自己去逐一尝试上述提升策略?那怎么可能?!Code Interpreter 既然你画了道儿,就得你来走嘛。

于是我这样提问:

 这是 Code Interpreter 的回答。

 

你看?AI 开始认真干起来了不是?

这是 Code Interpreter 一通改进之后的结果:

 

从 61.7% 提升到了 64.9%,准确率高吗?我觉得谈不上。但是这是一个非常有意思的开端,意味着 Code Interpreter 可以自动帮助我们执行提升准确率的策略,而且获得了成效。

小结

我想跟你谈谈尝试 Code Interpreter 之后的感受。我想用「惊艳」二字来形容。具体来说,就是「分析得当,执行流畅」。

咱们应该思考一下 Code Interpreter 出现的意义。曾几何时,很多小伙伴拿到宝贵的一手数据,却不知道如何分析。在几年前,你会看到很多不同学科的人一窝蜂跑去学习 Python。因为在彼时,只有学会了 Python 或者 R 后,你才可能对数据进行功能丰富且合理可行的分析。很多人因为不具备相关的技术能力,往往坐拥金山,但就是不知道怎么挖掘。

要学完 Python 或者 R 的初级操作,你至少需要学一门课程,或者啃一本教材。但是现在,你只需要和 Code Interpreter 对话,就能把这样的分析结果保质保量快速做出来,甚至比数据分析师基础入门水平都要靠谱,不亦乐乎?

ChatGPT 的 Code Interpreter,目前还在 Alpha 阶段。功能非常初级,时常遇到环境更新导致的不稳定,还有各种限制。例如说你可以让它帮你绘制统计图,英文显示都很好,但所有中文显示都是这个样子:

 

你当然可以让 Code Interpreter 自己去改进。但是它折腾一通,也只能给你展示这种无奈: 

 

但是,我们有理由相信,这些问题随着技术产品的迭代改进,都会逐步解决的。

你在数据分析的过程中,使用过其他的 AI 产品吗?有什么可以推荐给大家的?欢迎留言,咱们一起交流讨论。


最近熬夜给大家准备了一份非常全的ChatGPT 高效指令汇总大全【完整版】,需要的可以私信免费领取!

 

 


http://www.ppmy.cn/news/67738.html

相关文章

EIScopus检索 | 2023年智能交通与未来出行国际会议(CSTFM 2023)

会议简介 Brief Introduction 2023年智能交通与未来出行国际会议(CSTFM 2023) 会议时间:2023年7月28日-30日 召开地点:中国长沙 大会官网: CSTFM 2023-2023 International Conference on Smart Transportation and Future Mobility(CSTFM 202…

apple pencil一定要买吗?平价好用的电容笔合集

这些年来,iPad已经成为了很多人的首选。而iPad的使用者,更看重的是它的功能,很多人都会选择电容笔搭配来做笔记。实际上,Apple Pencil还有许多其他版本,如果只是为了记笔记,那么你不需要买一支价格不菲的苹…

【Python】ftfy 包的理解和使用

一、介绍 ftfy 是一个用于修复和清理 Unicode 文本的 Python 软件包。它的全称是 “fixes text for you”,意思是它可以自动检测和纠正常见的 Unicode 文本问题。 Unicode 是一种字符编码标准,用于表示文本中的字符。然而,有时文本中可能会…

【2021摆烂杯】web

文章目录 web签到一行代码登陆不了黑客网站 web签到 php和python中都是用**来表示幂 请输入三个整数A、B、C,使得: ABC114这里整数解不出来,尝试用开三次方的方法绕过整数限制 (5)**3(-1)**3(-10**(1/3))**3114.0方法二 计算方式为A3B3C31…

leetcode 651. 4键键盘

651. 4键键盘 中等 102 company 微软 Microsoft company 谷歌 Google company 亚马逊 假设你有一个特殊的键盘包含下面的按键: A:在屏幕上打印一个 ‘A’。Ctrl-A:选中整个屏幕。Ctrl-C:复制选中区域到缓冲区。Ctrl-V&#xff1a…

【人力资源管理】第3集 免费开源ERP: Odoo 16 hr_holidays管理员工休假和缺勤 构建一体化企业人力资源管理

文章目录 前言一、管理员工休假二、批准或者拒绝休假申请三 、简单报表工具四 、使用功能1.管理休假申请2.报告 总结 前言 管理员工休假和缺勤。 一、管理员工休假 跟踪所有员工的假期 跟踪每位员工的休假天数。员工输入请求,经理对请求进行审批和验证&#xff0…

security 报错:There is no PasswordEncoder mapped for the id “null“

security在登录的时候 无法登录成功 首先解读错误 下面百度翻译 安全框架设置了登录验证 说你没有密码编辑器 解决方法 一: 往容器中注册一个PasswordEncoder 解决方法二: 设置用户权限和角色的时候添加方法,加进去一个PasswordEncoder 只需要解决方案的话 下面的内容…

【docker_centos7】docker在centos7中如何安装??

Docker ???What??? Docker是一种开源的容器化平台,可以让开发者轻松地构建、打包、运输和部署应用程序。Docker容器是轻量级的、可移植的、自包含的软件包,其中包含了应用程序和其所…