探索性数据分析(EDA)最终指南
#python #codenewbie #datascience #分析

数据分析和数据科学中的一个重要阶段是探索性数据分析(EDA),涉及查看和可视化数据以理解其属性和变量之间的相互作用。
它有助于发现模式,离群值和潜在数据问题。本文将作为探索性数据分析的最终指南,包括其定义,步骤和技术。

定义

探索性数据分析是研究数据以使用定量和视觉技术突出显示其关键特征的过程。
它需要理解数据的结构,发现趋势和连接,并寻找可能的异常值或异常。
EDA的关键目标是获得对数据的见解,发现潜在问题并准备好数据进行更多分析。结果,毫无疑问,这是数据科学项目中最重要的一步,占该项目所花费的总时间的近70-80%。

由于EDA是一个迭代过程,因此可以根据早期分析的发现进行磨练或扩展分析。

类型

单变量数据分析

单变量数据分析(EDA)是一种探索性数据分析(EDA),一次检查一次单个变量的分布和特征。
单变量分析的主要目标是理解数据的核心趋势,可变性和分布https://www.geeksforgeeks.org/exploratory-data-analysis-eda-types-and-tools/
单变量分析中使用的一些常见技术包括:

描述性统计:描述性统计数据,例如平均值,中值,模式,范围和标准偏差,提供了中心趋势,分散和变量分布的形状的摘要。 /p>

要计算诸如平均值,中值和标准偏差等描述性统计数据,我们可以使用Numpy库。这是一个例子:

import numpy as np

data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

mean = np.mean(data)
median = np.median(data)
std_dev = np.std(data)

print("Mean:", mean)
print("Median:", median)
print("Standard Deviation:", std_dev)
#Output
Mean: 5.5
Median: 5.5
Standard Deviation: 2.8722813232690143

频率分布:频率分布显示每个值或值范围发生在变量中的次数。这有助于理解分布的形状,例如它是对称的还是偏斜的。
为了创建频率分布,我们可以使用PANDAS库。这是一个例子:

import pandas as pd

data = [1, 1, 2, 3, 3, 3, 4, 4, 5, 5, 5, 5, 6, 6, 7, 8, 8, 9, 10]

freq_dist = pd.Series(data).value_counts()

print(freq_dist)

#Output

5     4
3     3
6     2
4     2
1     2
8     2
2     1
7     1
9     1
10    1
dtype: int64

直方图:直方图是频率分布的图形表示,这些频率分布使用条形显示变量中每个值或值范围的频率。直方图提供了数据分布的视觉表示。

框图:框图,也称为盒子和旋风图,提供了变量分布的图形摘要。它们显示了数据的中值,四分位数和离群值。

概率分布:概率分布(例如正态分布)为数据分布提供了数学模型。它们可用于对数据进行预测和检验假设。

描述性统计:描述性统计数据,例如平均值,中位数,模式,范围和标准偏差,提供了中心趋势,分散和变量分布的形状的摘要

双变量分析

双变量分析是一种探索性数据分析(EDA),其中检查了两个变量之间的关系。
双变量分析的目的是确定数据中的任何模式或趋势,并了解两个变量如何相互关联https://www.analyticsvidhya.com/blog/2022/02/a-quick-guide-to-bivariate-analysis-in-python/

有几种可用于执行双变量分析的技术,包括:

散点图 - 散点图是探索两个变量之间关系的视觉方式。一个散点图在二维图上显示两个变量作为点的值,其中一个变量在X轴上表示,另一个变量在y轴上表示。这些点的模式可以提供有关两个变量之间关系的见解。例如,如果这些点聚集在直线周围,则建议变量之间的线性关系。

相关分析 - 相关分析是一种统计技术,用于衡量两个变量之间关系的强度和方向。相关系数范围为-1至+1,值为-1表示完美的负相关,值为+1表示完美的正相关,值为0表示无相关性。相关分析可以帮助确定两个变量之间关系的强度和方向。

协方差分析 - 协方差是一种统计指标,描述了两个变量如何相互关联。协方差类似于相关性,但没有考虑变量的规模。正协方差表明两个变量倾向于一起移动,而负协方差表明两个变量倾向于朝相反的方向移动。

热图 - 热图是使用颜色编码来表示变量值的数据的图形表示。热图可用于通过以颜色编码格式显示相关矩阵来探索两个变量之间的关系。这使我们能够快速识别数据中的模式和趋势。

回归分析 - 回归分析是一种统计技术,用于建模两个变量之间的关系。回归分析可用于根据另一变量的值来预测一个变量的值。例如,我们可以使用回归分析来预测基于广告支出的产品的销售。

