Python数据交互式可视化 - 常见陷阱

数据格式

交互式数据可视化的目的是可视地和交互式地呈现数据,以便于理解。 因此,自然地,数据是任何可视化中最重要的因素。 因此,数据可视化的第一阶段是了解您面前的数据–了解其含义,含义以及所传达的内容。 只有了解了数据,您才能设计出可视化的图像,以帮助其他人理解它。

此外,重要的是要确保您的数据有意义并包含足够的信息(无论是分类的,数字的还是两者的结合)都可以可视化。 因此,如果您要处理错误或脏数据,则势必会导致可视化错误。

在处理脏数据时避免常见的陷阱

垃圾进,垃圾出–在数据科学领域,尤其是在数据可视化方面,这是一个流行的说法。 从根本上讲,这意味着如果您使用混乱且嘈杂的数据,则将获得有缺陷且毫无信息的可视化。

凌乱,嘈杂和肮脏的数据对应于数据中发现的一系列问题。 让我们一一讨论这些问题以及处理此类数据的方法。

异常值

包含不正确值或实例的数据与数据集中其余数据有显着差异的数据称为异常值。

这些数据点与数据集中的大多数数据点明显不同。 这些离群值可以是真实的,即它们看起来似乎不正确,但实际上不是,或者是在收集或存储数据时所犯的错误。

让我们看一个收集或存储数据时出错的例子。 下表列出了访问特定体育馆的客户的年龄,体重和性别。 性别列由三个离散值– 0、1和2 –分别对应于一个类别-男性,女性和其他。 年龄栏以年为单位,重量栏以千克为单位。 让我们看一下数据集:

图略

一切正常,直到我们达到第四名(索引3)为止,该处的重量为790千克。 这似乎很奇怪,因为没人能真正称得上790公斤,尤其是身高5英尺7英寸的人。 无论谁存储此数据,都必须达到79公斤,并且错误地添加了0。 这是数据集中异常值的一个实例。 目前,这似乎微不足道,但是,这可能导致有缺陷的可视化效果,见解和机器学习模型的预测或模式,尤其是在此类数据存在多次重复的情况下。

现在,让我们在下表中查看一个真实异常值的示例:

图略

第四例(索引3)的重量为167公斤,这看起来确实很高。 但是,这仍然是一个合理的值-某人可能有健康状况,实际上在37岁时体重为167公斤。因此,这是一个真正的异常值。

虽然在前面的示例中很容易发现异常值,因为只有5个实例,但实际上,我们的数据集非常庞大,因此检查每个实例中的异常值是一项繁琐且不切实际的任务。 因此,在现实生活中,我们可以使用基本的静态数据可视化效果(例如箱形图)来观察异常值的存在。

箱形图是简单而有用的数据可视化,可以告诉我们很多有关数据分发方式的信息。 它们基于五个关键值显示我们的数据范围:

  • 列中的最小值
  • 第一个四分位数
  • 中位数
  • 第三个四分位数
  • 列中的最大值

这也是使它们在显示异常值方面的出色表现,同时还描述了数据的对称性,数据分组的紧密程度(所有值是否紧密结合或分布在较大范围内)以及是否歪斜。

使用箱形图可视化数据集中的异常值

我们将创建一个箱形图以检查我们的数据集是否包含异常值。 我们将使用Gym.csv数据集,其中包含有关某个体育馆的客户的信息。 以下步骤将为您提供解决方案:

  • 从此链接下载名为Gym的.csv文件到您将在其中创建交互式数据可视化的文件夹中
  • 打开cmd或终端,具体取决于您的操作系统
  • 浏览到存储.csv文件的文件夹,然后使用以下命令启动Jupyter笔记本:

内容略

处理异常值

有三种方法:

删除:如果仅有少数几个具有异常值的实例(行),则可以从数据集中完全删除那些实例,从而使您得到一个具有零个异常值的数据集。 有时某个要素(列)包含大量离群值。 在这种情况下,可以从数据集中删除该特定功能,但前提是该功能不重要。 但是,删除数据并不总是最好的主意。

插补:插补是比删除更好的选择,尤其是在数据集中有许多离群值的情况下。

可以通过以下三种方法实现:

  • 最常见的方法是用列的均值,中位数或众数来估算离群值。 但是,在许多异常值的情况下,这些值可能不够好,因为每个异常值都将被相同的值(均值,中位数或众数)代替。
  • 得出异常值更好的另一种方法是线性插值,尤其是在时间序列分析的情况下,即使用线性多项式在已知数据点的定义范围内创建新数据点来替换异常值。
  • 如果缺失值是数字的,则线性回归模型也可以用于预测缺失值;如果缺失值是分类的,则可以使用逻辑回归模型。 线性回归和逻辑回归是有监督的机器学习算法,也就是说,它们从标记的数据中学习以预测新的未标记的数据。 线性回归用于预测数值,而逻辑回归用于预测类别。
  • 例如,假设您有一个数据集,您需要从该数据集中显示身高和体重之间的关系。 高度列缺少几个值,但是由于它是一项重要功能,您不能删除它,也不能估算列的平均值,因为这可能会导致错误的关系。 数据集可以分为两个数据集:
    • 训练数据集,其中包含不丢失值的实例
    • 新的数据集,仅包含那些在height列中缺少值的实例

然后可以在训练数据集上使用线性回归模型。 该模型将从这些数据中学习,然后,当提供新数据集作为输入时,它将能够预测height列的值。 现在,由于没有缺失值,因此可以将两个数据集合并在一起并用于创建可视化。

转换:这是通过建立离群值所在的数据列来转换离群值的过程,例如,将值转换为百分比并将该列用作要素而不是原始列。

我们将从上述示例使用数据集删除包含异常值的实例,该数据集使用箱形图可视化数据集中的异常值,并通过基于新数据集生成箱形图再次可视化数据集。

内容略

现在我们的可视化效果很好! 没有异常值,因此y轴的比例是合适的。 既然我们已经研究了如何处理异常值,那么我们将研究数据中存在的其他问题,这些问题可能导致可视化效果不佳。

详情参阅 - 亚图跨际

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值