前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >5个可以帮助pandas进行数据预处理的可视化图表

5个可以帮助pandas进行数据预处理的可视化图表

作者头像
deephub
发布2020-08-17 15:35:03
1.3K0
发布2020-08-17 15:35:03
举报
文章被收录于专栏:DeepHub IMBADeepHub IMBA

“一目了然胜过千言万语。”分析数据点的探索性数据分析(EDA)是在算法的数据建模之前制定假设的正确步骤。

数据科学行业中一个最常见的陷阱是花费数小时为他们的项目寻找最佳算法,而没有花足够的时间首先理解数据。

数据科学和机器学习项目的结构化方法从项目目标开始。同一组数据点可以推断出一些有意义的信息。基于我们所寻找的,我们需要关注数据的另一个方面。一旦我们明确了目标,我们就应该开始考虑我们需要的数据点。这将使我们能够专注于最相关的信息集,而忽略可能不重要的数据集。

在现实生活中,从多个来源收集到的大多数时间数据都有空白值、打字错误和其他异常。在进行任何数据分析之前,清除数据是至关重要的。

在本文中,我将讨论五个强大的数据可视化选项,它们可以立即提供数据特征的感觉。即使在正式建模或假设测试任务之前,执行EDA就可以传达大量关于数据和特征之间关系的信息。

第1步-我们将导入pandas、matplotlib、seaborn和NumPy包,我们将使用这些包进行分析。我们需要散点图、自相关图、滞后图和平行图。

代码语言:javascript
复制
 import pandas as pd
 import numpy as np
 import matplotlib.pyplot as plt
 from pandas.plotting import autocorrelation_plot
 import seaborn as sns
 from pandas.plotting import scatter_matrix
 from pandas.plotting import autocorrelation_plot
 from pandas.plotting import parallel_coordinates
 from pandas.plotting import lag_plot

第2步-在Seaborn包中,有一个内置的小数据集。我们将使用“mpg”、“tips”和“attention”数据进行可视化。数据集是在seaborn中使用load_dataset方法加载的。

代码语言:javascript
复制
 """Download the datasets used in the program """
 CarDatabase= sns.load_dataset("mpg")
 MealDatabase= sns.load_dataset("tips")
 AttentionDatabase= sns.load_dataset("attention")

六边形分箱图(hexpin)

我们经常使用散点图来快速掌握变量之间的关系。只要图中没有人口稠密的数据点,获得一个洞察力是非常有帮助的。在下面的代码中,我们绘制了“mpg”数据集中“Horsepower” 和“Acceleration”数据点之间的散点图。

代码语言:javascript
复制
 plt.scatter(CarDatabase.acceleration ,CarDatabase.horsepower,marker="^")
 plt.show()

散点图中的点密集分布,从中获取有意义的信息有点困难。

hexpins是解决重叠点散点图的一个很好的替代方案。每个点不是在hexbin图中单独绘制的。在下面的代码中,我们用相同的数据集在“Horsepower” 和“Acceleration”之间绘制一个hexbin。

代码语言:javascript
复制
 CarDatabase.plot.hexbin(x='acceleration', y='horsepower', gridsize=10,cmap="YlGnBu")
 plt.show()

在hexpin图中可以清楚地推断“Horsepower” 和“Acceleration”范围集中值,变量之间呈负线性关系。六边形的大小取决于“网格大小”参数。

热力图(Heatmaps)

热力是我个人最喜欢查看不同变量之间的相关性。那些在媒体上跟踪我的人可能已经注意到我经常使用它。在下面的代码中,我们将计算seaborn“mpg”数据集中所有变量之间的成对相关性,并将其绘制为热力图。

热力图是我个人最喜欢查看不同变量之间的相关性。那些在媒体上跟踪我的人可能已经注意到我经常使用它。在下面的代码中,我们将计算seaborn“mpg”数据集中所有变量之间的成对相关性,并将其绘制为热力图。

代码语言:javascript
复制
 sns.heatmap(CarDatabase.corr(), annot=True, cmap="YlGnBu")
 plt.show()

我们可以看到“cylinders” 和 “horsepower” 是密切正相关的(正如在汽车中所预期的),而重量与加速度成反比。我们只需几行代码就可以快速理解所有不同变量之间的指示性关系。

自相关图(Autocorrelation)

自相关图是一个快速的试金石测试,以确定数据点是否随机。如果数据点遵循某种趋势,那么一个或多个自相关将显著非零。图中的虚线显示99%的置信区间。在下面的代码中,我们正在检查“tips”数据库中的总帐单金额是否是随机的。

代码语言:javascript
复制
 autocorrelation_plot(MealDatabase.total_bill)
 plt.show()

我们可以看到,自相关图在所有时间滞后中都非常接近于零,这表明总的_bill数据点是随机的。

当我们按照特定顺序绘制数据点的自相关图时,我们可以看到该图显著地非零。

代码语言:javascript
复制
 data = pd.Series(np.arange(12,7000,16.3))
 autocorrelation_plot(data)
 plt.show()

滞后图(Lag)

滞后图也有助于验证数据集是随机值集还是遵循某种趋势。当绘制“tips”数据集的“total_bills”值的滞后图时,就像在自相关图中一样,滞后图表明它是随机数据,到处都有值。

代码语言:javascript
复制
 lag_plot(MealDatabase.total_bill)
 plt.show()

当我们延迟绘制一个非随机数据序列时,如下面的代码所示,我们得到了一条平滑的线条。

代码语言:javascript
复制
 data = pd.Series(np.arange(-12*np.pi,300*np.pi,10))
 lag_plot(data)
 plt.show()

平行坐标图(Parallel coordinates)

把我们的大脑包围起来并将其可视化不仅仅是三维数据,这一直是一个挑战。绘制高维数据集的平行坐标非常有用。每个尺寸用一条垂直线表示。

在平行坐标系中,“N”等距垂直线表示数据集的“N”维度。顶点在第n个轴上的位置对应于该点的第n个坐标。

让我们考虑一个小样本数据,它有五个小部件和大尺寸小部件的五个特性。

垂直线表示小部件的每个功能。一系列连续的线段代表“小”和“大”小部件的特征值。

下面的代码绘制了seaborn中“attention”数据集的平行坐标。请注意,群集的点看起来更靠近。

代码语言:javascript
复制
 parallel_coordinates(AttentionDatabase,"attention",color=('#556270', '#C7F464'))
 plt.show()

我希望你能开始使用这些现成的绘图来执行探索性的数据分析

作者:Kaushik Choudhury

deephub翻译组

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-08-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DeepHub IMBA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 六边形分箱图(hexpin)
  • 热力图(Heatmaps)
  • 自相关图(Autocorrelation)
  • 滞后图(Lag)
  • 平行坐标图(Parallel coordinates)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档