通过使用这些技术,我们可以深入了解两个变量之间的关系,并使用此信息为进一步的分析和建模提供信息。

多元分析

多元分析是一种探索性数据分析(EDA),涉及分析三个或更多变量之间的关系。多元分析的目的是了解多个变量如何相互关联,并确定数据https://towardsdatascience.com/multivariate-analysis-going-beyond-one-variable-at-a-time-5d341bd4daca中的任何模式或趋势。

有几种可用于执行多变量分析的技术,包括:

因子分析 - 因子分析是一种统计技术,用于识别多个变量之间关系中的模式。因子分析通过将变量分组为较小的因素来减少它们的数量。

群集分析 - 聚类分析是一种统计技术,用于根据其特征分组相似对象或个体。聚类分析可用于识别数据中的模式并识别个人或对象的亚组。

主成分分析 - 主成分分析(PCA)是一种统计技术,用于将大量变量转换为较小数量的主要组件。 PCA可用于降低数据的维度并确定最重要的变量。

判别分析 - 判别分析是一种统计技术,用于根据其特征将个体或对象分类为两个或多个组。判别分析可用于确定在区分两组最重要的变量。

_CARONICAL RELUSAITATION分析_-典型相关分析是一种统计技术,用于识别两组变量之间的关系。可以使用规范相关分析来识别在解释两组变量之间关系最重要的变量。

通过使用这些技术,我们可以深入了解多个变量之间的关系,并使用此信息来为进一步的分析和建模提供信息。在使用大型数据集或探索变量之间的复杂关系时,多变量分析特别有用。

示例

# Correlation coeffiecient

corr_df = df.corr()
f,ax=plt.subplots(figsize=(20,20))
sns.heatmap(corr_df,annot=True,fmt=".2f", ax=ax,linewidths=0.5,linecolor="yellow")
plt.xticks(rotation=45)
plt.yticks(rotation=45)
plt.title('Correlations coefficient of the data')
plt.show()

探索性数据分析的步骤

EDA通常以几个步骤进行,其中包括:

  • 数据收集:这涉及收集相关数据进行分析。可以从各种来源收集数据,包括公共数据集,调查和数据库。

  • 数据清洁:此步骤涉及检查缺少数据,错误和离群值。通过删除重复项,纠正数据输入错误并填写缺失值来清洁数据。

  • 数据可视化:此步骤涉及创建可视化以识别数据中的模式和关系。常见的可视化技术包括散点图,直方图和框图。

  • 数据转换:此步骤涉及转换数据以使其更适合分析。这可以包括归一化,缩放和标准化。

  • 数据建模:此步骤涉及创建模型来描述变量之间的关系。模型可以很简单,例如线性回归或复杂的模型,例如决策树或神经网络。

数据采集

EDA的第一步是收集相关数据进行分析。可以从各种来源收集数据,例如公共数据集,调查和数据库。在Python中,您可以使用Pandas之类的库来读取和操纵数据。

请参见下面的示例:

#the pyforest library helps reduce listing multiple import statements

import pyforest

# Read data from a CSV file
df= pd.read_csv('IT Salary Survey EU  2020.csv')
df.head()

将数据放入熊猫数据框架中后,您可以开始使用各种工具和功能来探索它。

数据清洁

清洁数据是EDA的第二阶段。
数据清洁是探索性数据分析(EDA)的重要一步,因为它确保数据正确,完整且可靠。
数据集中识别和纠正错误,不一致和缺失值的过程称为数据清洁。
Pandas和Dask库可用于清洁数据。

数据清洁是探索性数据分析(EDA)的关键步骤,因为它有助于确保数据准确,完整和可靠。数据清洁涉及数据集中识别和纠正错误,不一致和缺失值。

EDA中的数据清洁过程通常涉及以下内容:

  • 数据检查:在此步骤中,对数据进行视觉检查以识别任何明显的错误或不一致之处,例如缺失值,离群值或不正确的数据类型。

  • 处理缺失值:可以通过删除行或以适当的估计值(例如均值或中位数)填充缺失值来处理丢失值。

  • 处理离群值:离群值是与数据集中其他数据点显着不同的数据点。可以通过将其从数据集中删除或转换数据以减少异常值的影响来处理异常值。

  • 归一化:归一化是转换数据的过程,使其遵循标准分布。这可以帮助减少异常值的影响并更容易比较数据点。

  • 验证:数据验证涉及检查数据以确保其满足分析的要求。这包括检查错误,不一致以及其他可能影响结果有效性的问题。

  • 转换:数据转换涉及将数据转换为适合分析的形式。这可以包括汇总数据,创建新变量或将变量转换为不同的格式。

