将 ChatGPT 用于数据科学项目的指南

news2024/11/15 21:22:21
推荐:使用 NSDT场景编辑器 快速搭建3D应用场景

我们都知道 ChatGPT 的受欢迎程度以及人们如何使用它来提高生产力。但是,如果您是新手,则值得注册ChatGPT免费演示并尝试它所能做的一切。您还应该参加我们的 ChatGPT 简介课程,学习制作有效提示的最佳实践,并探索利用这一强大 AI 工具的常见业务用例。

在本教程中,我们将学习如何使用 ChatGPT 来处理端到端的数据科学项目。我们将使用各种提示来创建项目大纲、编写 Python 代码、进行研究和调试应用程序。此外,我们将学习编写有效的 ChatGPT 提示的技巧。

使用 ChatGPT 进行端到端数据科学项目

在项目中,我们将使用来自DataCamp Workspace的贷款数据,并围绕它规划数据科学项目。

ChatGPT 在这里完成了 80% 的工作,我们只需要掌握快速工程就可以让一切正确,为此,我们有令人惊叹的 ChatGPT 数据科学备忘单。它带有60 + ChatGPT提示,用于基于SQL,R和Python的数据科学任务。

项目规划

这是项目中最重要的部分,我们在其中查看可用资源和目标以提出最佳策略。

您可以转到 chat.openai.com 并发起新的聊天。之后,我们将提及可用的贷款数据集,并要求 ChatGPT 提出构建端到端通用投资组合项目的步骤。

提示:“我有一个由 9500 行和 14 列组成的贷款数据集:['credit.policy', 'purpose', 'int.rate', 'installment', 'log.annual.inc', 'dti', 'fico', 'days.with.cr.line', 'revol.bal', 'revol.util', 'inq.last.6mths', 'delinq.2yrs', 'pub.rec', 'not.full.paid']。你能列出我必须遵循的步骤来为我的投资组合开发一个端到端的项目吗?

我们确实拿到了清单,但是忘了提阶级失衡问题和项目目标,就是准确预测“贷款不还”。

更新提示:“请包括阶级不平衡问题,并准确预测贷款是否会偿还,而不是贷款是否偿还。

同样,我们对模型监控不感兴趣,我们希望构建一个Gradio应用程序并将其部署在Huggingface Spaces上。

更新提示:“我们将使用 Gradio 创建一个 Web 应用程序并将其部署到 Spaces 上,我们不会在生产中监控模型。

贷款数据分类器的想法生成

作者动图 |项目中涉及的步骤的最终列表

我们得到了一个包含 9 个步骤的列表,如上所示,并详细说明了我们应该如何处理每个步骤。

以下是我们将在本教程中遵循的任务列表:

  • 数据清理和预处理。处理缺失值、将分类变量转换为数值变量、缩放/规范化数据以及处理数据中的任何异常值或异常。此外,您需要通过对少数阶级(未全额支付的贷款)进行过度抽样或对多数阶级(全额支付的贷款)进行过抽样来解决阶级不平衡问题。
  • 探索性数据分析 (EDA)。浏览数据集以深入了解数据,例如变量的分布、变量之间的相关性以及识别数据中的任何模式。
  • 特征工程。创建新特征或转换现有特征以提高模型的预测能力。
  • 型号选择。尝试多种模型,例如决策树、随机森林、逻辑回归或支持向量机 (SVM)。
  • 模型训练和评估。根据数据训练所选模型,并使用各种指标(如准确性、精度、召回率和 F1 分数)评估其性能。
  • 超参数优化。微调所选模型的超参数以提高其性能。
  • 使用 Gradio 创建 Web 应用程序。选择最佳模型后,您可以使用 Gradio 创建 Web 应用程序。
  • 在空间上部署 Web 应用程序。使用 Gradio 创建 Web 应用程序后,您可以将其部署到 Spaces 上。
  • 测试 Web 应用。测试它以确保它按预期工作。

探索性数据分析 (EDA)

探索性数据分析是关于数据操作、统计分析和数据可视化的。我们可以通过编写有关编写 Python 代码以在我们的数据集上进行探索性数据分析的后续提示来完成它。

