探索性数据分析(EDA)指南

探索性数据分析(EDA)是一种在构建模型之前对数据进行初步检查的方法。这种方法鼓励统计学家探索数据,可能形成假设,从而引导新的数据收集和实验。在当今的数据科学和分析领域,大部分时间都花在了数据整理和探索性数据分析上。

什么是探索性数据分析(EDA)?

探索性数据分析(EDA)是一种从数据中获取洞察力的方法。数据科学家和分析师使用统计图表和其他可视化技术,尝试发现数据中的不同模式、关系和异常。EDA包括以下几个方面:

  • 从数据集中获取最大洞察力
  • 揭示潜在结构
  • 从数据集中提取重要变量
  • 检测异常值(如果有的话)
  • 测试潜在假设
  • 确定最优因素设置

为什么EDA如此重要?

EDA的主要目的是检测数据中的错误、异常值以及理解数据中的不同模式。它允许分析师在做出任何假设之前更好地理解数据。EDA的结果有助于企业了解他们的客户,扩大业务,并据此做出决策。

如何执行探索性数据分析(EDA)?

为了更好地理解EDA,以汽车数据集为例进行分析。

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns auto = pd.read_csv('Automobile_data.csv') print(auto.head())

可以看到数据集有26个属性,列名缺失。还观察到有些地方有‘?’符号,这意味着数据有缺失值。首先填写列名。

auto.isnull().sum()

它显示数据集中没有空值,但之前观察到有‘?’符号,这意味着这些符号是以对象形式存在的。让现在检查每个属性的数据类型。

sns.heatmap(auto.isnull(),cbar=False,cmap='viridis')

通过热图,可以看到属性中缺失的数据量。这可以帮助决定是丢弃这些缺失值还是替换它们。通常不建议丢弃缺失值,但有时这样做可能也有帮助。

num_col = ['normalized_losses', 'bore', 'stroke', 'horsepower', 'peak_rpm','price'] for col in num_col: auto[col]=pd.to_numeric(auto[col]) auto[col].fillna(auto[col].mean(), inplace=True)

可以观察到,现在缺失值已经用均值替换了。

这是EDA中最重要的一步。这一步将决定作为分析师的思考能力。这一步因人而异,取决于他们的提问能力。尝试提出与独立变量和目标变量相关的问题。例如,燃料类型将如何影响汽车的价格?

现在让应用领域知识,提出将影响汽车价格的问题。

plt.figure(figsize=(10,10)) plt.scatter(x='horsepower',y='price',data=auto) plt.xlabel('Horsepower') plt.ylabel('Price')

可以看到,大部分马力值在50-150之间,价格大多在5000-25000之间,也有一些异常值(在200-300之间)。

plt.figure(figsize=(10,10)) plt.scatter(x='engine_size',y='price',data=auto) plt.xlabel('Engine size') plt.ylabel('Price') plt.figure(figsize=(10,10)) plt.scatter(x='highway_mpg',y='price',data=auto) plt.xlabel('Highway mpg') plt.ylabel('Price') sns.boxplot(x='price',y='num_of_doors',data=auto)
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485