介绍
在今天的世界中,企业和组织都严重依赖数据做出明智的决策。然而,分析大量数据可能是一项耗时且令人望而生畏的任务。这就是自动化发挥作用的地方。通过像Langchain和Gen AI这样的框架,您可以自动化您的数据分析,节省宝贵的时间。
在本文中,我们将深入探讨如何使用Langchain构建自己的代理程序并自动化数据分析。我们还将向您展示如何使用内置的pandas代理程序逐步创建Langchain代理程序的指南。
Langchain是什么?
Langchain是一个用于构建具有大型语言模型(如chatGPT)的应用程序的框架。它提供了一种更好的管理内存、提示和创建链(一系列操作)的方法。此外,Langchain为开发人员提供了一个创建代理程序的工具。代理程序是可以根据条件执行一系列操作的实体。
Langchain中的代理程序类型
Langchain中有两种类型的代理程序:
- 动作代理程序:动作代理程序决定要执行的动作并逐个执行这些动作。
- 计划-执行代理程序:计划和执行代理程序首先决定要执行的一系列动作,然后逐个执行这些动作。
然而,这两个类别之间没有明确的区别,因为这个概念仍在发展中。
使用Langchain进行数据分析
请安装langchain和openai库。您可以通过下载所需的库,然后将它们导入到您的项目中来完成此操作。以下是如何操作:
# 安装langchain和openai库
!pip install langchain openai
# 导入库
import os
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from langchain.agents import create_pandas_dataframe_agent
from langchain.llms import OpenAI
# 设置API密钥
os.environ['OPENAI_API_KEY']="YOUR API KEY"
您可以从OpenAI平台获取您的OpenAI API密钥。
创建Langchain代理程序
为了创建一个Langchain代理程序,我们将使用内置的pandas代理程序。我们将使用一个心脏病风险数据集进行演示。这个数据可以在网上获取,可以直接在pandas dataframe中读取。以下是如何操作:
# 导入数据
df = pd.read_csv('http://www-stat.stanford.edu/~tibs/ElemStatLearn/datasets/SAheart.data')
# 初始化代理程序
agent = create_pandas_dataframe_agent(OpenAI(temperature=0),
df, verbose=True)
openai = OpenAI(temperature=0.0)
Openai.model_name # 这将打印正在使用的模型,
# 默认情况下使用"text-davinci-003"
温度参数用于调整模型的创造力。当它设置为0时,模型最不容易产生幻觉。我们已将verbose=True。它将在执行过程中打印所有中间步骤。
查询代理程序
一旦您设置好代理程序,就可以开始查询它。您可以要求代理程序执行多种类型的查询。让我们执行一些数据分析步骤:
基本探索性数据分析
# 让我们检查数据的形状。
agent("数据集的形状是什么?")
在这里,您可以看到模型正在打印所有中间步骤,因为我们设置了verbose=True
#确定缺失值
agent("每个列中有多少个缺失值?")
我们可以看到没有任何一列缺失值。
# 让我们看看数据长什么样子
agent("以表格形式显示5条记录。")
单变量分析
在这一部分中,我们将尝试查看各种变量的分布。
agent("使用条形图显示患有冠心病的人数分布。")
agent("""使用直方图显示患有冠心病的人的年龄分布,0到10岁,10到20岁,20到30岁等等。""")
agent("""绘制箱线图,以查找患有冠心病的人的年龄是否存在异常值。""")
假设检验
让我们尝试测试一些假设。
# 烟草是否会引起冠心病?
agent("""使用t检验验证以下假设。
零假设:吸烟不会引起冠心病。
备择假设:吸烟会引起冠心病。""")
# 冠心病在各年龄组的分布如何?
agent("""使用kde图显示两个冠心病值的年龄分布。同时提供图例,并标记x和y轴。""")
双变量分析
让我们进行几个查询,查看各种变量之间的关系。
agent("""绘制散点图,显示冠心病两个类别的脂肪堆积和低密度脂蛋白之间的关系。""")
agent("""不同变量与冠心病的相关性如何?""")
结论
Langchain是自动化数据分析的优秀框架。通过创建代理,您可以使用Gen AI的语言模型执行各种类型的分析。在本文中,我们展示了如何使用内置的pandas Langchain代理执行一些基本的EDA、单变量和双变量分析以及假设检验。此外,我们希望本指南对您学习如何自动化数据分析并改进决策过程有所帮助。