后续提示:“请编写一个 Python 代码来加载并执行贷款数据集的探索性数据分析 (EDA)”

机器人将理解上下文,并提出带有注释和详细说明其工作原理的 Python 代码。

用于 EDA 的 Python 代码

作者动图 |用于 EDA 的 Python 代码

  1. 将数据集加载并显示为 Pandas 数据帧。

数据

2. 显示数值变量的行数和列数以及统计摘要。

3. 在每列中显示缺失值。正如我们所看到的,我们没有。

4. 可视化目标变量“not.full.paid”的分布

可视化目标变量的分布

5. 可视化变量之间的相关性。

可视化变量之间的相关性

6. 了解贷款用途分布。

了解贷款用途分布

7. 了解按贷款用途划分的利率分布。

了解按贷款目的划分的利率分布

特征工程

我们将执行特征工程以简化预处理任务,而不是预处理和清理数据。

后续提示:“编写 Python 代码执行特征工程”

我们确实得到了正确的解决方案,但它包含不相关的代码,因此我们必须编写更新提示来修改代码。

更新提示:“仅添加特征工程部分。

ChatGPT提出了两个新功能:“installment_to_income_ratio”和“credit_history”。

预处理和平衡数据

同样,ChatGPT知道项目的背景。我们不必再次解释一切。因此,我们将简单地要求它编写一个 Python 代码来清理和预处理数据。

后续提示:“现在编写一个python代码来清理和预处理数据集”

  1. 删除不必要的列并将分类变量转换为数字变量。

2. 使用标准缩放器缩放数值要素。

3. 使用 imblearn 的过采样方法处理类不平衡。

正如我们所看到的,我们已经成功地平衡了班级。

型号选择

在这一部分中,我们要求 ChatGPT 为模型选择任务训练各种模型的数据。

后续提示:“编写用于模型选择的后续 python 代码。尝试决策树、随机森林、逻辑回归或支持向量机 (SVM)。注意:仅包括模型选择部分。

它生成了 Python 脚本,用于将数据集拆分为训练和测试,并在指定模型上训练数据集以显示准确性指标。

随机森林算法的性能明显优于其他模型。

超参数调优和模型评估

我们将选择性能更好的模型并进行模型评估。我们指定使用准确性、精度、召回率和 F1 分数作为指标和交叉验证,以确保模型的稳定性。

后续提示:“选择 RandomForestClassifier 并编写用于模型评估的 python 代码。使用准确性、精度、召回率和 F1 分数作为指标和交叉验证,以确保模型不会过度拟合训练数据。

我们将更新 Python 以添加超参数调优任务并保存性能最佳的模型。

更新提示:“在上面的代码中还包括超参数调优并保存性能最佳的模型”

代码的最终版本使用 GridSearchCV 进行具有五个交叉验证拆分的超参数优化,并使用 f1 指标进行评估以查找最佳超参数。

之后,ChatGPT 自动添加代码,在测试集上选择最佳模型进行模型评估,并显示性能最佳的超参数。

我们有一个稳定的模型,准确率为 89.35。精度和召回率相似。

最后,我们将使用 joblib 保存模型。

可以在 DataCamp 工作区中找到包含输出的源代码。

使用 Gradio 创建 Web 应用程序

现在是最有趣的部分。我们将仅使用提示来创建完全可自定义的 Web 应用程序,该应用程序将接受数字输入并使用机器学习模型显示结果。

ChatGPT 已经知道上下文,所以我们需要让它为贷款数据分类器编写一个 Gradio Web 应用程序。

后续提示:“编写 Python 代码以创建用于贷款数据分类器的 Gradio Web 应用程序。我们不使用列['credit.policy', 'days.with.cr.line', 'purpose']。

要求 ChatGPT 只包含 Gradio 应用程序部分,而不是训练,然后包含推理脚本。

更新提示:“只需包含 gradio 应用程序部分。

我们得到的代码显示预测类概率,我们希望显示分类标签。

更新提示:“修改代码以显示分类而不是类概率。

运行代码后,我们看到了多个警告和错误。您可以通过向 ChatGPT 提及错误来改进它。

