使用 OpenAI 进行数据探索性分析(EDA)

#探索性数据分析(Exploratory Data Analysis, 简称 EDA)是数据分析中不可或缺的环节,帮助分析师快速了解数据的分布、特征和潜在模式。传统的 EDA 通常需要手动编写代码或使用工具完成。现在,通过 OpenAI 的 GPT-4 模型,数据分析师可以快速完成描述性统计、数据可视化和特征工程等任务。本文将通过具体示例,展示如何利用 OpenAI 辅助完成高效的 EDA。


一、自动生成数据集的描述性统计分析

示例场景:

假设你有一个包含客户信息的数据集 customers.csv,其中包含以下字段:

  • age(客户年龄)
  • income(年收入)
  • purchase_frequency(年度购买频次)

我们希望快速生成该数据集的描述性统计信息。

操作步骤:

  1. 加载数据:
    使用 Pandas 加载数据集,并将数据的一部分传递给 GPT-4 进行分析。

    import pandas as pd# 加载数据
    df = pd.read_csv("customers.csv")# 查看数据前几行
    print(df.head())
    
  2. 请求 GPT-4 生成描述性统计:
    将数据表头及部分数据传递给 OpenAI 模型,询问模型生成描述性统计。

    from openai import ChatCompletion# 准备 API 请求
    messages = [{"role": "system", "content": "You are a data analysis assistant."},{"role": "user", "content": f"Please generate descriptive statistics for the following data in Chinese:\n{df.head(10).to_string()}"}
    ]# 调用 GPT-4 模型
    response = ChatCompletion.create(model="gpt-4",messages=messages
    )# 打印结果
    print(response["choices"][0]["message"]["content"])
    
  3. 结果示例:
    GPT-4 会返回类似以下结果:

以下是您提供数据的描述性统计:客户ID (CustomerID):
- 最小值 (Min): 101
- 最大值 (Max): 110
- 平均值 (Mean): 105.5年龄 (Age):
- 最小值 (Min): 22岁
- 最大值 (Max): 50岁
- 平均值 (Mean): 34.4岁性别 (Gender):
- 女性 (Female): 5人
- 男性 (Male): 5人年收入 (Income (USD)):
- 最小值 (Min): 30000美元
- 最大值 (Max): 80000美元
- 平均值 (Mean): 53000美元购买频率 (PurchaseFrequency (times/year)):
- 最小值 (Min): 6次/年
- 最大值 (Max): 25次/年
- 平均值 (Mean): 15次/年去年消费(CLastYearSpending (USD)):
- 最小值 (Min): 1000美元
- 最大值 (Max): 5000美元
- 平均值 (Mean): 2510美元其中,客户 ID (CustomerID)一般不进行统计分析。以上数据分析结果可为您提供用户画像、消费模式等分析所需要的重要依据。

二、数据可视化建议和图表生成

通过数据可视化,我们可以更直观地了解数据分布。使用 OpenAI 可以快速生成可视化建议和对应的代码。

示例场景:

我们希望根据客户的年龄和购买频次绘制散点图,分析两者的关系。

  1. 向 GPT-4 请求可视化建议:
    在交互式工具中输入请求:

    我有一个数据集,包含年龄(Age)和购买频次(Purchase Frequency)。你能建议一个合适的可视化方式并提供对应的 Python 代码吗?
    
  2. GPT-4 的建议:
    GPT-4 会返回以下内容:

    为了分析年龄与购买频次之间的关系,可以使用散点图。以下是 Python 的绘图代码:
    
    import matplotlib.pyplot as plt# 绘制散点图
    plt.figure(figsize=(8, 5))
    plt.scatter(df['Age'], df['purchase_frequency'], alpha=0.7, color='blue')
    plt.title('Age vs Purchase Frequency')
    plt.xlabel('Age')
    plt.ylabel('Purchase Frequency')
    plt.grid(True)
    plt.show()
    
  3. 执行代码并查看图表:
    运行以上代码,你会看到一个散点图,展示客户年龄与购买频次的关系。
    在这里插入图片描述

其他图表类型:

你还可以让 GPT-4 根据数据类型推荐合适的图表:

  • 箱线图(Boxplot):用于查看收入分布和离群值。
  • 柱状图(Bar chart):用于统计不同年龄段的用户数量。
  • 热力图(Heatmap):用于显示变量之间的相关性。

三、高效的特征工程和变量选择

特征工程是提升模型性能的重要环节,GPT-4 可以根据数据的特性,自动生成特征工程和变量选择的建议。

示例场景:

