首页 > 其他分享 >探索性数据分析 (EDA) 简介

探索性数据分析 (EDA) 简介

时间:2024-10-20 21:49:05浏览次数:10  
标签:数据分析 EDA 变量 探索性 缺失 数据 我们

文章目录

一、介绍

探索性数据分析是研究或理解数据并提取洞察数据集以识别数据模式或主要特征的过程。EDA 通常分为两种方法,即图形分析和非图形分析。

EDA 非常重要,因为在开始工作之前首先了解问题陈述和数据特征之间的各种关系是一种很好的做法。

在本文中,EDA 注释对于总结发现至关重要。EDA 有助于有效地发现模式、趋势和见解。“eda notes”和“eda”是指导分析过程的关键词,可确保以全面、有条理的方式进行数据探索。

二、探索性数据分析 (EDA)

从技术上讲,EDA 的主要目的是

  • 检查数据分布
  • 处理数据集的缺失值(每个数据集最常见的问题)
  • 处理异常值
  • 删除重复数据
  • 对分类变量进行编码
  • 规范化和缩放
    注意——如果您不熟悉上述某些术语,请不要担心,我们将详细了解每一个术语。

三、探索性数据分析的类型

3.1 单变量分析

单变量分析侧重于一次分析单个变量。它旨在描述数据并发现模式,而不是建立因果关系或关系。使用的技术包括:

描述性统计数据(平均值、中位数、众数、标准差等)
频率分布(直方图、条形图等)

3.2 双变量分析

双变量分析探索两个变量之间的关系。它有助于发现变量对之间的相关性、关系和依赖关系。技术包括:

  • 散点图
  • 相关性分析

3.3 多元分析

多元分析将双变量分析扩展为包括两个以上的变量。它侧重于理解多个变量之间复杂的相互作用和依赖关系。技术包括:

  • 热图
  • 散点图矩阵
  • 主成分分析(PCA)

四、理解 EDA

为了了解探索性数据分析所涉及的步骤,我们将使用 Python 作为编程语言和 Jupyter Notebooks,因为它是开源的,它不仅是一个出色的 IDE,而且非常适合可视化和演示。

步骤 1
首先,我们将导入所需的所有 Python 库,包括用于数值计算和科学计算的NumPy 、用于处理数据的Pandas以及用于可视化的Matplotlib和Seaborn。

步骤 2
然后我们将数据加载到Pandas数据框中。为了进行分析,我们将使用“世界幸福报告”的数据集,该数据集包含以下列:人均 GDP、家庭、预期寿命、自由、慷慨、信任政府腐败等,以描述这些因素对评估幸福感的贡献程度。

步骤3
我们可以通过使用head()方法检查几行来观察数据集 ,该方法返回数据集的前五条记录。

步骤4
利用形状,我们可以观察数据的维度。

步骤5
info()方法显示数据的一些特征,例如列名、列的非空值数量、数据的 Dtype 和内存使用情况。
Python代码:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

happinessData = pd.read_csv('happiness.csv')
print(happinessData.head())
print("-------------------------")
print("-------------------------")
print(f"Shape of the data: {happinessData.shape}")
print("-------------------------")
print("-------------------------")
print(happinessData.info())

由此,我们可以观察到,我们拥有的数据没有任何缺失值。在这种情况下我们非常幸运,但在现实生活中,数据通常有缺失值,我们需要处理这些缺失值才能使我们的模型准确工作。(注意 - 稍后,我将向您展示如果数据中有缺失值,如何处理)

第 6 步
我们将使用describe()方法,它显示每个数值特征(int64 和 float64 类型)的基本统计特征:非缺失值的数量、平均值、标准差、范围、中位数、0.25、0.50、0.75 四分位数。
在这里插入图片描述
步骤7
处理数据集中的缺失值。幸运的是,此数据集没有任何缺失值,但现实世界并不像我们的情况那么简单。

因此我故意删除了一些值只是为了描述如何处理这种特殊情况。

我们可以通过以下命令检查数据是否包含空值
在这里插入图片描述
我们可以看到,“幸福感分数”和“自由度”特征各有 1 个缺失值。