我们需要了解 ChatGPT 的局限性。它是在一个旧数据集上训练的,如果你希望它使用最新的API更新代码,你会碰壁。相反,我们必须阅读 Gradio 文档并手动更新代码。

失败提示:“使用 gradio.components 中的组件更新 Gradio 代码”

在 Gradio 应用程序中,我们正在加载保存的模型并从用户那里获取输入以显示模型预测。

通过阅读 Gradio 文档了解 Gradio 的工作原理。

您可以将上述代码保存在“app.py”文件中,并通过在终端中运行“python app.py”脚本在浏览器中启动应用程序。

贷款审批分类器应用

作者动图 |贷款审批分类器应用

尽管我们的应用程序运行良好,但 ChatGPT 完全错过了我们缩放了数字特征。因此,您可以返回并保存标准标量参数,而不是要求更新代码。

之后,使用 joblib 在您的应用程序中加载标量。

那么,我们为什么要手动执行此操作?如果你要求 ChatGPT 修改一行,它可能会修改整个代码甚至变量名称。

是的,ChatGPT并不完美,它永远不会取代开发人员。

在空间上部署 Web 应用程序

您可以简单地要求ChatGPT教您在Hugging Face Spaces上部署gradio应用程序的简单方法,它将列出必要的步骤。

提示:“如何将 gradio 应用程序部署到拥抱面孔空间。

  1. 转到拥抱脸网站,然后单击左上角的个人资料图片以选择“新空间”选项。

拥抱脸

图片来源:作者

  1. 添加名称和许可证类型以创建应用程序存储库。
  2. 单击“文件和版本”选项卡+ 添加文件>“上传文件”以在存储库中添加文件
  3. 拖动 app.py、模型和缩放器文件,然后单击“将更改提交到主”按钮,然后使用提交消息保存提交。类似于 Git。

将更改提交到主

图片来源:作者

如果您遇到运行时错误,那是因为您忘记添加 requirements.txt 文件。选择“文件和版本”选项卡> + 添加文件>创建一个新文件,并添加文件名和 Python 库以及如下所示的版本。

创建新文件

图片来源:作者

你的应用已准备就绪。您可以使用滑块更改输入并预测客户是否应该获得贷款。

您可以在kingabzpro的拥抱面部空间上尝试现场演示。

拥抱面部空间

编写有效聊天 GPT 提示的提示

在将其用于现实生活中的项目时,快速工程是棘手的。我们需要了解我们可以做什么或我们必须介入以纠正 ChatGPT 的规则。

以下是有关如何在不影响项目的情况下改善 ChatGPT 体验的一些提示。

  1. 始终写出清晰简洁的提示。确保在开始时详细解释您需要什么的所有内容。
  2. 创建项目的历史记录。ChatGPT 是一个聊天机器人,因此为了有效地理解上下文,您需要建立历史记录。
  3. 继续努力。没有标准的提示编写方式。您需要从基本提示开始,并通过编写后续更新提示来不断改进套装。
  4. 提及代码错误。如果在本地计算机上运行代码并引发错误,请尝试在后续提示中提及该错误。ChatGPT将立即从错误中吸取教训,并提出更好的解决方案。
  5. 手动进行更改。ChatGPT 是在旧数据上进行训练的,如果你期望它提出这个想法或新的 API 命令,你会失望的。尽可能尝试对代码进行手动更改,因为生成的代码并不完美。
  6. 将其用于常见任务。如果您要求常见任务,则使用 ChatGPT 成功的机会更大。
  7. 用它来学习新东西。始终要求 ChatGPT 解释新事物或“如何做”教程。它将为您提供完成工作的简单步骤列表。如果您有学习障碍,这将非常有帮助。

如果您对 ChatGPT 和 OpenAI API 感兴趣,请注册参加网络研讨会:OpenAI API 和 ChatGPT 入门。您将学习如何使用 OpenAI API 等执行语言和编码生成任务。

结论

