在飞速发展的数据分析领域中,能够简化复杂分析流程,使更多人像专家一样进行数据分析的工具必然会引起颠覆性的变革。结合ChatGPT和Noteable就能实现这一变革!它结合了ChatGPT的自然语言处理能力和Noteable.io平台的数据分析笔记本功能,让每个人都有可能成为专业的数据分析师!
本文将通过实际案例,展示Noteable ChatGPT插件如何进行无代码数据分析,自动生成富有洞察力的可视化图表,进行机器学习建模,以及实时云协作等功能。让我们一同深入了解Noteable ChatGPT插件如何全面改变数据分析的体验!
Noteable ChatGPT插件简介
Noteable ChatGPT插件是由协作数据笔记本平台Noteable.io开发的第三方ChatGPT插件。该插件将ChatGPT的自然语言处理功能与Noteable.io平台的数据笔记本功能完美融合。
数据笔记本类似于Jupyter Notebook,是一个Web应用程序,用户可以在其中创建和共享包含实时代码、方程、可视化图表和注释性文本的文档。它被广泛应用于数据清理和转换、数据分析、数值模拟、统计建模、数据可视化、机器学习等领域。
通过Notable ChatGPT插件,用户可以通过对话命令ChatGPT加载数据集、进行探索性数据分析、创建可视化图表、运行机器学习模型等,所有这些都在与他人共享的Jupyter笔记本环境中完成。
这种集成不仅简化了数据分析过程,还降低了数据分析的门槛。即使您不具备编程经验,也能通过Noteable ChatGPT插件提供的直观对话界面进行专业水平的数据分析。
ChatGPT插件Noteable的主要功能
通过对话分析数据: 无需编写代码即可通过自然语言描述指导数据分析过程。只需描述想要实现的目标或使用的技术,ChatGPT将生成数据笔记,包含相应的数据分析结果解释。
数据可视化: 在ChatGPT对话中进行数据分析时,能够自动生成可视化图表。同时,用户也可以指定生成特定类型的图表,定制化分析过程。
云端协作: ChatGPT创建的Jupyter笔记本存储在Noteable平台的云端,实现多人同时访问和编辑同一个笔记本。即使ChatGPT会话结束,笔记本仍然存在。团队成员可以添加单元格、编辑代码、添加评论,形成综合视图,实时进行讨论和对话。
共享和导出: ChatGPT创建的Jupyter笔记本可轻松导出,用于在线分析或与其他分析项目进行无缝合并。
版本控制: ChatGPT的输出结果存储在Noteable创建的数据笔记本的单元格中,实现对通过ChatGPT进行数据分析的历史的查看和恢复。
连接各种数据源: Noteable支持连接多种数据源,包括MySQL、MariaDB、PostgreSQL、BigQuery、Snowflake、Databricks等。同时,它还能连接到外部API,实现更广泛的数据接入。
使用Noteable ChatGPT插件入门指南
安装Noteable插件
首先,确保你已经订阅了ChatGPT的付费版本,即ChatGPT Plus,以确保能够使用ChatGPT4并安装插件。
登录ChatGPT Plus账户后,检查是否已激活ChatGPT插件功能。
然后,在ChatGPT插件商店中搜索并安装Noteable插件。
在插件列表中搜索 "Noteable ",然后点击 "安装"。
将Noteable连接到ChatGPT
点击“Install”按钮后,将弹出Noteable账户的登录页面。你需要将你的Noteable账户与ChatGPT连接。
如果没有弹出登录页面,你可以访问Notable.io 并注册一个免费账户。
创建Noteable账户后,ChatGPT将自动激活Noteable插件。此时,在选择GPT版本的按钮下方会出现Noteable的logo。
如果Noteable插件未被选中,你可以在选择GPT版本的按钮下方的插件列表中选中它。
创建Noteable项目步骤
Noteable项目是在Noteable云端空间中组织工作的有效方式。一个项目包含所有Jupyter笔记本、文件夹和文件。
为了全面展示Noteable的功能,我特地在Kaggle上找了一个数据集。这个数据集涉及Netflix的8000多部电影和电视节目,包含导演、演员、评级、发布时间、观看时间、节目类型、节目描述等数据。
为了分析这个数据集,我输入以下提示来创建一个项目:
创建一个名为“Netflix电影和电视节目”的新项目,并将其设置为默认项目。
ChatGPT告诉我项目已经创建好后,我登录Noteable.io的云空间发现该项目已经准备就绪。
当然,你也可以直接在Noteable的云空间中手动创建项目。
除了创建项目,我还让ChatGPT将新项目设为默认项目。通过设置默认项目,ChatGPT在下次访问该项目时无需指定项目路径。这样,在创建笔记本时,就不会再在新建项目里创建笔记本,而是直接在默认项目中创建,有效避免了Noteable账户中的混乱。
创建Noteable笔记本的步骤要进行数据分析,首先需要创建一个Noteable笔记本。
Noteable笔记本类似于Jupyter Notebook,是一个在Noteable云端运行的Web文档。用户可以在笔记本中添加代码、解释性文本,以交互式的方式运行和测试代码,并展示可视化图表。
通过Noteable ChatGPT插件,用户甚至可以不懂代码,通过对话的方式让ChatGPT创建和编辑笔记本。创建笔记本可以使用以下提示:
创建一个名为“Test”的新笔记本,然后提供我笔记本的链接。
通过访问ChatGPT提供的笔记链接,即可打开Noteable云空间中的相应笔记本。
数据集分析:导入数据
在Noteable中,用户能够轻松地从各种来源导入数据,包括上传CSV文件、Excel电子表格,以及连接到Postgres和MySQL等数据库。
在Noteable云空间的项目或笔记本界面,可以方便地进行数据导入。打开刚才由ChatGPT给出的笔记链接,进入笔记本界面。
点击界面右上角的加号,然后在弹出的下拉菜单中选择"Add files"。
通过将CSV或Excel文件拖拽到虚线框中,或者点击“Upload from computer”来打开本地文件浏览器进行文件上传。每次最多可上传25个文件,每个文件大小限制在100M以内。
执行探索性数据分析 (EDA)
EDA有助于我们对数据集有一个初步的了解,就像在游览某个景区之前先查看地图一样。在开始分析之前,通常需要进行数据清理和预处理。
我们要分析的数据往往包含一些错误值、重复值、缺失值或异常值。如果不对这些值进行清理或处理,它们可能会对后续分析结果产生影响。
ChatGPT可以帮助我们:
生成列的汇总统计信息
检查缺失值
查找异常数据点
绘制列的分布
在执行这些步骤之前,让我们首先看一看Noteable是否能够协助我们完成这些任务。为此,我向ChatGPT提交了以下提示:
作为专业的数据分析师,请遵循标准的数据分析流程。 我们来逐步分析netflix_titles.csv中的数据。
netflix_titles.csv是我刚刚上传到Noteable云空间的数据。我们可以看一下ChatGPT的处理过程:
我创建了一个代码单元,从“netflix_titles.csv”文件加载数据并显示前几行。但是,启动内核似乎存在问题。让我们再次尝试运行该单元。
您可以通过此链接编辑该单元。
数据已成功加载。以下是数据集的前几行:
(表格展示了一些数据,包括show_id、type、title、director、cast、country、date_added、release_year、rating等列)
数据集中的列包括:index、show_id、type、title、director、cast、country、date_added、release_year、rating、duration、listed_in、description。
数据分析的下一步通常是执行一些探索性数据分析(EDA)以更好地理解数据。您想继续吗?
在数据分析之前,通常要查看数据的前几行,以便初步了解数据集的情况。ChatGPT为我自动完成了这项任务,这非常出色,我无需主动请求它执行。
在访问Noteable云空间的笔记本时,我发现ChatGPT已经生成了一些代码,询问是否要执行探索性数据分析以更好地理解数据。以下是ChatGPT的回答:
以下是探索性数据分析的一些初步发现:
数据集包含8807行12列。
各列及其各自的数据类型如下:
(表格展示了各列的数据类型)
数据集中存在缺失值。 以下是每列的缺失值计数:
(表格展示了每列的缺失值计数)
下一步通常是数据清理,我们处理这些缺失值。 您想继续吗?
ChatGPT为我输出了列的数据类型以及缺失值的数量,这非常出色!接下来,它提到要处理这些缺失值,我选择让它继续。
我已使用字符串“Unknown(未知)”填充了“导演”、“演员”、“国家/”、“添加日期”、“评级”和“观看时长”列中的缺失值。现在,数据集中没有缺失值:
ColumnMissing Valuesshow_id0type0title0director0cast0country0date_added0release_year0rating0duration0
ChatGPT帮我用"Unknown"替换了所有缺失值。其实有些列中的缺失值很少,也可以选择删除包含这些缺失值的行。这个操作可以通过与ChatGPT对话进行,也可以在笔记本里修改代码。
数据分析过程的下一步通常是执行一些描述性统计以更好地理解数据。您想继续吗?
ChatGPT继续执行,并提供了数据集的描述性统计数据:
以下是该数据集的一些描述性统计数据:
对于数字列 (release_year):
数量:8807
平均值:2014.18
标准差:8.81931
最低:1925
第 25 个百分位:2013 年
中位数:2017 年
第 75 个百分位:2019 年
最长:2021
对于分类(categorical)列:
“type(类型)”列有 2 个唯一值,其中“Movie(电影)”是最常见的。
每行的“标题(title)”和“show_id”列都是唯一的。
“director(导演)”、“cast(演员)”和“country(国家)”列有许多唯一值,其中“未知”由于缺失值替换而最为常见。
“添加日期(date_added)”列有 1768 个唯一值,其中“January 1, 2020”是最常见的。
“rating(评级)”栏有 18 个独特的类别,其中“TV-MA”是最常见的。
“观看时长(duration)”列有 221 个唯一值,其中“1 Season”是最常见的。
数据分析过程的下一步通常是执行一些数据可视化以更好地理解数据。 您想继续吗?
ChatGPT提供了对数字列和分类列的统计信息,以及一些有趣的观察。接下来,它询问是否要进行数据可视化,我选择让它继续。
ChatGPT继续执行:
以下是“type(类型)”列的计数图,显示数据集中电影与电视节目的数量:
正如我们所看到的,数据集中的电影多于电视节目。
接下来,让我们可视化“发布年份(release_year)”列的分布。 您想继续吗?
ChatGPT继续。
以下是“发布年份(release_year)”列的直方图,显示了数据集中电影和电视节目的发行年份分布:
正如我们所看到的,这些年来发布的数量一直在增加,其中最近几年发布的数量最多。
接下来,我们可以分析“评级”列,以查看电影和电视节目最常见的评级。 您想继续吗?
让ChatGPT继续:
这是“评级”列的计数图,显示每个评级的电影和电视节目的数量:
正如我们所看到的,最常见的评级是“TV-MA”,其次是“TV-14”和“TV-PG”。
接下来,我们可以分析“country(国家)”列以查看内容最多的国家。 您想继续吗?
让ChatGPT继续。
以下是“国家“列的计数图,显示内容最多的前 10 个国家/地区:
我们可以看到,美国的内容最多,其次是印度和英国。
初步的探索性数据分析到此结束。 基于这些见解,我们可以提出更具体的问题并进行进一步的分析。 您是否有任何具体问题或想要对此数据集执行的分析?
ChatGPT根据数据集的不同特征自动生成了计数图和直方图,并提供了初步的结论。最后,它询问是否有任何具体问题或进一步的分析。我没有任何要求,ChatGPT自动完成了整个EDA流程。
我:
我们来分析电影的持续时间。
ChatGPT:
似乎存在错误,因为“观看时长(duration)”列包含一些“Unknown(未知)”值。 让我们处理这些值并重试。对于造成的混乱,我深表歉意。 似乎存在错误,因为“观看时长(duration)”列仍然包含“min”字符串。 让我们删除该字符串并重试。
以下是电影时长的一些描述性统计数据:
数量:6128
平均:99.58 分钟
标准差:28.29 分钟
最短:3 分钟
第 25 个百分位数:87 分钟
中位时间:98 分钟
第 75 个百分位数:114 分钟
最长:312 分钟
这些统计数据使我们能够很好地了解数据集中电影的典型持续时间。
接下来,我们可以可视化电影时长的分布。 您想继续吗?
让ChatGPT继续。
ChatGPT:
这是“持续时间”列的直方图,显示电影持续时间的分布:
正如我们所看到的,最常见的电影时长在 80 到 120 分钟之间。
电影时长的分析到此结束。 您还有其他具体问题或想要对此数据集执行的分析吗?
接下来还可以继续提问,让Noteable ChatGPT插件为我们生成更多数据洞察。我在这里不再演示了,为了充分挖掘它的能力,我继续让它进行更高级的数据分析。
Noteable插件的高级数据分析
除了标准的数据分析和可视化,让我们一探Noteable插件在高级数据分析方面的能力。我测试了两个方面,即自然语言处理和数据分析建模。
自然语言处理(NLP)是一个研究领域,专注于使计算机能够理解人类语言并与之互动,其方式类似于我们彼此之间的沟通方式。NLP允许计算机处理、分析并从大量的文本数据中获得洞察。
比如,我给它这样一个任务:
"分析标题中最频繁的词并生成一个词云。"
让我们看下ChatGPT的输出:
"以下是标题中最常见单词的词云:
词云中单词的大小表明了它们的频率。 正如我们所看到的,标题中最常见的一些词是“爱”、“男人”、“生活”、“世界”、“故事”等。
对标题中最常见单词的分析到此结束。 您还有其他具体问题或想要对此数据集执行的分析吗?"
如果我们分析Noteable笔记本里生成的代码,就可以明白ChatGPT结合Noteable的处理过程。
我仅仅让ChatGPT生成词云,它就知道应该安装Python的wordcloud库,并从该库里导入停止词。这些停止词是比较常用的,我还可以进一步让ChatGPT继续删除某些词,比如'little'等。
机器学习建模
在进行数据分析时,机器学习建模是一个关键的步骤,它指的是训练计算机算法,使其能够自动学习模式并根据输入数据做出预测或决策。这种模型能够对新的、未曾见过的数据进行概括,并做出准确的预测。
让我们看看Noteable ChatGPT插件对于此数据集能够构建哪些机器学习模型:
ChatGPT提出了一些基于数据集性质的建议:
基于内容的推荐系统: 利用电影和电视节目的信息,如“导演”、“演员”、“国家/地区”、“评级”、“时长”和“描述”,构建一个基于内容的推荐系统,推荐与给定电影或电视节目相似的内容。
文本分类/情感分析: 若有用户评论数据,可以使用“描述”和“标题”特征构建文本分类模型,用于预测评论的情感。
时间序列分析/预测: 如果有每部电影或电视节目添加时间的详细数据,可以执行时间序列分析以了解趋势并预测未来的添加。
分类或回归模型: 如果有特定目标变量,如预测电影或电视节目的“收视率”或“发行年份”,可以分别构建分类或回归模型。但需要考虑数据集的特点,这些模型可能在当前情境中并不十分有意义或实用。
ChatGPT还指出,这些模型的有效性和可行性取决于是否拥有正确的数据和清晰的问题陈述。然后,它询问是否有特定的机器学习模型或问题陈述需要进一步探索。
在我的后续请求中,我提出了构建基于内容的推荐系统的具体任务。ChatGPT回复包括了构建推荐系统的几个步骤,如预处理文本数据、提取特征、计算相似度以及最终进行推荐。ChatGPT还提供了一个名为“get_recommendations”的函数,可以根据输入的电影或电视节目标题输出相似的电影或电视节目列表。
在进一步探索机器学习模型时,我决定测试基于电影的特征对评级的预测效果。ChatGPT提到了建立一个预测电影评级的模型,其中使用了一些机器学习算法,并训练了一个逻辑回归模型作为初始基准。
然而,逻辑回归模型的整体精度只有0.39,可能是由于任务复杂性和模型局限性导致的。在这一点上,我向ChatGPT询问是否有其他模型可以尝试以提高性能。ChatGPT建议了几种可能有效的模型,包括:
随机森林: 一种通过构建多个决策树并集成它们的输出来提高性能的集成学习方法。
梯度提升: 另一种集成机器学习算法,通过构造新的预测器来逐步改进模型。
支持向量机 (SVM): 对于某些类型的数据集非常强大,特别是在数据不太大且有明显分离余量的情况下。
神经网络: 如果数据集庞大且复杂,神经网络可能是一个强大的选择,尽管需要更多的计算资源。
ChatGPT还提醒我,模型的选择通常取决于数据集的特征和问题的性质。尝试多种模型是一个好主意,以找到最适合特定用例的模型。
在测试了逻辑回归后,我可以选择尝试这些建议的模型,或者尝试其他可能提高性能的方法。ChatGPT询问我是否想要继续使用其中一种模型,或者是否还有其他想要探索的内容。
我让ChatGPT创建了一个随机森林模型,并查看了其训练和评估结果。随机森林模型的分类报告显示了每个类别的精度、召回率和F1分数。总体而言,该模型的整体精度为0.50,相较于逻辑回归模型有所改进。然而,仍然存在一些分类的性能较低的情况,可能是由于类别不平衡、缺乏信息特征或模型复杂性不足等原因。
随后,我决定让ChatGPT尝试支持向量机(SVM)模型,但由于SVM的计算量较大,训练可能需要一段时间。ChatGPT提到训练的进度可以在笔记本中查看,同时也提到如果要缩短训练时间,可以加入Waitlist获取更高配置,例如GPU。
抓取网站和发出API请求
由于Noteable笔记本在连接互联网的服务器上运行,它具备了抓取网站和发出API请求的能力,进而通过ChatGPT进行更广泛的应用。Noteable可以安装所需的Python库,从而进行各种任务,包括但不限于数据分析。
例如,我让它协助生成维基百科机器学习页面的词云:
生成维基百科机器学习页面的词云:en.wikipedia.org/wiki/Machin…
以下是Noteable结合ChatGPT处理的结果:
为了生成词云,我们需要执行以下步骤:
获取网页内容。
解析HTML以提取文本。
清理文本(删除停用词、标点符号等)。
生成词云。
在这个任务中,我们需要使用多个Python库,包括“requests”用于获取网页,“BeautifulSoup”用于解析HTML,“nltk”用于文本清理,“wordcloud”用于生成词云。
首先,我们将安装这些库并获取网页内容。成功获取网页内容后,我们将解析HTML以提取文本,使用BeautifulSoup实现这一步骤。随后,通过nltk库清理文本,去除停用词和标点符号。最后,使用wordcloud库的WordCloud函数生成词云。
生成的词云基于机器学习维基百科页面的文本,其中每个单词的大小表示其在文本中的出现频率,较大的单词被更频繁地提及。
以上仅是一个小例子,你还可以将要爬取的网页链接存储在表格或数据库中,通过与ChatGPT对话的方式设置任务,以批量爬取网页数据并将其存储到另一个表格或数据库中。此外,Noteable还提供了调度功能,允许用户设置笔记本的运行时间表,例如按小时、每天、每周或每月运行。
实时协作与分享成果
实时协作功能是Noteable的一项强大功能,为用户提供了更加高效的团队合作体验。使用ChatGPT生成的笔记本时,用户可以更好地协同工作:
同时编辑: 多位协作者可以同时打开同一笔记本,实时查看彼此的编辑。这意味着用户可以添加、编辑或重新排列单元格,而其他协作者可以即时看到这些变更。
单元格锁定: 用户可以锁定正在处理的单元格,以防其他协作者意外覆盖更改。
集成聊天: Noteable内置聊天功能,协作者可以在讨论时直接引用或讨论特定单元格。
@提及: 用户可以使用@来提及特定协作者,以便通知或引导他们关注相关内容。
这些功能共同促进了数据分析工作流的协同。团队成员可以在由ChatGPT生成的笔记本上进行协同工作,实时改进和迭代,同时自动记录历史记录和对话。这有助于在整个组织中更好地发挥对话分析的潜力。
导出和分享笔记本:
已完成的笔记本可以通过多种方式进行分享和导出:
与特定Noteable用户共享笔记本或通过空间或项目中的用户配置访问权限。
下载为Jupyter (.ipynb)文件。
将笔记本导出为HTML、PNG、PDF、MD、RST、PY等格式。
总结
综上所述,Noteable ChatGPT插件彻底改变了我们进行数据分析的方式。它将自然语言处理与数据笔记本的强大功能相结合,提供了一个更直观和开放的数据分析平台。即使缺乏编码技能的人也能深入研究复杂的任务,如探索性数据分析、机器学习建模、网络数据抓取等。让我们共同期待数据分析领域的未来。