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

推荐:使用 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.mzph.cn/news/76330.shtml

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

相关文章

Mixin从理论到实践

mixin从理论到实践 mixin从理论到实践一、什么是mixin二、使用mixin三、mixin的合并策略四、mixin辨析五、个人实践 mixin从理论到实践 一、什么是mixin mixin混入 — Vue.js (vuejs.org) 官方解释: 混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue …

产品波士顿矩阵

随着公司产品的增多,每个产品的生命周期节点各不相同,很多时候我们往往在产品结构、资源分配方面会产生各种问题,导致需要发展的产品得不到资源,消耗资源的产品却有无法增长,所谓不聚焦导致的问题其实是资源和发展错配…

在阿里云 linux 服务器上查看当前服务器的Nginx配置信息

我们可以通过命令 sudo nginx -t查看到nginx.conf的路径 可以通过 sudo nginx -T查看 nginx 详细配置信息,包括加载的配置文件和配置块的内容 其中也会包括配置文件的内容

环境扫描/透射电子显微镜气体样品架的真空压力和微小流量控制解决方案

摘要:针对环境扫描/透射电子显微镜对样品杆中的真空压力气氛环境和流体流量精密控制控制要求,本文提出了更简单高效和准确的国产化解决方案。解决方案的关键是采用动态平衡法控制真空压力,真空压力控制范围为1E-03Pa~0.7MPa;采用压…

git 合并分支某次(commit)提交

需求:将develop分支某次提交合并到master上面,其他修改不同步; //切换到master分支 git checkout master //查看develop分支提交记录,获取对应记录哈希值; git log develop // 按上下按钮可以上下查询对应记录&#xf…

DevOps到底是什么意思?

前言: 当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及文化和组织等等概念。那么,到底什么是"DevOps"呢? 那么,DevOps是什么呢? 有人说它是一种方法,也有人说它是一种工具,还有人说它是一种思想。更有甚者,说它是一种哲学…

读高性能MySQL(第4版)笔记06_优化数据类型(上)

1. 良好的逻辑设计和物理设计是高性能的基石 1.1. 反范式的schema可以加速某些类型的查询,但同时可能减慢其他类型的查询 1.2. 添加计数器和汇总表是一个优化查询的好方法,但它们的维护成本可能很 1.3. 将修改schema作为一个常见事件来规划 2. 让事情…

仅做笔记用:Stable Diffusion 通过 ControlNet 扩展图片 / 扩图

发觉之前的 Outpainting 脚本效果仍旧不是很理想。这里又找了一下有没有效果更好的途径来扩图。于是就找到了通过 ControlNet 的方式来实现效果更好的扩图。这里临时记录一下在 Stable Diffusion 怎么使用 ControlNet 来扩展图片。 下载 control_v11p_sd15_inpaint_fp16.safet…

【源码】JavaWeb+Mysql招聘管理系统 课设

简介 用idea和eclipse都可以&#xff0c;数据库是mysql&#xff0c;这是一个Java和mysql做的web系统&#xff0c;用于期末课设作业 cout<<"如果需要的小伙伴可以http://www.codeying.top";可定做课设 线上招聘平台整合了各种就业指导资源&#xff0c;通过了…

Android获取系统读取权限

在Androidifest.xml文件中加上授权语句 <uses-permission android:name"android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name"android.permission.READ_EXTERNAL_STORAGE"/>

Git 概述命令、idea中的使用

目录 Git概述 Git代码托管服务 Git常用命令 Git 全局设置 获取 Git 仓库 ​编辑Git 工作区中文件的状态 本地仓库操作 远程仓库操作 ​编辑分支操作 标签操作 在IDEA中使用Git 1.获取Git仓库 .gitignore 表示忽略 2.本地仓库操作 3.远程仓库操作 4.分支操作 Git是…

c++qt day2

封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个公有成员函数&#xff1a;void…

虚拟机Ubuntu操作系统最基本终端命令(安装包+详细解释+详细演示)

虚拟机及乌班图&#xff08;Ubuntu操作系统&#xff09; 提示&#xff1a;大家需要软件的可以直接在此链接中提取 链接&#xff1a;https://pan.baidu.com/s/1_4VHGTlXjIuVhBINeOuBCA 提取码&#xff1a;nd0c 文章目录 虚拟机及乌班图&#xff08;Ubuntu操作系统&#xff09;终…

多线程之基础篇(一)

一、Thread类 1、线程的创建 大家都熟知创建单个线程的三种方式&#xff0c;通过继承Thread类创建线程并重写该类的run()方法&#xff1b;通过实现Runnable接口创建线程一样要重写run()方法&#xff1b;以上的两个run()方法都是线程的执行体&#xff1b;第三&#xff0c;使用…

组件安全以及漏洞复现

组件安全 1. 概述 A9:2017-使⽤含有已知漏洞的组件 A06:2021-Vulnerable and Outdated Components ​ 组件&#xff08;例如&#xff1a;库、框架和其他软件模块&#xff09;拥有和应用程序相同的权限。如果应用程序中含有已知漏洞的组件被攻击者利用&#xff0c;可能会造成…

目标检测入门

一、目标检测任务对比 二、目标检测发展路线 基于深度学习的目标检测大致可以分为一阶段(One Stage)模型和二阶段(Two Stage)模型。目标检测的一阶段模型是指没有独立地提取候选区域(Region Proposal)&#xff0c;直接输入图像得到图中存在的物体类别和相应的位置信息。典型的一…

.net 7 隐藏swagger的api

1.写一个隐藏接口特性表示 using Microsoft.AspNetCore.Mvc.ApiExplorer; using Microsoft.OpenApi.Models; using Swashbuckle.AspNetCore.SwaggerGen;using System.Web.Http.Description;namespace JiaTongInterface.Filter {public class SwaggerApi : Swashbuckle.AspNet…

iframe 实现跨域,两页面之间的通信

一、 背景 一个项目为vue2&#xff0c;一个项目为vue3&#xff0c;两个不同的项目实现iframe嵌入&#xff0c;并实现通信 二、方案 iframe跨域时&#xff0c;iframe组件之间常用的通信&#xff0c;主要是H5的possmessage方法 三、案例代码 父页面-vue2&#xff08;端口号为…

“投资教父”熊晓鸽老了,IDG光环不再

作者 | 鸠白 艺馨 排版 | Cathy 监制 | Yoda 出品 | 不二研究 2017年&#xff0c;世界互联网大会上&#xff0c;“投资教父”熊晓鸽问映客的创始人&#xff1a;“今年你们利润能有多少&#xff1f;” 对方笑答&#xff1a;“5个亿吧&#xff01;” “才五个亿&#xff1f…

Kubernetes (K8s) 解读:微服务与容器编排的未来

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f405;&#x1f43e;猫头虎建议程序员必备技术栈一览表&#x1f4d6;&#xff1a; &#x1f6e0;️ 全栈技术 Full Stack: &#x1f4da…