基于DeepSeek.V3模型PandasAI数据分析实战
DeepSeek-V3是由中国幻方量化公司开发的一款基于自研MoE(Mixture of Experts,混合专家技术)模型的新一代大语言模型。DeepSeek-V3在多项评测中展现出了卓越的性能。在MMLU-Pro、GPQA-Diamond、MATH 500、AIME 2024、Codeforces(Percentile)和SWE-bench Verified等权威测试集上,DeepSeek-V
Pandas AI是一个开源项目,旨在为Pandas库添加AI功能,使用户能够通过自然语言查询轻松地与数据进行交互。Pandas本身是一个用于数据处理和分析的Python库,具有强大的数据处理能力。
Pandas AI则基于Pandas库构建,通过集成生成式AI技术,扩展了Pandas的功能,使其能够支持更复杂的数据分析任务,并为用户提供更加智能和便捷的数据分析体验。有不清楚的读者,可以看我之前的文章。链接如下:
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-ai
docker-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 -y
pip install numpy==1.26.4
2.Docker方式启动后,打开页面显示Something went wrong fetching credentials, please refresh the page
产生原因:可能是docker容器启动问题,间接导致获取相关数据失败
解决方案:观察docker容器状态,如图所示
发现postgresql-1未启动,手动启动它,然后重启下pandabi-backend即可。
更多推荐
所有评论(0)