Python中的探索性数据分析(EDA)。

326 阅读5分钟

简介

探索性数据分析是一种评估或理解数据的方法,以便得出洞察力或关键特征。EDA可以分为两类:图形分析和非图形分析。

EDA是任何数据科学或机器学习过程中的一个重要组成部分。你必须探索数据,了解变量之间的关系,以及数据的基本结构,以便在此基础上建立一个可靠和有价值的输出。

本教程中的EDA阶段将使用Python编程语言进行。

数据集

在这篇文章中,我们将进行客户流失预测。当客户停止与一家公司做生意时,这被称为客户流失或客户流失。

由于获得一个新客户的成本通常比保持一个现有客户的成本要高,所以了解客户流失对公司的成功至关重要。因此,流失率分析是更好地了解客户的第一步。

为了更深入地掌握我们的数据,我们将深入进行探索性数据分析(EDA)。数据集可在此获得。

导入Python库

首先,我们需要导入分析所需的所有库,即用于处理数据的Pandas 用于数值计算的Numpy 用于可视化的Matplotlib和Seaborn

.EDA in python

在Python中加载数据集

现在,将数据集加载到pandas数据框中。

基于结构化的数据探索

这是EDA的第一部分,对数据框架的结构、列和数据类型进行评估。这一步的目标是对数据集有一个大致的了解。

显示前5个观察值

Structured based Data Exploration

我们得到的输出为。

EDA in python

显示最后5个观察值

输出结果为:显示最后5个观察值

EDA in python

显示变量和观测值的数量

这可以用df.shape来完成,它给出的输出是一个有两个值的元组。第一个值计算数据点的数量,第二个值代表数据集中的特征数量。

在这个数据框架中,有7043行和21列。

显示变量名称和它们的数据类型

Variable Names and Data Types

计算每个变量的非遗漏值的数量

df.count()计算非空值的数量。它给出了我们的数据集中缺失值的概念。

EDA in python

描述性统计

现在,为了了解更多关于数据集的特征,我们将使用df.describe(),它默认给出数据框中所有数字特征的统计信息。

Descriptive Statistics

df.describe()给出了一些基本的统计细节,比如计数、百分位数、平均值、标准差,以及5点总结,包括数字特征的最小值、第一四分位数、第二四分位数、第三四分位数和最大值。

***那么,分类特征呢?


通过提供一个include参数并将其赋值为 "all",我们也可以得到所有分类特征的摘要。

Categorical Features | EDA in python

显示数据集的完整摘要

***df.info()***给出了数据框架的摘要,包括数据类型、形状和存储空间。

Summary of Dataset

处理缺失值

缺失值 是数据集中的未知值。为了成功地管理数据,理解缺失值的概念是很重要的。第一步是检测数据集中的缺失值,然后用适当的方法处理它们。

检测缺失值

Handling Missing Values

  • 使用error = 'coerce'将用NaN替换所有非数字值。

  • isnull().sum()返回数据集中缺失值的数量。

我们在'Total Charges'列中有11个缺失值。现在,我们将看到不同的方法来处理它们。

缺失值处理

要处理缺失值,我们可以使用以下方法。

  • 删除变量

  • 剔除观察值

  • 平均值归纳或中位数归纳或模式归纳

对于变量 "总费用",只有11个值是缺失的。由于这些数据记录相对于整个数据集来说非常少,我们可以放弃它们。

完成了。让我们检查一下!

Missing value treatment

使用图表进行分析

数据可视化

让我们把目标变量即流失率可视化。它有两个类别--是或不是。

Data Visualisation | EDA in python

该图显示了流失者和非流失者之间的数据类别不平衡。为了解决这个问题,重新取样将是一个合适的方法。

EDA in python

Categorical variable ****EDA in python

EDA in python

EDA in python

总费用是每月费用的总和。因此,让我们把它们的关系可视化。

Relationship between Monthly charges and Total Charges

  • 这里我们可以看到,总费用和月费是高度相关的。

在这里,我们试图直观地看到与合同有关的流失率。

Customer Contract Distribution

  • 大约75%的月度合同客户选择退出,而一年期合同的客户有13%,两年期合同的客户有3%。

这是对支付方式的可视化。它有四个类别。

EDA in python

Payment Method Distribution | EDA in python

  • 电子支票的用户最多。

这张图显示了与受抚养人有关的流失率。

Dependents Distribution | EDA in python

  • 没有家属的客户更有可能流失。

该图显示了与合作伙伴有关的流失率。

Churn distribution

  • 没有合作伙伴的客户更有可能流失。

总结

在这篇文章中,我们试图分析客户行为。首先,我们在基本层面上探索了数据集。我们寻找缺失值,并通过删除这些值来处理它们。然后,我们使用Pandas DataFrame对样本数据进行了探索性数据分析,绘制了不同的图表,如计数图、饼图、线图和Histplot。由此,我们得到了一些有用的见解,比如。"签订月度合同的客户流失率最高","总费用和月度费用高度相关",等等。这样,我们对数据集进行EDA探索,从中提取所有可能的见解,这有助于模型的建立,也有助于更好的决策。

然而,这只是对EDA工作方式的基本概述;你可以深入了解,并在更大的数据集上尝试这些阶段。

你可以在LinkedIn上与我联系。