我们希望创建一个新特征,用于衡量客户的“购买强度”,并自动选择最相关的变量用于后续分析。

  1. 让 GPT-4 提出特征工程建议:

    我有以下字段:年龄(Age)、年收入(Income)、购买频次(Purchase Frequency)。你能帮我设计一个新的特征,衡量客户的购买强度吗?
    
  2. GPT-4 的建议:

    可以创建一个“购买强度”特征,计算公式为:
    Purchase Intensity = Purchase Frequency / Income
    以下是 Python 实现:
    
    # 创建购买强度特征
    df['purchase_intensity'] = df['purchase_frequency'] / df['income']
    print(df[['age', 'income', 'purchase_frequency', 'purchase_intensity']].head())
    
  3. 自动选择相关变量:
    你可以让 GPT-4 基于特征相关性分析推荐关键变量:

    请根据以下数据表,分析变量之间的相关性,并推荐最重要的变量用于建模:
    {df.corr().to_string()}
    
  4. GPT-4 的回答:

    相关性分析结果显示:
    - Purchase Frequency 与 Age 的相关系数为 0.45。
    - Purchase Frequency 与 Income 的相关系数为 -0.3。
    推荐将 Age 和 Purchase Frequency 作为建模的主要变量。
    

总结

通过 OpenAI,数据分析师可以更轻松地完成以下 EDA 任务:

  1. 自动生成描述性统计信息:快速了解数据分布和特性。
  2. 数据可视化建议和代码生成:生成适合数据特性的可视化方案。
  3. 特征工程与变量选择:创建新特征并高效挑选关键变量。

这些功能可以帮助分析师节省大量时间,更专注于业务洞察和决策。如果你想将这些方法应用于实际项目,不妨尝试将 OpenAI 与 Python 的数据分析库结合,探索更多可能性!

附:示例数据(customer.csv)内容:

以下是一个示例数据集 customer.csv,包含客户信息。数据包含多个字段,如客户ID、年龄、性别、年收入、购买频率以及近一年购买金额等。你可以将其复制保存为 CSV 文件,用于数据分析练习。

CustomerIDAgeGenderIncome (USD)PurchaseFrequency (times/year)LastYearSpending (USD)
10125Female35000121500
10232Male45000202500
10328Female50000152200
10440Male7500081800
10535Female62000255000
10622Male30000181300
10745Female80000104000
10829Male55000222700
10938Female47000142100
11050Male6000061000

字段说明:

  • CustomerID:客户的唯一标识。
  • Age:客户年龄(单位:岁)。
  • Gender:客户性别(Male 或 Female)。
  • Income (USD):客户年收入(单位:美元)。
  • PurchaseFrequency (times/year):客户在过去一年中购买商品的次数。
  • LastYearSpending (USD):客户过去一年的总消费金额(单位:美元)。

将数据保存为 customer.csv

将以下内容保存到一个文件中,命名为 customer.csv

CustomerID,Age,Gender,Income (USD),PurchaseFrequency (times/year),LastYearSpending (USD)
101,25,Female,35000,12,1500
102,32,Male,45000,20,2500
103,28,Female,50000,15,2200
104,40,Male,75000,8,1800
105,35,Female,62000,25,5000
106,22,Male,30000,18,1300
107,45,Female,80000,10,4000
108,29,Male,55000,22,2700
109,38,Female,47000,14,2100
110,50,Male,60000,6,1000

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

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

相关文章

【软考】系统架构设计师-数据库设计基础