总体而言,数据清洁是EDA的重要一步,因为它可以确保数据准确,可靠并且适合分析。
通过清洁数据,分析师和数据科学家可以根据数据获得宝贵的见解并做出明智的决定。

示例:

# Displaying the info and the last columns, rows of the dataset
df.tail()
df.info

# Check for missing values
data.isnull().sum()

# Fill in missing values
data.fillna(data.mean(), inplace=True)

# Remove duplicates
data.drop_duplicates(inplace=True)

在上面的代码中,我们首先使用 iSnull()方法检查数据中的任何缺失值,该方法返回一个布尔数据框架,指示哪些单元格是无效的或缺少的。然后,我们使用 fillna()方法将任何缺失的值替换为列的平均值。最后,我们使用 drop_duplicates()方法来删除数据框中的任何重复行。

数据可视化

EDA的第三步是创建数据的可视化。
数据可视化是探索性数据分析(EDA)的重要组成部分。它涉及创建数据的图形表示,使其更容易理解和解释。

数据可视化有助于识别数据中可能难以辨别的数据中的模式,趋势和关系。可以使用Matplotlib和Seaborn等库来创建Python中的可视化。

总的来说,数据清洁是EDA的关键步骤,因为它有助于确保数据准确,可靠且适合分析。通过清洁数据,分析师可以获得宝贵的见解并根据数据做出明智的决定。

可以在EDA中使用多种类型的数据可视化,包括:

散点图:使用散点图可视化两个连续变量之间的关系。他们展示了一个变量的值与另一个变量的值有关。

直方图:直方图可视化单个连续变量的分布。他们显示了该变量的值如何分布在一系列值中。

条形图:条形图用于可视化分类变量的分布。它们显示了每个类别的频率或比例。

框图:框图用于可视化连续变量的分布。它们显示了变量的中值,四分位数和异常值。

热图:使用热图来可视化两个分类变量之间的关系。它们显示了类别的每种组合的频率或比例。

线图:线图用于可视化连续变量的趋势。

创建数据可视化时,重要的是为要分析的数据选择正确的可视化类型。可视化应清晰易理解,标签和轴应被清楚地标记。

示例:

import matplotlib.pyplot as plt
import seaborn as sns

# Scatter plot
plt.scatter(data["Years of experience in Germany"], data["Age"])
plt.xlabel("Years of experience in Germany")
plt.ylabel("Age")
plt.show()

# Histogram
sns.histplot(data["Years of experience in Germany"], bins=10)
plt.xlabel("Years of experience in Germany")
plt.ylabel("Frequency")
plt.show()

# Box plot
sns.boxplot(x=data["group"], y=data["value"])
plt.show


该播放列表旨在遵循先前的播放列表,以学习用于数据分析的Python编程。如果您以前从未编辑过(或有很大的...

favicon youtube.com

数据转换

EDA中的第四步是转换数据以使其更适合分析。这可以包括归一化,缩放和标准化。您可以使用Scikit-Learn等库来转换数据。

from sklearn.preprocessing import StandardScaler

# Standardize the data
scaler = StandardScaler()
scaled_data = scaler.fit_transform(data)

# Normalize the data
from sklearn.preprocessing import

结论

探索性数据分析是数据分析中的重要过程,它为数据提供了见解,识别潜在问题并准备数据以进行进一步分析。在本文中,我们介绍了EDA中涉及的步骤,包括数据收集,清洁,可视化,转换和建模。

数据清洁涉及识别和纠正数据中的错误,而数据可视化可以使用直方图,框图和密度图等技术来识别数据中的模式和关系。数据转换,包括归一化,缩放和标准化,准备用于建模的数据。

EDA是数据分析的关键步骤,可以帮助识别数据中的潜在问题,例如缺失值,异常值和异常,并提供对变量之间关系的见解。这使研究人员和分析师能够做出明智的决策,并获得可用于解决问题或做出预测的见解。

总的来说,EDA过程是迭代的,这意味着可以根据先前的分析结果对分析进行完善或扩展。 EDA是数据分析过程中的重要步骤,必须确保数据清洁并准备进一步分析至关重要。

有关EDA的更多信息,请在GitHub上查看我的存储库,在此我对我在Kaggle上找到的“ IT薪金调查”数据集进行了探索性数据分析。
这是GitHub repo https://github.com/Yankho817/MyProjects的链接。