Open main menu
首页
专栏
课程
分类
归档
Chat
Sci-Hub
谷歌学术
Libgen
GitHub镜像
登录/注册
搜索
关闭
Previous
Previous
Next
Next
如何用 ChatGPT 帮你自动分析数据?
sockstack
/
208
/
2023-11-25 00:02:39
<p><span style="color: red; font-size: 18px">ChatGPT 可用网址,仅供交流学习使用,如对您有所帮助,请收藏并推荐给需要的朋友。</span><br><a href="https://ckai.xyz/?sockstack§ion=detail" target="__blank">https://ckai.xyz</a><br><br></p> <article class="baidu_pl"><div id="article_content" class="article_content clearfix"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/kdoc_html_views-1a98987dfd.css"> <link rel="stylesheet" href="https://csdnimg.cn/release/blogv2/dist/mdeditor/css/editerView/ck_htmledit_views-25cebea3f9.css"> <div id="content_views" class="htmledit_views"><div id="js_content"> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/73a0961607a17782c778d6eab2b3e26c.jpeg" alt="73a0961607a17782c778d6eab2b3e26c.jpeg"></p> <h2>误判</h2> <p>好几天之前,我就在 ChatGPT 选单里看到了 Code Interpreter。它正在灰度测试中 —— 先给一部分用户试用,如果反响不错并做了一定改进,就能推广给更多用户。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/aea11d5f3db7b4b241db3b732e12f97f.jpeg" alt="aea11d5f3db7b4b241db3b732e12f97f.jpeg"></p> <p>可惜当时我没能正确理解它的含义,犯了一个大错误 —— 望文生义。我以为 Code Interpreter 是指「代码解释器」,也就是给代码添加注释进行讲解的。可那不是 ChatGPT 早就有了的功能吗?干嘛还专门弄个新的模式出来呢?</p> <p>后来经朋友提醒我才发现,Code Interpreter 的功能不是「解释代码」,而是<strong>执行代码</strong>。在这个模式下,你可以上传文件作为输入,让 Code Interpreter 编写代码对输入文件做处理,并且<strong>在自带的虚拟环境中执行</strong>。根据代码内容的不同,它可以利用文本、数字、图形、表格等方式给你展示结果,甚至还可以给你一个下载链接,把你指定的输出以文件形式下载回本地。</p> <p>当我意识到这一点时,真可以用「惊讶」和「懊恼」来形容。我迫不及待尝试后,赶紧写作本文,告诉你这个功能。以免你跟我一样望文生义,重蹈覆辙。</p> <p>下面我用一个实际的例子给你演示。</p> <h2>实例</h2> <p>首先我们需要一个演示数据集。这里我选择了一个名为 <code>loans.csv</code> 的贷款安全数据集。它是一张表格,属于简单结构数据,其中包含若干行,每一行代表一条贷款记录;而每列则代表某一相关属性特征,例如贷款等级,房屋拥有情况,贷款时长等信息。</p> <p>最后一列 <code>safe_loans</code> 代表贷款成功或失败,也即这次放款是否安全。其中 <code>-1</code> 代表不安全。<code>1</code> 代表贷款安全回收。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/0fc60439f76dde96f36c19ae62211531.jpeg" alt="0fc60439f76dde96f36c19ae62211531.jpeg"></p> <p>首先我们需要将数据集上传到 Code Interpreter 中。上传按钮很不显眼,在输入框的旁边。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/2100d6b610853e11a3efb31c572b7fcf.jpeg" alt="2100d6b610853e11a3efb31c572b7fcf.jpeg"></p> <p>上传后,Code Interpreter 会自动进行分析,并为每列数据提供解释。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/8cda420d1348c0e8d7b73f6ab4002715.jpeg" alt="8cda420d1348c0e8d7b73f6ab4002715.jpeg"></p> <p>我点击了 "show work" 来看看究竟 Code Interpreter 是如何分析出上述结果的。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/3964767e7f3f548652b5a46d6b02b4c6.jpeg" alt="3964767e7f3f548652b5a46d6b02b4c6.jpeg"></p> <p>原来,Code Interpreter 直接编写了 Python 代码,读取了上传后的 <code>loans.csv</code> 文件,然后执行 <code>head ()</code> 命令,打印出来前 5 行,根据列名称和具体显示的数据综合分析信息,然后做了回答。</p> <h2>提示</h2> <p>数据已经准备好,我们现在可以开始输入提示语了。我觉得使用英文与 Code Interpreter 对话很别扭,因此我提出:</p> <blockquote> <p>请用中文翻译上面的内容,并且对于专业术语加以简单明了的解释。谢谢</p> </blockquote> <p>你可能会纳闷儿,老师你干嘛要这么客气呢?不就是个机器……🤫,别瞎说。礼多人不怪,AI 也一样。你跟它客气,它回答起来也会比较认真。在《人工智能这么强,我直接把工作都交给它可以吗?》一文中,我给你解释过具体的证据。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/d10914e34dcf32ed95a435f2749f9d0f.jpeg" alt="d10914e34dcf32ed95a435f2749f9d0f.jpeg"></p> <p>闲言少叙,这是 Code Interpreter 返回的结果。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/5ab90673d6797a0ecc69a1e7c953e8a5.jpeg" alt="5ab90673d6797a0ecc69a1e7c953e8a5.jpeg"></p> <p>你看,用中文回答是不是感觉好多了?对比一下你就会发现,这里的「可循环信贷利用率」等专业术语,都已有具体解释了。Code Interpreter 还在最后提出「告诉我您希望对这些数据进行哪种分析或任务」。</p> <p>此时,你可以要求 Code Interpreter 做一些简单分析,并要求绘制图表(如分布图)。但对于我而言,这样的机械操作实在太无趣了 —— 每个步骤都需要我来提示,那我还要你这 AI 干啥?</p> <h2>计划</h2> <p>因此,我的下一个提示语,是这样的:</p> <blockquote> <p>能否根据目前的数据集,思考它可以做哪些分析?请一步步思考,并且给我你有信心的答案。谢谢</p> </blockquote> <p>注意这一段提示语中的两个技巧,你可以尝试吸收:「一步步思考」是尝试启动大语言模型的思维链;「有信心的答案」是指设定阈值,避免 ChatGPT 天马行空随意乱答。</p> <p>这是 Code Interpreter 的反馈结果。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/430f2aac2c3c75277f2de8a66c9ff7c2.jpeg" alt="430f2aac2c3c75277f2de8a66c9ff7c2.jpeg"></p> <p>Code Interpreter 列出了可能的分析类型。</p> <p>第一步是描述性分析,比如基本数量分布等。</p> <p>第二步是相关性分析,总结其他变量间的相关性。</p> <p>第三步是建立预测模型,其中提到了决策树,随机森林和逻辑回归等方法。也提到必须将之分为训练及测试数据集,且要「使用测试级来评估模型性能」。这种意识非常棒,已经超出了机器学习常见入门水平。</p> <p>第四步就有点儿莫名奇妙了,虽然 Code Interpreter 提出使用支持向量机 (SVM)、朴素贝叶斯等几个新模型,但要做的事情和第三步是重复的。</p> <p>好在,<strong>我们使用 AI 作为助手,而不是枪手</strong>。我们大可以将第四种分析类型省略,只让Code Interpreter将前三个步骤做一下。这里为了方便展示,我让 AI 一次只做一个步骤。下面是执行各个步骤的效果。</p> <h2>结果</h2> <p>第一步,描述性分析。Code Interpreter 给出了这个数据集的一些基本统计信息。包括记录数量、最常见的贷款等级、平均被雇佣不足一年人员数量、平均雇佣年限、平均债务收入、最常见贷款期限数量等。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/ec9ee776898ee894399f722b00fd4e5c.jpeg" alt="ec9ee776898ee894399f722b00fd4e5c.jpeg"></p> <p>第二步,相关性分析。Code Interpreter 识别出属于不同变量之间的正负相关关系。例如,短期雇佣与雇佣年限是相反的概念,因此 <code>short_emp</code>和 <code>emp_length_num</code> 之间存在负相关性;债务收入比高的贷款申请者往往会使用循环信贷,因此 <code>dti</code> 和 <code>revol_util</code> 之间存在正相关性;而 <code>safe_loans</code> 和一些其他变量之间存在负相关性,这意味着对那些高债务收入比的人贷款,可能不太安全。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/f5f87eefdd8fbf56783527b1b70878f2.jpeg" alt="f5f87eefdd8fbf56783527b1b70878f2.jpeg"></p> <p>Code Interpreter还不忘提醒咱们,这些<strong>相关性不意味着因果关系</strong>,尚需要考虑更多变量的交互和非线性关系。如果是我的学生回答此题,仅仅最后这一句,就会让我非常欣慰。</p> <p>第三步,构建预测模型。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/ba9a6d78e5e8415073d3051937cefbd5.jpeg" alt="ba9a6d78e5e8415073d3051937cefbd5.jpeg"></p> <p>Code Interpreter 中规中矩地进行了数据预处理。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/18e64e4ea1d0d5f11284bb22f3be0e77.jpeg" alt="18e64e4ea1d0d5f11284bb22f3be0e77.jpeg"></p> <p>我看了一下具体执行的代码:</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/50b9f21f96ea4dece749480e95f44680.jpeg" alt="50b9f21f96ea4dece749480e95f44680.jpeg"></p> <p>之后是模型的训练和性能测试环节。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/7ad5c671c41aaa52bf13297054746753.jpeg" alt="7ad5c671c41aaa52bf13297054746753.jpeg"></p> <p>点开 <code>show work</code>,对应的代码是这样:</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/a7ee122ffffef37fa2bcc0fa77858765.jpeg" alt="a7ee122ffffef37fa2bcc0fa77858765.jpeg"></p> <p>之后,Code Interpreter 自动进行了结果的汇总输出与阐释。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/c3c4e600640d4edf35f565961b242d23.jpeg" alt="c3c4e600640d4edf35f565961b242d23.jpeg"></p> <p>该模型在测试数据集上的准确率为61.7%。虽然不高,但Code Interpreter指出相对于随机预测的准确率50%,还是要好一些。有意思的是,它还自动提出了如何对准确率进行提升。例如超参数优化、特征工程、使用其他模型等。特别地,Code Interpreter提出需要不仅仅关注准确率,还要考虑模型可解释性、训练和预测时间等其他指标。</p> <p>非常好!不过你是说,让我自己去逐一尝试上述提升策略?那怎么可能?!Code Interpreter 既然你画了道儿,就得你来走嘛。</p> <p>于是我这样提问:</p> <blockquote> <p>你能否实施改进策略,并且在同样的测试集上进行测试?谢谢</p> </blockquote> <p>这是 Code Interpreter 的回答。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/e92aa9410c725acf8723af0ca9b57542.jpeg" alt="e92aa9410c725acf8723af0ca9b57542.jpeg"></p> <p>你看?AI 开始认真干起来了不是?</p> <p>这是 Code Interpreter 一通改进之后的结果:</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/07d20008fb6d3ac9869bf22453d1c6c7.jpeg" alt="07d20008fb6d3ac9869bf22453d1c6c7.jpeg"></p> <p>从61.7%提升到了64.9%,准确率高吗?我觉得谈不上。但是这是一个非常有意思的开端,意味着Code Interpreter可以自动帮助我们执行提升准确率的策略,而且获得了成效。</p> <h2>小结</h2> <p>我想跟你谈谈尝试 Code Interpreter 之后的感受。我想用「惊艳」二字来形容。具体来说,就是「分析得当,执行流畅」。</p> <p>咱们应该思考一下 Code Interpreter 出现的意义。曾几何时,很多小伙伴拿到宝贵的一手数据,却不知道如何分析。在几年前,你会看到很多不同学科的人一窝蜂跑去学习 Python。因为在彼时,只有学会了 Python 或者 R 后,你才可能对数据进行功能丰富且合理可行的分析。很多人因为不具备相关的技术能力,往往坐拥金山,但就是不知道怎么挖掘。</p> <p>要学完 Python 或者 R 的初级操作,你至少需要学一门课程,或者啃一本教材。但是现在,你只需要和 Code Interpreter 对话,就能把这样的分析结果保质保量快速做出来,甚至比数据分析师基础入门水平都要靠谱,不亦乐乎?</p> <p>ChatGPT 的 Code Interpreter,目前还在 Alpha 阶段。功能非常初级,时常遇到环境更新导致的不稳定,还有各种限制。例如说你可以让它帮你绘制统计图,英文显示都很好,但所有中文显示都是这个样子:</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/fda49218e0b7e6ac62ab0f4dd11904f6.jpeg" alt="fda49218e0b7e6ac62ab0f4dd11904f6.jpeg"></p> <p>你当然可以让 Code Interpreter 自己去改进。但是它折腾一通,也只能给你展示这种无奈:</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/27a57ebfa0151fadf4747ba8a4abb61f.jpeg" alt="27a57ebfa0151fadf4747ba8a4abb61f.jpeg"></p> <p>但是,我们有理由相信,这些问题随着技术产品的迭代改进,都会逐步解决的。</p> <p>你在数据分析的过程中,使用过其他的 AI 产品吗?有什么可以推荐给大家的?欢迎留言,咱们一起交流讨论。</p> <p>祝(自动)数据分析愉快!</p> <p><strong>点赞 +「在看」,转发</strong>给你身边有需要的朋友。收不到推送?那是因为你只<strong>订阅</strong>,却没有<strong>加星标</strong>。</p> <p>欢迎订阅我的小报童付费专栏,每季度更新不少于10篇文章。目前价格优惠。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/d726adc3d713ef73ec2562418256a8a2.jpeg" alt="d726adc3d713ef73ec2562418256a8a2.jpeg"></p> <p>如果有问题咨询,或者希望加入社群和热爱钻研的小伙伴们一起讨论,<strong>订阅知识星球</strong>吧。不仅包括小报童的推送内容,还可以自由发帖与提问。之前已经积累下的帖子和问答,就有数百篇。足够你好好翻一阵子。知识星球支持72小时内无条件退款,所以你可以放心尝试。</p> <p><img referrerpolicy="no-referrer" title="" src="https://img-blog.csdnimg.cn/img_convert/ca3b0529a9b2a469a4ecaff221de9429.jpeg" alt="ca3b0529a9b2a469a4ecaff221de9429.jpeg"></p> <p>若文中部分链接可能无法正常显示与跳转,可能是因为微信公众平台的外链限制。如需访问,请点击文末「阅读原文」链接,查看链接齐备的版本。 </p> <br> <h2>延伸阅读</h2> <ul> <li><p>AI 帮我找卡片挺好,但能不能帮我创作出新的相关卡片啊?</p></li> <li><p>摸索那么多工具后,怎样才能避免「效率成瘾」?</p></li> <li><p>自己录制和剪辑视频,如何解决占用空间过大的问题?</p></li> <li><p>想打造个性化高效工作流,可不会编程怎么办?</p></li> <li><p>世界很大,英语不好的你如何去看看?</p></li> </ul> </div></div> </div> <div id="treeSkill"></div> </article>
如何用 ChatGPT 帮你自动分析数据?
作者
sockstack
许可协议
CC BY 4.0
发布于
2023-11-25
修改于
2024-12-22
上一篇:软件:常用 Linux 软件汇总,值得收藏
下一篇:自己动手做chatGPT:向量的概念和相关操作
尚未登录
登录 / 注册
文章分类
博客重构之路
5
Spring Boot简单入门
4
k8s 入门教程
0
MySQL 知识
1
NSQ 消息队列
0
ThinkPHP5 源码分析
5
使用 Docker 从零开始搭建私人代码仓库
3
日常开发汇总
4
标签列表
springboot
hyperf
swoole
webman
php
多线程
数据结构
docker
k8s
thinkphp
mysql
tailwindcss
flowbite
css
前端