大家好,我是小寒。
今天给大家带来一篇 探索性数据分析(EDA) 案例分享。如果觉得不错,可以多多分享。
什么是探索性数据分析
探索性数据分析 (EDA) 是任何数据科学或数据分析项目的重要组成部分。EDA 背后的理念是在构建任何模型之前 「检查和了解数据。」
它查看数据集以「发现异常值、模式和关系,并根据对给定数据集的理解形成假设。」
以下内容是 EDA 的一部分:
-
从数据集中获得最大的洞察力 -
揭开底层结构 -
从数据集中提取重要特征 -
检查异常值 -
测试假设
EDA 是必不可少的,因为在动手之前「了解问题陈述和数据特征之间的各种关系是一种很好的做法。」
为什么 EDA 对 ML 项目很重要?
EDA 使理解数据集的结构变得容易,使数据建模更容易。 EDA 的主要目标是清洗数据,它有助于识别不正确的数据点,因此可以很容易地从数据集中删除它们。
从技术上讲,EDA 的主要动机是:
-
检查数据分布 -
处理缺失值和异常值 -
删除重复数据 -
编码类别变量 -
规范化和缩放
「探索性数据分析案例」
问题陈述:
我们需要对给定的 Lead Scoring 数据集执行 EDA,并做出尽可能多的推断。
数据集解释
我们可以在 Kaggle 上获得此数据集(https://www.kaggle.com/code/ashydv/lead-scoring-logistic-regression/data?select=Leads.csv)。
该数据集由各种属性组成,如潜在客户来源、网站上花费的总时间、总访问量、上次活动等,这些属性可能对最终决定潜在客户是否转换有用。
原始数据集共包含 37 列和 9240 行。为了简化,我们这里只考虑最重要的特征,这些特征是在对原始数据执行 EDA 后提取的。
本文所使用的特征说明如下:
「变量」 | 「描述」 |
---|---|
Prospect ID | 用于识别客户的唯一 ID。 |
Lead Origin | 将客户识别为潜在客户的来源标识符。包括API、登陆页面提交等。 |
Lead Source | 引流的来源。包括谷歌、自然搜索、Olark 聊天等。 |
Converted | 目标变量。指示潜在客户是否已成功转换。 |
Time Spent on Website | 客户在网站上花费的总时间。 |
Last Activity | 客户执行的最后一项活动。包括打开的电子邮件、Olark 聊天对话等。 |
Specialization | 客户之前工作的行业领域。包括 “ Select Specialization ” 级别,这意味着客户在填写表格时没有选择此选项。 |
What is your current occupation | 指示客户是学生、失业者还是就业者。 |
数据准备
加载数据集
通过 pandas 的 read_csv 方法来读取 csv 文件。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# Loading Dataset
data = pd.read_csv('Leads.csv')
# List of all the columns, to be dropped from the original data:
drop_list = ['How did you hear about X Education',
'Lead Profile','Asymmetrique Activity Index',
'Asymmetrique Activity Score',
'Asymmetrique Profile Index',
'Asymmetrique Profile Score',
'Lead Number',
'What matters most to you in choosing a course',
'Search',
'Magazine',
'Newspaper Article',
'X Education Forums',
'Newsp