如何使用一些技巧处理缺失值
删除缺失值——如果数据集很大而缺失值很少,那么我们可以直接删除这些值,因为它不会产生太大影响。
用平均值替换——我们可以用平均值替换缺失值,但如果数据有异常值,则不建议这样做。
用中值替换——我们可以用中值替换缺失值,如果数据有异常值,建议这样做。
用模式值替换——对于分类特征,我们可以这样做。
回归——可以使用数据集中的其他细节来预测空值。
对于我们的情况,我们将用中值替换缺失值来处理缺失值。

幸福感中位数
现在,我们可以再次检查缺失值是否已被处理。
在这里插入图片描述
现在我们可以看到我们的数据集现在没有任何空值。

步骤8
我们可以检查数据集中的重复值,因为重复值的存在会影响我们的 ML 模型的准确性。
在这里插入图片描述
我们可以使用drop_duplicates()删除重复值
在这里插入图片描述
我们可以看到重复值现在已经被处理了。

步骤9

处理数据中的异常值,即数据中的极值。我们可以使用箱线图找到数据中的异常值。
在这里插入图片描述
从上面的箱线图中我们可以看出,数据的正常范围位于块内,异常值则用图最末端的小圆圈表示。

因此,为了处理它,我们可以删除异常值或使用IQR(四分位距法)替换异常值。

在探索性数据分析数据集中,为了识别模式,IQR 被计算为数据的第 25 百分位数和第 75 百分位数之间的差值。百分位数可以通过对特定索引的选择值进行排序来计算。IQR 用于通过定义样本值的限制来识别异常值,这些限制是 IQR 的因子 k。因子 k 的常见值为 1.5。
在这里插入图片描述
现在我们可以再次绘制箱线图并检查异常值是否已被处理。
在这里插入图片描述
第 10 步

规范化和缩放——数据规范化或特征缩放是标准化数据特征范围的过程,因为范围可能有很大差异。所以我们可以使用 ML 算法预处理数据。因此,我们将使用StandardScaler来处理数值,其公式为x-mean/std 偏差。
在这里插入图片描述
我们可以看到,“幸福指数”一栏已经标准化了。

步骤11
我们可以使用corr()方法找到数据不同列之间的 成对相关性。(注意 - 所有非数字数据类型列将被忽略。)

happinessData.corr() 用于查找数据框中所有列的两两相关性。任何“nan”值都会被自动排除。

结果系数是 -1 到 1 之间的值(含 -1 和 1),其中:

1:总正线性相关
0:没有线性相关性,两个变量很可能不会互相影响
-1:总负线性相关性
皮尔逊相关系数是函数“corr”的默认方法。

现在,我们将使用 Seaborn 创建热图来可视化数据不同列之间的相关性:
在这里插入图片描述
从上面的相关性热图中我们可以看出,以下两个因素之间存在很高的相关性:

幸福指数 – 经济(人均 GDP)= 0.78
幸福指数 – 家庭 = 0.74
幸福指数 – 健康(预期寿命) = 0.72
经济(人均 GDP)– 健康(预期寿命)= 0.82
步骤12
现在,我们将使用 Seaborn 通过回归图来可视化经济(人均 GDP)与幸福指数之间的关系。我们可以看到,随着经济的增长,幸福指数也会增加,并呈现出正相关关系。
在这里插入图片描述
现在,我们将使用回归图来直观地展示家庭和幸福指数之间的关系。
在这里插入图片描述

现在,我们将使用回归图来直观地展示健康(预期寿命)和幸福指数之间的关系。我们可以看到,幸福取决于健康,也就是说,健康状况越好,一个人就越幸福。
在这里插入图片描述
现在,我们将使用回归图来可视化自由度和幸福感得分之间的关​​系。我们可以看到,由于这两个参数之间的相关性较小,因此图表更加分散,两者之间的依赖性较小。
在这里插入图片描述
我希望我们现在都对如何执行探索性数据分析(EDA)有一个基本的了解。

因此,以上是我个人遵循的探索性数据分析步骤,但还有各种其他图表和命令,我们可以使用它们来进一步探索数据。

五、结论

探索性数据分析 (EDA) 包括通过单变量、双变量和多变量分析技术检查数据集以发现模式。这些方法依次集中于单个变量、配对变量和多个变量。EDA 还涉及处理缺失值,通常使用均值或中位数插补和预测建模等方法来解决缺失值问题,以确保数据完整性。

标签:数据分析,EDA,变量,探索性,缺失,数据,我们
From: https://blog.csdn.net/gongdiwudu/article/details/142927633