开发贷款审批分类器是将 ChatGPT 用于数据科学项目的众多示例之一。我们可以使用它来生成合成数据、运行 SQL 查询、创建数据分析报告、进行机器学习研究等等。生成式人工智能将继续存在,它将使我们的生活更轻松。您无需在项目上花费数周和数月的时间,而是可以在数小时内开发、测试和部署数据科学应用程序。

在本教程中,我们学习了使用 ChatGPT 进行项目规划、数据分析、数据清理和预处理、模型选择、超参数优化以及创建和部署 Web 应用程序。

使用ChatGPT有一个问题。您需要具有统计分析和Python编码的经验,才能理解项目中的不同任务;没有它,你就是盲目行走。通过参加 Python 数据科学家职业轨迹开始您的数据科学之旅,并获得成功成为数据科学家所需的职业建设技能。

原文链接:将 ChatGPT 用于数据科学项目的指南 (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/973199.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文旅品牌为何青睐于3D虚拟数字人定制?

随着web3.0技术的到来,数字人技术快速发展,推动着文旅通过3D虚拟数字人定制,探索数字化营销。数字人结合动捕设备,可以颠覆传统玩法,以数字人内容赋能传统宣传手段,通过动捕设备让数字人与用户交流互动&…

U盾难管理?用U盾专用USB集线器

公司有一堆U盾要插着用,但是一台电脑也才两三个接口,怎么办? 三个字,很简单, 一台U盾专用的USB集线器就能解决。 U盾专用集线器为解决网银U盾连接问题而生。 它有四大好处! 集中管理 把所有U盾集中到一…

Java泛型(待补充)

泛型是一种“代码模板”,可以用一套代码套用各种类型。 一、什么是泛型? 泛型就是编写模板代码来适应任意类型;泛型的好处是使用时不必对类型进行强制转换,它通过编译器对类型进行检查;注意泛型的继承关系&#xff1a…

RHCE——十七、文本搜索工具-grep、正则表达式

RHCE 一、文本搜索工具--grep1、作用2、格式3、参数4、注意5、示例5.1 操作对象文件:/etc/passwd5.2 grep过滤命令示例 二、正则表达式1、概念2、基本正则表达式2.1 常见元字符2.2 POSIX字符类2.3 示例 3、扩展正则表达式3.1 概念3.2 示例 三、作业1、作业一2、作业…

【Apollo】开启Apollo之旅:让自动驾驶如此简单

前言 Apollo 是百度公司推出的自动驾驶平台。它是一个综合性的自动驾驶解决方案,提供了包括感知、决策、规划和控制等核心功能,以及地图、定位、仿真、数据管理等配套工具。 文章目录 前言Apollo 的发展历程Apollo 8.0新特性软件包管理感知框架工具链小…

软件确认测试的七大准则

确认测试 1. 确认软件设计是否依从于软件需求,且软件的每一项需求是否能跟踪到软件设计。 2. 确认状态顺序和状态变化( 功能模块图) 。 3. 确认数据和控制流满足安全性、功能性和性能需求。 4. 确认软件的功能性,硬件、软件和用户接口的一致性&#…

上海亚商投顾:沪指放量大涨超1% 北向资金净买入近70亿元

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日集体反弹,沪指高开高走涨超1%,上证50盘中涨超2%,北证50指数涨…

涉案财物管理系统DW-S405|实现涉案财物智能化管理

涉案财物管理系统(智财物DW-S405)是依托互3D技术、云计算、大数据、RFID技术、数据库技术、AI、视频分析技术对RFID智能仓库进行统一管理、分析的信息化、智能化、规范化的系统。 东识涉案财物管理系统是一套基于物联网技术的管理方案,旨在规…

孙哥Spring源码第17集

第17集 refresh()-invokeBeanFactoryPostProcessor -一-invokeBeanFactoryPostProcessor的分析过程 【视频来源于:B站up主孙帅suns Spring源码视频】 1、什么是解析顶级注解? PropertySource CompeontScan Configuration Component ImportResour…

第14章 热门数据实时收集

mini商城第14章 热门数据实时收集 一、课题 商品秒杀-热门数据实时收集 二、回顾 1、秒杀设计 2、活动管理 3、搜索管理 4、商品详情处理 5、 数据同步 三、目标 1、掌握热门分析收集方案 2、Lua高级语法 掌握Lua高级语法指令执行顺序 掌握Lua高级语法指令编写位置 …

FPGA GTH 全网最细讲解,aurora 8b/10b编解码,HDMI视频传输,提供2套工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 GT 高速接口解决方案3、GTH 全网最细解读GTH 基本结构GTH 发送和接收处理流程GTH 的参考时钟GTH 发送接口GTH 接收接口GTH IP核调用和使用 4、设计思路框架视频源选择silicon9011解码芯片配置及采集动态彩条视频数据组包GTH aurora 8b/10…

el-select 加多选框使用

解决方法&#xff1a; el-select 添加属性 multiple&#xff0c; <el-form-item label"订单来源&#xff1a;"><el-selectv-model"tableFrom.userType"clearablemultipleplaceholder"请选择"class"selWidth"><el-opt…

Android图形-架构1

目录 引言 Android图形的关键组件&#xff1a; Android图形的pipeline数据流 BufferQueue是啥&#xff1f; 引言 Android提供用于2D和3D图形渲染的API&#xff0c;可与制造商的驱动程序实现代码交互&#xff0c;下面梳理一下Android图形的运作原理。 应用开发者通过三种方…

pm2 运行springboot项目

创建springboot项目打包 注意安装java版本必须和打包的java版本一致 java安装 安装pm2 安装nodejs 通过npm安装pm2 配置json pm2.json {"name": "test01","script": "D:\\jdk-17.0.6\\bin\\java.exe","args": ["-D…

无涯教程-JavaScript - EDATE函数

描述 EDATE函数返回表示日期的序列号,该序列号是在指定日期(start_date)之前或之后的月份数。 使用EDATE来计算到期日或到期日,该到期日或到期日与发行日期在当月的同一天。 语法 EDATE (start_date, months)争论 Argument描述Required/OptionalStart_date 代表开始日期的…

2023年特色小镇行业研究报告

第一章 行业概况 1.1 定义 特色小镇&#xff0c;是指以特定产业、文化、旅游、历史等特色为依托&#xff0c;以小镇为载体&#xff0c;通过优化提升小镇的综合功能和服务能力&#xff0c;形成独特的区域品牌和产业集群&#xff0c;进而推动区域经济社会发展的一种新型城镇化形…

【Unity编辑器扩展】| 顶部菜单栏扩展 MenuItem

前言【Unity编辑器扩展】 | 顶部菜单栏扩展 MenuItem一、创建多级菜单二、创建可使用快捷键的菜单项三、调节菜单显示顺序和可选择性四、创建可被勾选的菜单项五、右键菜单扩展5.1 Hierarchy 右键菜单5.2 Project 右键菜单5.3 Inspector 组件右键菜单六、AddComponentMenu 特性…

AUTOSAR简介及分层架构

这里写目录标题 1、AUTOSAR简介2、AUTOSAR的分层架构2.1、应用软件层(ASW)2.2、运行时环境(RTE)2.3、基础软件层(BSW)2.4、微控制器-MCAL层 1、AUTOSAR简介 AUTOSAR&#xff08;AUTomotive Open System ARchitecture&#xff09;是一种为汽车软件开发提供开放化、标准化、可重…

一篇文章教会你SpringMVC

目录 1.什么是SpringMVC 2.SpringMVC工作流程 3.SpringMVC核心组件 4.SpringMVC的配置流程 4.1导入POM依赖 4.2在WEB-INF下添加springmvc-servlet.xml(spring-mvc.xml) 4.3 修改web.xml 创建一个Controller用来存放web层的方法和内容 创建一个前端页面用来做测试展示 前言…

一种影像比对快速提取建筑物要素变化的方法

李和军1,2 李 敏3 李楚钰1,2 唐廷元1,2 胡日查4 (1. 北京市测绘设计研究院, 北京, 100038;2. 城市空间信息工程北京市重点实验室, 北京 100038;3. 北京市地质矿产勘查院信息中心, 北京, 100195;4. 内蒙古测绘地理信息中心, 内蒙古 呼和浩特, 010000) 摘 要&#xff1a;本文围绕…