翻译:林立琨校对:赵茹萱
本文约1300字,建议阅读5分钟本文手把手带你了解探索性数据分析(EDA)。
各种 EDA 图
据IBM的介绍,探索性数据分析(EDA)是数据科学家用来分析和研究数据集并总结其主要特征的一种方法,通常采用数据可视化技术。因此可以说,EDA 是通过创建可视化和摘要来研究和理解数据集的过程。
EDA 在数据科学/机器学习工作流程中非常重要,真正的问题应该是 "没有 EDA 我们该怎么办!"医生在给病人开药或治疗之前,总是要做一些检查,问一大堆问题等等。数据科学家就像医生,只不过我们面对的不是病人,而是数据。EDA 是我们向数据提问的方式,目的是找出有关数据的一切信息,并了解数据为何如此(如识别趋势、模式、异常等)。而现在,好比药物和治疗,我们在尝试根据我们的数据决定最佳的模型和特征并在我们的数据上使用它们。因此,从 EDA 收集到的信息可以帮助我们做到这一点。这就是我们作为数据科学家需要 EDA 的主要原因。
在本博文中,我们将使用
1. Seaborn 和 matplotlib 库
2. 来自 Seaborn 的 "Tips "数据集
现在,首先是数据科学家使用次数多的其中几个绘图。
图片来自作者的代码
用于:
显示分类变量的分布。
可视化数据集中每个类别的频率或数量。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.countplot(x='day', data=data)
plt.title('Count of Tips by Day')
plt.show()
图片来自作者的代码
用于:
显示数据的平均值、中位数、分位数和异常值。
比较多个变量的分布。
识别数字变量的松散程度。
检测数据集中的潜在异常值。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.boxplot(x='day', y='total_bill', data=data)
plt.title('Box Plot of Total Bill by Day')
先前提示:我们是数据科学家,我们使用密度图而不是直方图,因为我们讨厌猜测/决定最佳的组距。
图片来自作者的代码
用于:
可视化连续变量的分布
识别数据中的峰值、谷值和整体模式。
了解分布的形状。
比较多个变量的分布。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.kdeplot(data['total_bill'],
shade=True) plt.title('Total Bill 的密度图')
plt.show()
图片来自作者代码
用于:
探索两个连续变量之间的关系。
识别数据中的模式、相关性或聚类。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.scatterplot(x='total_bill', y='tip', data=data)
plt.title('Scatter Plot of Total Bill vs. Tip')
5.折线图
图片来自作者代码
用于:
显示时间序列中的趋势或模式。
显示两个连续变量在一个连续区间内的关系。
比较变量在连续范围内的变化。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.lineplot(x='total_bill', y='tip', data=data)
plt.title('Line Plot of Tip Over Total Bill')
图片来自作者代码
用于:
显示数值变量的相关矩阵。
识别大型数据集中的模式和关系。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
correlation_matrix = data.corr()
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm')
plt.title('Correlation Heatmap')
plt.show()
额外:组合图
听说过 "一石二鸟 "吗?
在 EDA 方面,我们也经常这样做,我们使用的图实际上是上述图的组合。
这样做是为了 "节省时间",但实事求是地说,像样的 EDA 值得付出大量的时间。
图片来自作者代码
用于:在同一图表中并排比较多个绘图。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
plt.figure(figsize=(12, 8))
plt.subplot(2, 2, 1) sns.scatterplot(x='total_bill', y='tip',
data=data) plt.title('Scatter Plot of Total Bill vs Tip')
sns.barplot(x='day', y='total_bill', data=data)
plt.title('Bar Plot of Total Bill by Day')
plt.subplot(2, 2, 4)
sns.histplot(data['total_bill'],kde=True)
plt.title('Histogram of Total Bill')
8. 成对图(并无官方翻译)
图片作者来自代码
用于通过可视化成对变量来探索多个变量之间的相关性和趋势。
样例代码:
import seaborn as snsimport matplotlib.pyplot as plt data =
sns.load_dataset('tips')
sns.pairplot(data, hue='day')
plt.suptitle('Pairplot of Numerical Variables by Day', y=1.02)
plt.show()
9.小提琴图
结合了箱型图和核密度图的特点。
图片作者来自代码
用于:可视化数值变量在不同类别中的分布。
样例代码:
import seaborn as sns
import matplotlib.pyplot as plt
data = sns.load_dataset('tips')
sns.violinplot(x='day', y='total_bill',
data=data) plt.title('Violin Plot of Total
Bill by Day')
plt.show()
原文标题:
20% of EDA Plots Data Scientists Use 80% of the Time
原文链接:
20% of EDA Plots Data Scientists Use 80% of the Time | by Anjolaoluwa Ajayi | GDSC Babcock Dataverse | Dec, 2023 | Medium
编辑:于腾凯
校对:林亦霖