相关文章

  • 八,System、Date 和 SimpleDateFormat (与时间相关)
    Java中的System、Date和SimpleDateFormat类详解在Java中,System、Date和SimpleDateFormat类是处理系统操作和日期时间的基础类。这些类提供了丰富的方法来执行系统级操作、处理日期和格式化日期时间。System类System类是Java中的一个工具类,提供了多种与系统相关的......
  • 【大数据分析与挖掘算法】matlab实现——DBSCAN聚类方法
    实验六:DBSCAN聚类方法一、实验目的掌握DBSCAN聚类方法的基本理论,通过编程对实例进行聚类。二、实验任务对DBSCAN聚类方法进行编码计算,实例如下:三、实验过程1.DBSCAN聚类模型介绍:2.具体步骤介绍:四、实验结果实现平台:Matlab2022A实验代码:%示例数据data=......
  • 【命令操作】信创终端系统上timedatectl命令详解 _ 统信 _ 麒麟 _ 方德
    往期好文:【功能介绍】麒麟桌面系统快速识别软件包依赖顺序的方法Hello,大家好啊!今天给大家带来一篇关于如何在信创终端系统上使用timedatectl命令的详细介绍。timedatectl是Linux系统中非常实用的时间管理工具,它允许用户通过命令行轻松设置系统时间、日期以及时区,特别适用......
  • 毕业设计:python股票推荐系统 数据分析可视化 协同过滤推荐算法 Django框架(源码+论文)✅
    python股票推荐系统数据分析可视化协同过滤推荐算法Django框架(源码)✅1、项目介绍技术栈:python、django框架、requests、BeautifulSoup、协同过滤算法、Echarts可视化、HTML登录注册界面:用户可以注册新账号并登录系统。个人信息修改:用户可以修改个人信息,如用户名、......
  • kaggle数据集某咖啡店的营销数据分析
    因为还处于数据分析的学习阶段(野生Python学者),所以在kaggle这个网站找了两个数据集来给自己练练手。准备工作importpandasaspdimportosimportmatplotlib.pyplotaspltimportnumpyasnpfromrandomimportchoice获取数据这里我下载了两个数据集第一个是关于咖啡的......
  • 提升SQL技能,掌握数据分析
    提升SQL技能,掌握数据分析在今天这个数据驱动的世界,掌握SQL(结构化查询语言)不仅是一项技术能力,更是一种职业竞争力。想象一下,如果你能像魔法师一样轻松从庞大且复杂的数据集中提取出有用的信息,直观呈现给团队和管理层,那你就不仅是在做数据分析,更是在为决策提供支持。那么,如何......
  • 大数据毕业设计基于python的京东食品数据分析和可视化django+可视化大屏分析
    文章目录前言详细视频演示一、项目介绍二、功能介绍三、核心代码数据库参考四、效果图五、文章目录前言  基于Python的京东食品数据分析和可视化项目涉及多个步骤,包括数据收集、数据清洗、数据分析以及数据可视化。由于直接获取京东食品数据的API可能受限或需要......
  • 基于SpringBoot的汽车行业数据分析可视化与智能决策支持系统(源码+论文)
     目录:目录:博主介绍: 完整视频演示:你应该选择我技术栈介绍:需求分析:系统各功能实现一览:1.注册2.登录部分代码参考: 项目功能分析: 项目论文:源码获取:博主介绍: ......
  • 码城|计算机专业的00后转行数据分析,还有机会吗?【悟空非空也】
    计算机背景学习数据分析是有优势的。数据分析需要一些技术基础,简单点的话,需要会使用Excel,复杂点会用Python进行数据挖掘和数据分析,当然SQL语句一定要会,自己多练习。如果再懂点深度学习,那就更加厉害啦。有计算机底子,学习Python新语言应该也没有什么问题,Python的学习资料有......
  • 常用Python数据分析开源库:Numpy、Pandas、Matplotlib、Seaborn、Sklearn介绍
    文章目录1.常用Python数据分析开源库介绍1.1Numpy1.2Pandas1.3Matplotlib1.4Seaborn1.5Sklearn1.常用Python数据分析开源库介绍1.1NumpyNumpy(NumericalPython)是Python数据分析必不可少的第三方库,Numpy的出现一定程度上解决了Python运算性能不佳的问题,同......