探索性数据分析最终指南
#python #datascience #eventdriven

所以,一个男人走进酒吧,不,这不是酒吧的笑话,环顾四周,他注意到的第一件事是一把黑色的抛光钢琴。他走向它,但注意到缺少两个钥匙。他在缺陷方面有问题,因此他环顾四周,以找到缺失的钥匙并将其重新打开。他坐着弹钢琴,但在侧面看到一把吉他,他要坐的沙发缺少一条腿。他环顾四周,现在意识到了内部的条,并注意到墙壁上美丽的艺术品,右墙上的一个洞,一只蜘蛛在窗户附近爬行,一个灯泡不起作用。

然后,他注意到酒吧里的人,特别是酒吧里的二十个人中只有五个人是女士,而所有五个人都在桌子上有披萨。他感觉到所有在酒吧里骑马的人都凝视着,并决定不弹钢琴。取而代之的是,他走到柜台上,拉起椅子。当他坐下时,他抬起头,注意到天花板上挂了三块肉。

“你好,你喜欢我的酒吧吗?”酒吧门将问。该男子继续描述他在最初环顾四周中注意到的一切。

简而言之就是EDA。这是对数据的初步分析和探索,目的是在数据中找到相关性的模式或其他内容或奇数。 EDA就是要在弄脏数据之前掌握手头的数据。这是数据分析过程中的重要步骤,涉及理解和总结数据集的主要特征。

了解数据集可以指许多内容,包括但不限于;

  • 提取重要变量并留下无用的变量
  • 识别异常值,缺失值或人为错误
  • 了解变量之间的关系或缺乏关系
  • 最终,最大化您对数据集的见解,并最大程度地减少在此过程中可能发生的潜在错误。

现在的笑话。酒保说酒吧由阿姆(Eminem)拥有,他问酒保'那肉是什么?免费饮料一个小时。如果您错过了一个小时,您必须在整个晚上余下的饮料付费。想尝试一下吗?
那个人再看一下肉,然后说,我想我会通过。牛排太高了。给我2个镜头。
酒保切断了他的话,说:ha!

在本文中,我将通过做一个来分享我对EDA的理解,但首先是进行EDA的分步指南:

  1. 数据收集:EDA的第一步是收集数据。您可以从各种来源获取数据,例如数据库,API,网站或使用Web刮擦技术。
  2. 数据清洁:一旦收集了数据,下一步就是清洁它。这涉及删除任何重复,缺失值或无关数据。您可能还需要将数据转换为合适的格式进行分析。
  3. 数据探索:清洁数据后,下一步是探索它。这涉及了解数据的基本统计数据,例如平均值,中位数和标准偏差。您还可以创建可视化效果,例如直方图,散点图和框图,以了解数据的分布。

在这一点上,EDA完成了,但是作为数据科学家建筑模型,您正在使用的数据,您还有一些步骤;

  1. 功能工程:功能工程涉及创建现有功能的新功能。这可以帮助改善模型的性能。例如,您可以创建一个新功能,该功能根据人的出生日期来计算一个人的年龄。
  2. 数据预处理:数据预处理涉及准备用于建模的数据。这可能涉及将数据标准化,缩放或编码分类变量。您可能还需要将数据分为培训和测试集。
  3. 模型构建:一旦预处理数据,下一步就是构建模型。这涉及选择适当的算法并调整超参数。
  4. 模型评估:构建模型后,下一步是评估其性能。这可以通过使用准确性,精度,召回和F1得分等指标来完成。您还可以使用诸如混乱矩阵和ROC曲线之类的可视化来了解模型的性能。
  5. 模型解释:一旦评估了模型的性能,最后一步是解释结果。这涉及了解模型的预测及其与原始数据的关系。

通过遵循以下步骤,您可以进行彻底的EDA并建立准确且可解释的机器学习模型。

分享我对我所知道的概念和技巧的理解,我将举一个可以在印度使用其规格数据集here购买的全部汽车收集的例子,并尝试从数据中获得尽可能多的见解。使用EDA设置。

EDA的类型

根据数据的性质和分析目标,通常使用了几种不同类型的探索性数据分析(EDA)。这里有几个例子:

  • 单变量EDA:单变量EDA,单变量探索性数据分析的缩写,通过直方图,中心趋势和分散统计数据以及异常检测来检查单个变量的属性。这种方法有助于了解数据中变量的基本特征,并发现数据中的模式或趋势。
  • 双变量EDA:这种类型的EDA用于分析两个变量之间的关系。它包括诸如创建散点图和计算相关系数之类的技术,并可以帮助您了解两个变量彼此相关。
  • 多元EDA :这种类型的EDA用于分析三个或更多变量之间的关系。它可以包括诸如创建多元图,运行因子分析或使用较小维度降低技术(例如PCA)以识别数据中的模式和结构等技术。
  • 时间序列EDA :这种类型的EDA用于了解随着时间的推移收集的数据的模式和趋势,例如股票价格或天气模式。它可能包括线图,分解和预测等技术。
  • 空间EDA :这种类型的EDA处理具有地理成分的数据,例如来自GPS或卫星图像的数据。它可以包括创建脊柱图,密度图和热图等技术,以可视化数据中的模式和关系。

首先,我们导入必要的库(通常我们会导入pandas,numpy,matplotlib和seaborn,但您只需进口pyforest即可照顾一切)并加载数据集。