数据库核心考点 三级模式-两级映射 外模式--视图 概念模式--表(模式、基本表) 内模式--物理文件 数据库设计 概念结构设计:属性冲突、命名冲突、结构冲突 逻辑结构设计:关系模式(层次模型、网络模型&#xff09…

2、计算机网络七层封包和解包的过程

计算机网络osi七层模型 1、网络模型总体预览2、数据链路层4、传输层5.应用层 1、网络模型总体预览 图片均来源B站:网络安全收藏家,没有本人作图 2、数据链路层 案例描述:主机A发出一条信息,到路由器A,这里封装目标MAC…

图像重建之深度学习重建

图像重建是计算机视觉领域的一个重要任务。深度学习在图像重建中具有很强的能力和广泛的应用。下面介绍一种常见的深度学习图像重建方法:基于生成对抗网络(Generative Adversarial Networks,GANs)的图像重建。 基于 GAN 的图像重…

使用 PyTorch-BigGraph 构建和部署大规模图嵌入的完整教程

当涉及到图数据时,复杂性是不可避免的。无论是社交网络中的庞大互联关系、像 Freebase 这样的知识图谱,还是推荐引擎中海量的数据量,处理如此规模的图数据都充满挑战。 尤其是当目标是生成能够准确捕捉这些关系本质的嵌入表示时,…

国标GB28181视频平台EasyCVR视频融合平台H.265/H.264转码业务流程

在当今数字化、网络化的视频监控领域,大中型项目对于视频监控管理平台的需求日益增长,特别是在跨区域、多设备、高并发的复杂环境中。EasyCVR视频监控汇聚管理平台正是为了满足这些需求而设计的,它不仅提供了全面的管理功能,还支持…

2411rust,正与整128

原文 长期以来,Rust在x86-32和x86-64架构上128位整数的对齐与C语言不一致.最近已解决此问题,但该修复带来了一些值得注意的效果. 作为用户,除非如下,否则不用担心: 1,假设i128/u128对齐,而不是用align_of 2,忽略improper_ctypes*检查,并在FFI中使用这些类. 除x86-32和x86-64…

C语言实现程序执行时间打印

一.概述 程序执行时间打印是优化程序的的重要手段&#xff0c;本文为用c接口实现打印时间的三种方法。本文程序均在qt5.12环境测试验证。 二.测试代码 1.方法一 使用 time() 测量秒数 #include <stdio.h> #include <time.h> int main() { // 获取操作前的当前时…

使用win32com将ppt(x)文件转换为pdf文件

本文来记录下如何使用win32com将ppt(x)文件转换为pdf文件 文章目录 win32com概述win32com优缺点代码实例本文小结 win32com概述 Pywin32 是一个用于与 Microsoft Windows 操作系统交互的 Python 扩展模块&#xff0c;它提供了对多个 Windows API 的访问&#xff0c;包括对 Mic…

java itext后端生成pdf导出

public CustomApiResult<String> exportPdf(HttpServletRequest request, HttpServletResponse response) throws IOException {// 防止日志记录获取session异常request.getSession();// 设置编码格式response.setContentType("application/pdf;charsetUTF-8")…

HarmonyOs实战项目=>App首页架构沉浸式效果

1.沉浸式效果方案采用> 窗口全屏布局方案不隐藏状态栏和导航条(不隐藏避让区) 2.沉浸式效果截图 3.主要代码截图 4.大功告成&#xff0c;代码见资源

深入解析 Vue 3 中的 defineExpose

深入解析 Vue 3 中的 defineExpose 在 Vue 3 的组合式 API&#xff08;Composition API&#xff09;中&#xff0c;defineExpose 是一个重要的辅助函数&#xff0c;专门用于在 <script setup> 模式下暴露组件内部的属性和方法给父组件使用。本文将详细解析 defineExpose…

Cesium 相机系统

Cesium 的相机系统是其 3D 地球渲染引擎的重要组成部分&#xff0c;它控制用户在虚拟地球上的视图和交互体验。Cesium 的相机系统具备灵活性和强大的功能&#xff0c;允许开发者自定义视图、导航和交互方式。以下是 Cesium 相机系统的主要特点和功能&#xff1a; 1. 相机的基本…

华为HCCDA云技术认证--网络服务

大家好呀&#xff01;我是reload。今天继续带大家学习华为HCCDA云技术认证&#xff0c;涵盖华为云最为核心的计算、存储、网络、数据库、安全、部署等服务。今天学习网络服务相关内容。 登录华为云官网&#xff1a;https://www.huaweicloud.com/ &#xff0c;进入首页&#xff…

面向对象几个自测题

选择题 1. 进行文件操作时,需要包含&#xff08;1&#xff09;_文件。 A&#xff09; iostream B&#xff09; fstream C&#xff09; stdio.h D&#xff09; stdlib.h 2. 若有定义&#xff1a;enum Weekday { sun7,mon1,tue,wed,thu,fri,sat }day;&#xff0c;以下…

如何提升自己的情商?

在当今社会&#xff0c;情商的重要性越来越被人们所认识和重视。无论是职场发展、人际关系&#xff0c;还是自我成长&#xff0c;情商都起着关键的作用。那么&#xff0c;如何提升自己的情商呢&#xff1f; 一、自我认知&#xff1a;了解自己&#xff0c;方能明智处世 自我认…

SSM post接口传递json 报错 HTTP状态 415 - 不支持的媒体类型

这篇文章是写给哪些在小破站学习ssm教程的兄弟们&#xff0c;我们都是萌新&#xff0c;大佬就让行吧感谢理解&#xff01; 本文章主要讲解B站赵伟风SSM教程第108节(JSON数据的接收) 我所有的配置都跟老师一样&#xff0c;老师就很顺利发出去了&#xff0c;我的就是一直415&am…

《Python编程实训快速上手》第七天--文件与文件路径

该章节将使用Python在硬盘上创建、读取和保存文件 一、文件与文件路径 1、Windows中使用\以及macOS和Linux中使用/ 使用pathlib模块中的Path()函数进行文件名和目录的拼接,返回文件路径字符串 from pathlib import Path print(Path("spam","bacon",&qu…

JAVA接口代码示例

public class VehicleExample {// 定义接口public interface Vehicle {void start(); // 启动车辆void stop(); // 停止车辆void status();// 检查车辆状态}public interface InnerVehicleExample {void student();}// 实现接口的类&#xff1a;Carpublic static class Car imp…

StarRocks 架构

StarRocks 是什么&#xff1f;&#xff08; What is StarRocks?&#xff09; StarRocks 是 MPP 的查询引擎&#xff0c;用来做实时查询&#xff0c;提供亚秒级的查询性能。 兼容 MYSQL 协议&#xff0c;可以和大部分 BI 工具进行无缝衔接。 Apache 2.0 开源产品。 使用场景&…

A038-基于SpringBoot的乡村养老服务管理系统登录

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…