智能图表聊天

话语图表,你的数据表达出声音

Clustering using ChatGraph

图表是提供关于数据或数据分析重要信息的方式之一。然而,大多数情况下,阅读图表都是一项困难的任务。如果您可以使用多模态来理解您的图表并接收无法仅凭视觉获得的信息,那将是多么好啊!

ChatGraph是我为程序员/非程序员创建的Web应用程序,可让您与图表进行智能对话。我们将在此处查看其每个功能,以了解其可以做什么,然后测试其能力。

ChatGraph 网站:chat-with-graph.streamlit

Python创建Web应用程序的代码可以在我的GitHub存储库中找到。它还包括运行它的所有重要步骤。

User Interface of ChatGraph

目录

  • 增强的人工智能功能
  • 手动聊天功能
  • AI聊天功能
  • ChatGraph有多准确?

增强的人工智能功能

当你绘制了一张图表,却不知道与之相关的问题是什么时,这个功能就非常有用。智能增强功能会生成与该图表相关的重要问题,你可以随后提出这些问题。

Home Prices Graph

考虑房屋定价图表,房屋价格取决于房屋的年龄和该地区的人口。仅仅通过观察图表,您可能已经在心中有一些问题,例如:“如果我家的房子有x年的历史,该地区的人口是y,房屋价格可能是多少?”还可能会涌现更多问题,但思考需要时间。另一方面,增强的人工智能功能可以在5秒内生成与该图表相关的20多个重要问题。

how Enhanced AI feature works

您可以通过更改参数来调整问题的数量。我已经将其设置为20条用于Web应用,但在本地运行时,您可以灵活访问所有内容,并将生成的问题数量增加到100、200甚至更多。

Relevant AI Question generated using Enhanced AI feature

以下是另一个示例,演示了增强的AI功能如何为图形生成提示,这些提示与我们最初看到图形或从中寻找答案时脑海中出现的问题非常相似。

手动聊天功能

此功能与ChatGPT非常相似,您可以提出自定义问题。有趣的部分是,无论是手动还是增强的人工智能聊天的每个问题及其回答都会被存储在缓存中。这使得它感觉像ChatGPT一样,我们的整个对话都被保存以供参考。

how Manual Chat feature works

我已将会话历史记录范围设置为10至30(消息数量),但与其他参数类似,您可以根据您的特定需求进行灵活调整。

a general question asked to ChatGraph

人工智能聊天功能

大多数与图表相关的问题,无论是针对数字还是文本数据,都是开发人员之间常见的,例如识别异常值、了解时间序列图中的趋势或确定存在的聚类数量等。这项人工智能功能以详细的方式编制了250多个问题,分为不同的类别,如数据分析师、自然语言处理等。这样,它根据您的搜索查询提供描述性问题,而不是可能没有足够信息的简短问题。

How AI Feature works

现在我们已经对 ChatGraph 进行了简要概述,真正的考验在于它在不同类型的图上的性能如何。在下一部分中,我们将对其准确性进行评估。

ChatGraph有多准确?

Hiding number of clusters

考虑到这个带有一些噪音的数据点的图表,我已经知道它有5个簇存在,我在视觉上隐藏了这个信息,并询问ChatGraph这个嘈杂的数据中有多少个簇。

Identifying number of clusters

它能够准确识别这些数据中存在的簇的数量,但在每种情况下可能并不都很准确,特别是在处理大量数据点时。在我的情况下,只有500个点。

Predicting Trend

我做了一张没有明显模式的折线图。我隐藏了最后的预测数字7.36,并让ChatGraph猜测它。它猜测为5,并不是非常接近,但它确实意识到趋势表明数值增加。

Identifying Outliers

在这个图表中,我故意在 [6.4, 16.7, 18.1] 创建了三个极端异常值,并要求 ChatGraph 进行检测。它预测的 x 值为 [6.5, 16.5, 18.5],几乎等于真实值,但提供额外的信息可以得出更详细的答案,比如解释为什么存在这些异常值等等。

Not exact Linear Relationship between A and B

为了确定它是否能理解变量之间的关系,我绘制了一个图表,其中两个变量最初显示出12.5值的正相关关系,但在之后有不同的关系。然后,我让ChatGraph来理解这些变量之间的关系。

用户查询 — 变量A和变量B在整个时间段内是否显示一致的相关性?

ChatGraph - 不,两个变量之间的相关性在整个时间段内并不一致。虽然在时间段的前半段,两个变量之间存在正相关关系,但在时间段的后半段,两个变量之间存在负相关关系。

Effect of amplitude

为了验证ChatGraph是否能够找出一个变量对另一个变量的影响,我绘制了一个图表,其中增加振幅值会导致更复杂的模式,而减小振幅值会使整体关系变得不太复杂。让我们看看ChatGraph能否观察并理解这种行为。

用户查询 - 改变振幅如何影响变量A和变量B之间随时间变化的整体模式和复杂性?

ChatGraph — 信号的波动幅度,如正弦成分,会影响随时间变量的波动强度。较高的幅度放大差异,使关系变得复杂。较低的幅度通过减小波动来简化关系。总之,幅度充当放大器,影响变量之间关系的复杂性和动态性。

Prices of houses

而不是提出一个问题,让我们观察一下ChatGraph能从上面的图表中独立得出什么见解。

这里是 ChatGraph 提取出的一些见解:

  • 房屋价值随着房龄和周边人口增加而增加。
  • 房屋价值主要受地区人口的影响。
  • 房屋价值与房龄之间的关系较小。
  • 大多数住宅的价值在10万美元到30万美元之间。
  • 大多数住宅的年龄在0至50年之间。
  • 该图可以根据房龄和当地人口预测房屋价值。例如,一个位于一万人口区域的20岁房屋的估值约为20万美元。

接下来呢?

当然,ChatGraph有很多可能性,您可以根据您的具体需求自定义网络应用程序。这包括更改提示结构或将历史参数调整为较高值。我还写了一篇关于在您的笔记本中创建一个副驾驶员的文章,其中包括了在编码过程中与图表进行聊天的功能。您可以在这里找到它:

2024-01-24 04:12:32 AI中文站翻译自原文