import pyforest

pyforest会自动进口pdas作为pd,numpy as np,seborn as s sns,matplotlib.pyplot作为plt或Sklearn的onehotencoder等等。此外,还有诸如OS,RE,TQDM或Pathlib的路径等辅助模块。

Image description

对我来说,探索数据的三个主要组成部分:

  1. 了解您的变量
  2. 清洁数据集
  3. 分析变量之间的关系

因此,第一步将了解变量

您不知道您不知道什么。而且,如果您不知道自己不知道什么,那么您应该如何知道您的见解是否有意义?你不会。这意味着我们必须了解数据的外观和包含的内容。

我们可以从查看数据示例开始。为此,我们可以使用 .head()函数,该功能通常返回数据集的前5行,但我们可以通过在括号中添加一个数字来指定我们希望看到的数字。这很有用,因为您想查看每个变量的一些示例值。
我们还可以使用**。

Image description

Image description

现在,我们已经看到了一个数据示例,可以使用 .columns 方法获取数据中的所有名称。

Image description

接下来,让我们获取有关数据集的一些基本信息,例如使用 .shape 方法。这为我们提供了行的计数。

Image description

在我们的情况下,这意味着我们有203行和16列。

,最好了解列及其相应的数据类型,同时查找它们是否包含空值。我们通过使用 .info()

来做到这一点

Image description

现在,我们已经有了基本的了解o数据的样子,我们可以转到现在正在清理您的数据集的下一步。因此,让我们尝试获取缺失值的数量。我们通过输入 df.isna()。sum()

让我分解。这里发生的事情是 isna()零件检查以查看是否有每个列返回每个列值的值,每个无null值都返回true。然后 sum()部分计算每个列中真实值的数量。

Image description

我们看到座位容量列中存在缺少的值

Image description

因为这是一个缺失的价值,我们可以在网上查找容量并在处理独特的汽车时填充价值。
最好的方法是转到数据源并尝试获取缺失的值。在这种情况下,Is here.

Image description

现在让我们添加5个代替缺失的值。

Image description

您可以看到,我们已成功将该值输入为5。您想成为并使用ILOC指定索引。要了解有关两者及其各种用途的更多信息,请单击here
但是,如果您无法识别或无法获得缺失的值或认为它不重要的情况,则可以根据您的分析简单地使用dropna()函数将其放置。

Image description

接下来,我们可以检查是否有任何重复的列。我们通过使用 .duplicated()方法。

Image description

现在我们已经清理了数据,让我们开始探索。

开始,我们可以查看汇总的统计数据。描述性统计是一组用于以易于理解的方式汇总数据的工具。这些可以快速概述数据,并可以帮助确定数据的中心趋势和传播。为此,我们使用 .describe()函数。此函数返回计数,平均值,标准偏差,最小值和最大值以及数据的分位数。

Image description

立即,您会注意到发动机位移数量和油箱容量的发动机位移数量有问题,因为它们的最小值为0,因此我们必须更深入地挖掘以查看是否需要从极端异常值中进行更多清洁。<<<<<<<<<<<<<<<< /p>

Image description

从数据中,所有具有0的汽车作为圆柱数的值是电动的,它们在使用电池时准确。

数据现在可以进行单变量分析。

让我们从数据集中的数值变量的分布开始。BELOW是起始价格分布的图。

Image description
内核密度估计(KDE)是估计连续随机变量的概率密度函数的一种方式。它用于非参数分析。将Hist标志设置为DISTPLOT中的false将产生内核密度估计图。

相关分析
相关分析是一种理解两个或多个变量之间关系的技术。您可以使用相关分析来确定变量之间的关联程度,以及关系是正面还是负面的。我们可以使用海洋热图和熊猫中的内置 corr()功能来输出数据集中的相关性热图。

来做到这一点。

Image description

在数据可视化方面很难击败相关热图,但是散点图可以说是数据最有用的可视化之一。

散点图是一种图的类型,图沿两个轴(例如年龄和高度)的两个变量的值。散点图很有用,出于许多原因:例如相关矩阵,它使您可以快速理解两个变量之间的关系,这对于识别异常值很有用,当多项式多项式回归模型时,它具有工具性。


我使用了.plot()并将图形设置为散布。我还将X轴设置为体型和Y轴为燃料类型,因为我们想看看不同的体型燃料是如何分布的。

Image description

这与相关矩阵相同的故事讲述了。关于散点图的整洁是,它传达的信息不仅仅是这样。您可以假设的另一个见解是,身体类型对起始价格具有不错的影响。换句话说,车身的类型决定了其定价。您可以看到这一点,因为这些地块显示的价格都不那么定价
分布。

Image description

可视化变量分布的另一种方法是箱形图。这次我们将把Ending_price视为一个示例。BoxPlots并不像上面显示的其他图那样直观,但它以自己的方式传达了很多信息。下图是Boxplot的示例。

Image description

涉及其他几种可视化效果,您可以根据数据集的不同,例如堆叠的条形图,区域图,小提琴图,甚至是地理空间视觉效果。

通过浏览探索性数据分析的三个步骤,您将对数据有更好的了解,这将使选择模型,属性并整体完善它更容易。

感谢您的阅读。数据和笔记本文件可用here