探索性数据分析EDA(一)——变量识别与分析

前言

探索性数据分析(Exploratory Data Analysis,EDA) 是学习数据分析、机器学习最开始的第一步。

在过去的学习中多少都有涉及到EDA的内容,但是一直都是零零散散,没有一个系统性概括性的笔记。这篇内容是基于A Comprehensive Guide to Data Exploration 翻译搬运过来。作者在文章中比较系统地概括了EDA的内容,十分适合初学者学习。除了原作者的内容,我还整合了自己的学习笔记、以及网上找到的学习资料。

这一系列笔记会根据处理步骤分成几篇,会在之后陆续更新:
(一)变量识别与分析:讲解第1~3步骤;
(二)缺失值处理:讲解第4步骤,包括缺失值的出现的原因及对应的处理方法;
(三)异常值处理:讲解第5步骤,异常值的原因、如何找出并处理异常值;
(四)特征工程:最后第6~7步骤,简略说明特征工程的概念和一些常用的方法。

PS:有任何翻译错误或内容补充,欢迎大家在评论区留言指出,欢迎一起讨论~

1.数据探索和预处理的步骤

处理步骤:
1)变量识别 (Variable Identification)
2)单变量分析 (Univariate Analysis)
3)双变量分析(Bi-variate Analysis)
4)缺失值处理 (Missing values treatment)
5)异常值处理(Outlier treatment)
6)变量转换(Variable transformation)
7)变量构造 (Variable creation)

1)变量识别 (Variable Identification)

首先确认预测变量(Predictor)和目标变量(Target)是什么。预测变量也是Input,是用于分析建模的数据集,目标变量是Output,即最后的结果输出值。

例子: 我们利用下面的例子来预测学生是否玩板球。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tgH9bQFB-1595997323200)(evernotecid://FC208A75-36D9-4612-B478-B8374AA007D6/appyinxiangcom/26051784/ENResource/p595)]
变量如下图:
1)变量类别(Type of Variable) :预测变量是性别(gender)、之前考试成绩(Prev_Exam_Marks)、身高(Height)、体重(Weight);目标变量是是否玩板球,这里用0和1代表是或否。
2)数据种类(Data Type):字符数据(学生ID、性别);数值数据(成绩、体重身高、玩板球)
3)变量类别(Variable Category)

  • 分类变量是说明事物类别的一个名称,其取值是分类数据。如“性别”就是一个分类变量,其变量值为“男”或“女”;“行业”也是一个分类变量,其变量值可以为“零售业”、“旅游业”、“汽车制造 业”等。
  • 连续变量在一定区间内可以任意取值的变量叫连续变量,其数值是连续不断的。
  • 这里的分类变量是性别、是否玩板球;连续变量是成绩、身高体重就是连续变量。在这里插入图片描述

2)单变量分析 (Univariate Analysis)

单变量分析,即分析单个变量的基本特征,这里我们按照变量类别来分析。分析数据时,可以先从目标变量开始

2.1)连续型变量

数值特征(Numerical features)比如收入情况,降雨量等用数字表示的特征,一般情况下会在一定区间内分布。

箱型图、直方图

一般情况下需要看数据的中心趋势(central tendency)和分布情况(Spread)。可参考统计学中的描述性分析:常用的有平均数、中位数、众数、方差、峰值、偏度。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MFOY7Tw9-1595997323211)(evernotecid://FC208A75-36D9-4612-B478-B8374AA007D6/appyinxiangcom/26051784/ENResource/p597)]

2.2)分类型变量

也叫分类特征(Categorical features)。 序数特征(Ordinal features) 是分类特征中包含一定顺序的变量(如家属人数、教育程度、财产范围)

直方图、频率表

直方图是最简单常用的可视化方法。
频率表可以用来理解每个类别的分布,还可以使用百分数来表现占比情况。

3)双变量分析(Bi-variate Analysis)

