在人工智能的广阔领域中,可能听说过“探索性数据分析”(EDA)。那么,它究竟是什么?它是否重要?如果正在寻找这些问题的答案,那么来对地方了。让开始吧!此外,还将展示一个最近对数据集进行的EDA的实际例子,所以请继续关注!
探索性数据分析是进行初步数据调查的关键过程,通过摘要统计和图形表示来发现模式、发现异常、测试假设和检查假设。这听起来可能有很多术语,让简化一下!现在要说的可能听起来有些荒谬,但请耐心听说,EDA意味着了解数据。也就是说,熟悉将使用的数据集。通过图形等可视化数据来理解任何潜在的模式。这些图形包括条形图、散点图、饼图、箱线图等等!
EDA也意味着探索数据,换句话说,这意味着与可视化数据和理解数据相同,这样就可以构建出不错的机器学习模型(基于AI的应用)。此外,数据清洗也是EDA的一部分,这意味着在现实生活中得到的大多数数据集都非常无组织。它们有缺失值甚至错误的值。这需要修复,以便可以创建一个最佳的AI应用。
毫无疑问,它是必要的!它是必不可少的——如果不先了解正在处理的数据就急于开始编写AI应用——可能会陷入巨大的混乱!信不信由——理解数据是与AI应用交流的语言。如果不理解它——它就没有用。
所以必须掌握数据,找到一些潜在的模式,发现一些异常,这样就知道面临的是什么,实际上,在考虑数据集结构的同时编写AI应用。
好问题,但最终答案很简单。使用Python编程语言。R也可以完成这项工作,但Python在年轻从业者和专业人士中更常见!Python支持许多库,帮助处理数据集。例如——
Pandas
用于查看数据集,并获取有关数据集的信息和描述。修复缺失值或错误值。特别是,它提供了用于操作数值表和时间序列数据的数据结构和操作。可以根据不同的数据(行和列)进行不同的计算,创建和删除行等等。
要可视化数据集,使用Python中的matplotlib
库,它允许创建各种类型的图表——从基本的2D条形图到3D频谱图!它应有尽有,确实令人着迷!
现在,将向展示最近在Kaggle上获得的数据集上进行的EDA的实际案例。让开始编码吧🚀
注意:所有代码都可以在GitHub上找到。可以从那里访问它,给它一个星标,下载它,并尽可能多地进行实验。
首先,当要进行EDA时,需要下载将使用的数据集,也是这样做的,如下所示:在这里,使用了一个链接来下载数据集,这是项目仓库在GitHub上的链接。这节省了时间,也方便其他人下载。在进行这样的项目时,代码将被别人阅读——使代码易于阅读和理解至关重要。
下载数据集后,可以通过Pandas库以表格形式查看数据集,如下所示:这里是一个片段,显示了数据集的前5行,第二个显示了最后5行。
import pandas as pd
heart_data = pd.read_csv('heart.csv')
print(heart_data.head(5))
print('__________________________________')
print(heart_data.tail(5))
很好,接下来呢?现在需要了解数据集,这可以通过数据集网站来实现,在这种情况下,是Kaggle,它告诉列的含义,即贫血等。
一旦完成了对数据集列的理解,就可以开始使用Pandas库进行数据清洗和探索——将在一分钟内进行可视化。
在以下片段中,创建了一个数据集的副本,并更改了数值,即0和1变为是或否。创建副本的主要原因是,当将来创建机器学习模型时——字符串不起作用,因此将使用原始数据集和数值。数字更好,保持应用程序优化。但作为人类,更容易理解文字——因此,当探索数据时——这些字符串将更容易理解。这是一个非常模糊的解释——但请耐心听说😅
以下片段进一步展示了可以用Pandas库做的一些很棒的事情。首先,获得了有关数据集列的一些信息。例如,第一列说年龄,这告诉有299个填充的(没有缺失)值。数据类型是float64——换句话说,以小数形式,即64.5。
第二段代码是不需要时间列的地方。
更多精彩内容!可以查看GitHub仓库,以获取有关代码的更多信息。
现在让开始可视化,将使用Matplotlib和Seaborn库来实现这一点!
这段代码显示了性别列的频率,换句话说,每个性别候选人的值。在这种情况下,观察到大约有190名男性候选人,大约有110名女性。这是一种直观的方式来了解数据。相信之前通过Pandas只做了同样的事情——但这更容易记住,看起来也更有趣一些!
另一个很棒的图表!被称为Lmplot——简单但非常有信息量!在这种情况下,观察到在60-70岁之间,血小板(下面定义)的高相关性。此外,这告诉血小板似乎在男性中更常见,而不是女性。血小板的平均值在两个性别中似乎是250,000-300,000。
所以这个图表就能告诉很多关于数据,这是一个非常基本的图表。还有很多复杂的图表——今天不会涵盖。想保持简单!但有一件事真的很简单,就是给这篇博客点赞并关注😁
血小板——血小板是无色的血细胞,帮助血液凝固。血小板通过在血管损伤处形成凝块来止血。
以下片段可视化了一个catplot。可以观察到每个性别的高血压与年龄的关系。这表明大多数候选人的血压并不太高。现在也可以添加一些东西来显示这个图表中的死亡率!自己尝试一下。可能有点复杂,但尝试没有害处。可以使用另一个图表,如折线图!
需要注意的一点是,只有299个数据条目——这并不多,但非常适合练习EDA技能,所以这可能不是制作AI应用的最佳选择,尽管这是完全可行的。
在这本笔记本中还制作了一些其他图表,可以在这里访问,并确保给它一个开始:)
查看代码在Gist上。
恭喜完成了第一个EDA项目!希望理解了所说的一切,并享受了阅读!
简而言之,可以说Python为提供了各种工具来帮助了解数据。像lmplots这样的基本图表告诉很多关于数据的信息!甚至可以创建相关图表和3D频谱图!想象力是限制!
可能想要阅读以下博客: