基于DeepSeek.V3模型PandasAI数据分析实战

    Pandas AI是一个开源项目,旨在为Pandas库添加AI功能,使用户能够通过自然语言查询轻松地与数据进行交互。Pandas本身是一个用于数据处理和分析的Python库,具有强大的数据处理能力。

图片

      Pandas AI则基于Pandas库构建,通过集成生成式AI技术,扩展了Pandas的功能,使其能够支持更复杂的数据分析任务,并为用户提供更加智能和便捷的数据分析体验。有不清楚的读者,可以看我之前的文章。链接如下:

问答式数据分析利器PandasAI中文教程(最全)

      Pandas AI默认提供自身网站的api_key,对国内的大模型支持并不太友好。本文主要是基于DeepSeek.V3模型介绍PandasAI的使用方法。那什么是DeepSeek-V3呢? 

DeepSeek-V3简介

      DeepSeek-V3是由中国幻方量化公司开发的一款基于自研MoE(Mixture of Experts,混合专家技术)模型的新一代大语言模型。DeepSeek-V3在多项评测中展现出了卓越的性能。在MMLU-Pro、GPQA-Diamond、MATH 500、AIME 2024、Codeforces(Percentile)和SWE-bench Verified等权威测试集上,DeepSeek-V3均展现出了领先或极具竞争力的性能。特别是在考察高级数学推理能力的测试中,如MATH 500和AIME 2024,DeepSeek-V3的表现尤为突出,大幅超越其他模型。在与包括GPT-4o、Claude-3.5-Sonnet在内的多个顶尖模型的对比中,DeepSeek-V3也展现出了相当甚至更优的性能。DeepSeek-V3已经上线并同步开源,API服务也已同步更新,接口配置无需改动。当前版本的DeepSeek-V3暂不支持多模态输入输出。由于DeepSeek-V3的性能出色且训练成本相对较低(约600万美元),因此受到了广泛的关注和讨论。

我们可以通过访问地址:

 https://platform.deepseek.com/api_keys

来创建api_key,界面如下:

图片

  • 那么,如何安装PandasAI呢?这里介绍两种方式:

  • 1. Docker方式,通过页面使用

  • 2. Python库安装,主要通过Jupyter使用

Docker方式安装

在终端执行如下命令构建Docker镜像:

git clone https://github.com/sinaptik-ai/pandas-ai/cd pandas-aidocker-compose build

构建完成后,通过如下命令启动:

docker-compose up

注意:此种方式,使用的PANDASAI_API_KEY,如何获取呢?进入https://www.pandabi.ai/admin/api-keys页面,复制使用即可。

图片

默认可以免费使用100次请求。

启动后,可通过http://localhost:3000打开页面,如下:

图片

    默认是加载Loan payments data.csv数据。为验证pandasai库的功能,我们准备了8个问题:

(1)数据中,人群性别占比分别是多少

图片

(2)绘制男性人群学历的分布情况

图片

(3)本科学历,男女分别占多少

图片

(4)了解下数据中贷款状态的情况

图片

(5)状态为付清的数据,时间趋势如何

图片

(6)贷款已付清的本科女性,分析年龄分布情况,饼图

图片

(7)贷款逾期的人群学历柱状图,标记出最多人数的那个柱子为红色

图片

(8)如何仅考虑年龄和性别,那么贷款逾期的人群有何特点?

图片

Python库方式安装

1.使用conda初始化新环境

conda create -n pandasai python==3.11

2.激活环境 

conda activate pandasai

3.安装pandasai

pip install pandasai

4.安装jupyter lab

pip install jupyterlab

5.启动jupyter lab

jupyter lab

6. 基本使用

图片

以上案例展示的是表关联查询的情形

图片

读取Excel文件进行数据分析

图片

图片

at1.chat("数据B中,按年龄绘制不同学历的箱线图")

图片

at1.chat("选择未付清人群,记为C")

图片

at1.chat("数据C中,按年龄绘制不同学历的箱线图")

图片

    从以上两个箱线图中,我们已经看出有明显差异了。现在通过pandasai给出描述性分析结论。

at1.chat("数据B和C中,考虑不同学历和年龄是否付清的情况,给出分析结论")

图片

图片

at1.chat("描述下以上两图的含义")
'The plots show the distribution of education level and age for paid-off (B) and not paid-off (C) groups. The education level plot compares the count of individuals in each education category for both groups, while the age plot compares the count of individuals across different ages for both groups.'

配置pandasai使用deepseek大模型

 为了让pandasai通过openai兼容的方式使用deepseek大模型,需要做如下配置

图片

在后继使用中,通过config.llm参数进行设置 

错误处理

1. ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject

产生原因:pandasai 2.4.2 requires pandas==1.5.3,但是numpy是2.2.1,应该是pandas与numpy版本不兼容导致的。

解决方案:这里卸载了numpy,重新安装了1.26.4的版本,即可解决

pip uninstall numpy -ypip install numpy==1.26.4

2.Docker方式启动后,打开页面显示Something went wrong fetching credentials, please refresh the page

产生原因:可能是docker容器启动问题,间接导致获取相关数据失败

解决方案:观察docker容器状态,如图所示

图片

发现postgresql-1未启动,手动启动它,然后重启下pandabi-backend即可。

### 部署DeepSeek V3模型的指南 为了部署DeepSeek V3模型,在Python环境中需完成几个重要步骤。虽然特定于Celery项目的初始设置不直接关联到DeepSeek V3模型的部署[^1],但准备开发环境的原则相似。 #### 准备工作 确保安装了必要的依赖库,这通常涉及创建虚拟环境并激活它。对于大多数机器学习项目而言,推荐使用`conda`或`virtualenv`来管理包和隔离不同项目的依赖关系。 ```bash python -m venv myenv source myenv/bin/activate # Linux 或 macOS myenv\Scripts\activate # Windows ``` 接着,依据官方文档或其他可靠资源获取适用于DeepSeek V3的具体需求文件,并执行如下命令: ```bash pip install -r requirements.txt ``` #### 加载预训练模型 加载已训练好的DeepSeek V3模型通常是通过调用框架特有的函数实现。假设DeepSeek基于PyTorch构建,则可能看起来像这样: ```python import torch from deepseek_v3 import DeepSeekV3Model # 假设这是导入方式 model_path = 'path_to_model_weights.pth' device = "cuda" if torch.cuda.is_available() else "cpu" model = DeepSeekV3Model().to(device) model.load_state_dict(torch.load(model_path, map_location=device)) model.eval() ``` #### 创建API接口 为了让其他应用程序能够访问此模型的服务,可以利用Flask或FastAPI这样的微服务框架快速搭建RESTful API端点。 以下是使用FastAPI的一个简单例子: ```python from fastapi import FastAPI from pydantic import BaseModel app = FastAPI() class InputData(BaseModel): data: list[float] @app.post("/predict/") async def predict(input_data: InputData): with torch.no_grad(): tensor_input = torch.tensor([input_data.data]).float().to(device) prediction = model(tensor_input).tolist()[0] return {"prediction": prediction} ``` 启动服务器后,可以通过发送HTTP POST请求至指定URL来进行预测操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Paper易论

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值