双变量分析,是为了找出两个变量之间的关系。变量可以有多种组合分析,比如连续型之间、分类型之间、分类变量和连续变量。PS:可以分析目标变量和各个特征之间的关系。

3.1)连续型变量之间

散点图

  • 使用散点图分析两个变量之间是否相关。            [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-khFVtZU1-1595997323212)(evernotecid://FC208A75-36D9-4612-B478-B8374AA007D6/appyinxiangcom/26051784/ENResource/p598)]

相关系数(Correlation)

  • 计算相关系数(Correlation),来确定变量之间的关系。            
    • 公式:Correlation = Covariance(X,Y) / SQRT( Var(X)* Var(Y))
    • 相关系数等于1时,为正相关;等于0时表示没有相关性;等于-1时表示负相关

3.2)分类变量之间

双向频率表(Two-way frequency table)

也还是常用的频率表,横轴一个特征,数周一个特征;计算每个类别下的频率和百分比。

加粗样式

堆积柱形图 (Stacked Column Chart)

  • 显示数量(中间图):可以看到每个分类的数量分布。
  • 显示百分比(最右侧图):显示每个分类的百分比,可以看到每个分类对百分比的影响。
    在这里插入图片描述

卡方检验 Chi-Square Test

卡方检验可以用来检验变量之间是否有显著的关系;同时,它测试了变量中是否有足够有力的证据证明大的总体的关系。
卡方检验师基于期望值和观察值在一个或多个类别的双向表中的频率不同,它返回了可能的卡方分布以及自由度。

  • P为0时,意味着两个类别变量是相互依赖的;
  • P为1时,则为两个变量是独立的。
  • P<0.05时,意味着两个变量在95%的自信区间内显著相关。相关学习链接

3.3)分类变量和连续变量

箱型图

按类别画箱型图。如下图,统计了一周的睡眠时间。每天的睡眠时间是连续的数值变量,时间是按一周7天,7个分类变量。
在这里插入图片描述

Z检验/T检验 (Z-Test/ T-Test):

可以测试了两个组群的平均值是否有不同,从而确认两个变量是否有关系; 比如测试人均收入是否受到性别影响。

  • Z检验是一般用于大样本(即样本容量大于30)
  • T检验用于样本含量较小(例如n < 30)

方差分析 (F检验/ANOVA)

方差分析(Analysis of Variance,简称ANOVA),又称“变异数分析”或“F检验”。检验多个总体均值是否相等,通过分析观察数据的误差判断个总体均值是否相等。

  • 单因素方差分析
  • 多因素方差分析:
    • 研究两个及两个以上控制变量是否对观测变量产生显著影响。多因素方差分析不仅能够分析多个因素对观测变量的独立影响,更能够分析多个控制因素的交互作用能否对观测变量的分布产生显著影响,进而最终找到利于观测变量的最优组合。
    • 例如:研究不同品种、不同施肥量是如何影响农作物产量的,并进一步研究哪种品种与哪种水平的施肥量是提高农作物产量的最优组合。(参考:百度百科

python参考代码

使用数据集train做分析:
查看数据集中每列的列名print(train.columns)
查询所有特征类型:print(train.dtypes)
了解数据基本特征data.describe()
*
画数据集 train中A列的分布图
直方图 sns.distplot(train['A'])
箱型图 train['A'].plot.box()
柱状图: train['A'].value_counts().plot.bar()
*
双向频率表 & 堆积柱形图
—— 计算频率表 Gender=pd.crosstab(train['Gender'],train['Loan_Status'])
——显示百分比的堆积图Gender.plot(kind="bar", stacked=True)
——显示数量的堆积图:Gender.div(Gender.sum(1).astype(float),axis=0).plot(kind='bar',stacked=True)
*
计算相关系数&热力图:
——计算系数:matrix=train.corr()
——热力图 f, ax=plt.subplots(figsize=(9, 6)) sns.heatmap(matrix,vmax=.8,square=True,cmap='BuPu')

  • 4
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值