您好,欢迎来到五一七教育网。
搜索
您的当前位置:首页【数据科学导论】第三章·数据预处理

【数据科学导论】第三章·数据预处理

来源:五一七教育网


1. 前言

【数据处理与分析】专栏主要专注于数据处理和数据分析。

专栏中的【数据科学导论】部分是对整个大数据科学所有技术(包括数据处理、数据分析)的一个概论,适用于想要快速入门大数据的友友们🥰🥰~~~

【数据科学导论】整体学习脉络:

2. 为什么要进行数据预处理

数据预处理存在是因为:

1、有 脏数据

2、脏数据不可避免性

3、没有高质量数据,就没有高质量的结果


2.1 脏数据

数据质量的定义(记忆):

  • 完整性
  • 一致性
  • 正确性
  • 可靠性 

不完整:有些数据属性的值丢失或不确定;缺失必要数据,例:缺失学生成绩

不准确:属性值错误,例:成绩 = -10;

噪声数据:包含孤立(偏离期望)的离群 不一致,数据结构有较大差异;

存在数据重复和信息冗余现象:数据需求改动,例,评价等级:“百 分制”与“A, B, C”

脏数据 :在数据挖掘工作中,脏数据是指数据来源不同、不完整、含噪声、不一致的数据

3. 数据预处理分类

分类:

数据清理、数据集成、数据规约、数据变换

目的:

在数据特性以及脏数据存在的前提下,通过上面四个方法来提高数据质量,让数据为我们所使用

4. 数据清理 

目的:提高数据质量,针对数据质量的四个特性提出数据清理的方法。

不一致:删除不一致数据,填充

不正确:噪声处理

不完整:数据填充

总结,数据清理中的方法有:

  1. 数据填充 
  2. 数据删除
  3. 噪声处理

4.1 数据填充

4.1.1 数据缺失的类型

1. 完全随机缺失(Missing Completely at Random, MCAR)

定义:完全随机缺失是指缺失值的出现与任何观测到的或未观测到的变量无关。这意味着缺失的值完全是随机的,任何样本的缺失都不会引起样本的偏倚。

特征

  • 缺失的发生是完全随机的。
  • 例如,一个调查问卷中,有些人可能因为个人原因未回答某个问题,但这与他们的其他回答或特征无关。

影响

  • 在MCAR情况下,数据缺失不会影响样本的无偏性,处理这些缺失值(如删除缺失记录)通常是安全的。
2. 随机缺失(Missing at Random, MAR)

定义随机缺失是指缺失值的出现与观测到的其他变量有关,但与缺失值本身无关。也就是说,缺失的发生可以通过其他可观察到的变量进行解释。

示例

  • 例如,“期末成绩”可能依赖于“平时表现”。如果学生的期末成绩缺失,与他们的平时表现有关,那么这就是随机缺失。
  • 另一个例子是“工资”数据可能与“人群背景”有关。如果某些特定背景的个体不愿意报告其工资,这种缺失是随机的,但与人群背景有关。

影响

  • 在MAR情况下,缺失的数据可能会导致偏倚,尤其是在不加以处理的情况下。然而,使用适当的方法(如插补、模型估计)可以减轻这种偏倚的影响。
3. 非随机缺失(Missing Not at Random, MNAR)

定义非随机缺失是指缺失值的发生与缺失值本身的特征有关。这意味着缺失数据的产生是由该数据本身的属性或变量引起的。

示例

  • 比如在工资调查问卷中,低收入人群可能不愿意提供其工资信息。这种情况下,缺失值与缺失的数据(工资)本身有关,因此是非随机缺失。

影响

  • MNAR会导致样本的显著偏倚,处理这类缺失数据更加复杂,简单的删除或插补方法可能无法解决问题。通常需要更复杂的模型(如结构方程模型)来进行分析。

完全随机缺失:缺失的样本在所有样本中是随机分布的,因此不影响整体样本的分布。

非随机缺失:缺失的样本仅仅和本身的值/属性有关系,不是随机分布的。直接删除会导致整体样本偏倚,同时又不好通过插补、挖掘其他属性等方法来填充。

随机缺失:缺失样本同样也是在整体样本中随机分布,删除不影响整体样本分布。同时该类样本/属性和其他样本/属性存在联系,可以通过其他样本/属性结合插补等方法来修复样本。

从上面分析可以得出结论:

  1. 完全随机缺失:直接数据删除,无法修补
  2. 随机缺失:可以修补,删除也对数据影响不大
  3. 非随机缺失:直接删除影响原本样本的分布,但是不好修补 

数据填充研究重点:随机缺失数据 

4.1.2 数据填充方法

特殊值填充:

  • 空值填充,不同于任何属性值。例,NLP词表补0(保证每个词表长度相同),DL补mask(提高模型泛化能力,不然模型看到所有的输入)
  • 样本/属性的均值、中位数、众数填充

使用最可能的数据填充:

  • 热卡填充(找相似的样本,并就近补齐)
  • K最近距离法(KNN聚类,找最近的K个相似的样本,并加权平均估计样本缺失数据)
  • 利用回归等估计方法(基于数据集建立回归方程模型)
  • 期望值最大化方法(EM算法)

对于EM算法简单解释如下:

1、随机分布参数,根据分布参数对空间中的点进行分类。

2、分类后再分布拟合这两个类别,得到新的两个分布参数。因为新的分布考虑了点在空间中的分布这一信息,因此新的分布参数必然优秀于原本随机的分布参数。

3、再用新的分布参数重新对点进行分类(因为之前那个分类准确度必然低于这个)

4、重复前面的过程。直到分布参数收敛

4.2 处理噪声

 噪声是测量误差的随机部分

  • 包括错误值,
  • 偏离期望的孤立点值

噪声处理的核心:数据平滑

4.2.1 分箱

利用近邻数据对数据进行平滑,步骤如下:

1. 排序数据,并将他们分到等深的箱中

2. 按箱平均值平滑、按箱中值平滑、按箱边界平滑等(离散化)

4.2.2 回归

回归模型可以做缺失值填充,也可以做数据平滑,同个道理,把噪声数据用回归模型预测数据替代

步骤如下:

1、将噪声数据去除

2、利用剩下的数据建立回归模型

3、利用回归模型预测噪声点处的数据,用预测数据替代噪声数据

4.2.3 聚类

1、利用k-means等聚类算法,聚合出几个类别

2、不在聚类类别中的值都是噪声

3、判断噪声离哪个聚类类别近,用该聚类类别的中心代替噪声值

5. 数据集成

定义:将多个数据源的数据整合到一个一致的数据存储中。

目的:获得更多更完整的数据,获得更全面的数据画像,如用户画像等。

问题:

数据集成后面临的最大问题是不同格式、来源的数据可能是相同的,数据集成存在强冗余

例子:

1、用户的个人信息出现在多个app中;

2、用户的爱好在多个app中重复

因此,数据集成解决的问题就是数据冗余问题

冗余问题包括:

  • 冗余检测(有序冗余检测、无序冗余检测)
  • 冗余删除

5.1 冗余检测 

5.1.1 无序冗余检测

5.1.1.1 无序冗余属性检测

Pearson相关系数 

 Pearson相关系数:适用在属性值连续时的相关性判断

皮尔逊相关系数:本质就是协方差,用来衡量属性间的关系 

卡方检验

原假设:A和B属性相互,并在假设下算出期望频度

思想核心:计算真实频度和假设下的频度的差距,若差距很大,那么拒绝原假设的概率很大

卡方检验:是一种数学方法,不是一个衡量属性。卡方检验本质是在衡量理性频数和实际频数之间的关系,从而判断理性是否符合现实。 


上面两个方法都用了归一性、容量固定原则。

  • 皮尔逊除以方差、卡方除以理论频数。
  • 皮尔逊除以容量大小,卡方检验不需要,因为它是查表而不是算具体值
5.1.1.2 无序冗余数据检测

前提:如果两个数据很接近,那么两个数据就是相似的,就存在数据冗余。

如何判断接近?用如下策略:

  • 数据距离(把数据看作向量空间中的点
  • 数据相似度(把数据看作向量
2.1.2.1 数据距离

各种距离:

  • 欧几里得距离
  • 曼哈顿距离
  • 切比雪夫距离
  • 明氏距离(明氏距离是其他距离的整合)
  • 汉明距离
  • 马氏距离

最常用的距离是:马氏距离 (欧氏距离增强版)

马氏距离:

马氏距离实际上是欧氏距离在多变量下的“加强版”,用于测量点(向量)与分布之间的距离。

给定一个数据集,假设数据点  x 和 y 是数据集中的两个点,数据集的均值向量是μ,协方差矩阵是Σ。

协方差矩阵的形式如下:

其中x,y不是数据点,而是两个属性 

直观解释:

如果数据集中的变量高度相关,则协方差将很高。除以较大的协方差将有效缩短距离(或乘以协方差矩阵的逆数)。

同样,如果X不相关,则协方差也不高,距离也不会减少太多。

因此,它有效地在欧氏距离中考虑了数据的分布特点来判断数据点的相似程度。

汉明距离:

2.1.2.2 数据相似度 

一、匹配相似度

二、余弦相似度

  • 简单匹配相似度 适用于:

    • 关心的是所有特征(无论是缺失还是存在)的匹配。
    • 二元类型的特征。
  • Jaccard 相似度 适用于:

    • 集合数据:如果你的数据可以视为集合(如文档中存在的单词,或用户收藏的兴趣),Jaccard 相似度非常合适。
    • 常常被用来衡量两个物品或两个用户之间的共同点(共有特征)

5.1.2 有序冗余检测

前面提到的数据冗余检测所针对的数据都是无序数据,也就是说这些数据的特征值之间可以相互更换顺序。

我们提出了:数据距离、数据相似度两个概念去判断数据是否冗余

这两个概念将数据看成不同的事物。前者是向量空间的点;后者是向量。


但是,存在局限性。因为数据的特征之间可能存在次序,所以针对有序数据,我们需要其他方法来检测冗余!!!

主要方法有:

  • 斯皮尔曼相关系数
  • NDCG(归一化折损累计收益)
 5.1.2.1 斯皮尔曼相关系数

和皮尔逊相关系数相比,斯皮尔曼相关系数是等级相关系数

由于仅仅从等级上去计算,没有使用原始值,因此没有线性相关的假设

​ ​

  • 皮尔逊相关系数:适用于线性关系,即要求两个变量的变化是按照一定比例(直线)共同变化的。
  • 斯皮尔曼相关系数:适用于单调关系,不要求是线性关系,可以处理任何形式的单调增加或减少的关系,无论是线性、指数型还是对数型等。
5.1.2.2 NDCG(归一化折损累计收益)

举个例子:

5.2 冗余删除

冗余删除没有特别的操作,就是直接把多余的数据删除即可。

6. 数据规约

6.1 为什么要数据规约

6.2 什么是数据规约

定义:数据规约是组织着手其存储的数据量的过程。

数据规约技术旨在减少原始数据集中的冗余,以便大量原始数据能够更有效地存储为缩减数据。

首先应该强调的是,“数据规约”一词不是自动等同于丢失信息。很多情况下,数据规约仅意味着数据现在以更智能的方式进行存储 – 也许已经过优化过程,并以更实际的配置与相关数据重新组合。

数据规约与也不是一回事,后者是为了精简目的而清除相同数据的多余副本。更准确地说,数据规约结合了数据去重和等不同活动的各个方面,以实现其目标。

6.3 数据规约的类型(只要知道PCA和特征子集选择)

以下是组织可以用来实现数据规约的一些方法:

减小维度

数据维数的概念是整个概念的基础。维数是指分配给单个数据集的属性(或功能)的数量。不过,这里需要权衡 – 维数越大,该数据集所需的数据存储空间就越大。此外,维数越高,数据就越容易变得稀疏,以至于必要的异常值分析变得复杂。

降维可以数据中的“噪音”,使数据更加可视化。小波变换方法就是降维技术的一个典型示例,它通过保持不同分辨率下物体之间的相对距离来帮助压缩图像。

功能提取是数据的另一种潜在转换 – 将原始数据转换为数字功能并与机器学习协同工作。它不同于主成分分析 (PCA),后者是另一种降低大型数据集维数的方法,将一组相当大的变量转换为一组较小的变量,同时保留较大数据集中的大部分数据。

数值规约

另一种方法是选择更小、数据密集度更低的格式来表示数据。数值规约有两种类型 – 基于参数方法和基于非参数方法。参数方法(如回归法)侧重于模型参数,而忽略了数据本身。同样,也可以采用对数线性模型,重点侧重数据中的子空间。而非参数方法(如直方图,可显示数值数据的分布方式)则完全不依赖模型。

数据立方体聚合

数据立方体是一种存储数据的可视化方式。实际上,“数据立方体”这个词几乎具有误导性,因为它隐含的单一性实际上是在描述一个由更小的、有组织的立方体组成的大型立方体。每个立方体都代表了该数据立方体中全部数据的某些层面,特别是有关测量和维度的数据块。因此,数据立方体聚合是将数据合并为立方体的可视格式,通过为此目的专门构建的唯一容器来缩减数据大小。

数据离散化

另一种用于数据规约的方法是数据离散化,即围绕一组确定的区间创建一组线性数据值,每个区间对应一个确定的数据值。

数据压缩

为了文件大小并成功实现数据压缩,可以使用各种类型的编码。一般来说,数据压缩技术可视为使用无损压缩或有损压缩,并根据这两种类型进行分组。在无损压缩中,通过编码技术和算法缩减数据大小,并在需要时恢复完整的原始数据。而有损压缩则使用其他方法进行压缩,虽然处理后的数据可能值得保留,但并不像无损压缩那样是一个精确的副本。

数据预处理

进行数据分析和数据规约之前,需要对一些数据进行清理、处理和加工。这种转换有一部分可能会涉及将数据从模拟性质转变为数字性质。分箱是数据预处理的另一个例子,利用中值对各类数据进行归一化处理,确保数据的全面完整性。

核心方法:

        1、维度规约:减少随机变量或属性的个数

        2、数值规约:用较少的数据替换原始数据

6.4 维度规约

定义:删除不相关的属性,保证信息的损失最小

主要方法:主成分分析(PCA)特征子集选择

6.4.1 主成分分析

1. 设原始变量(1-p是指数据的p个属性):

数据矩阵如下:

2. 数据标准化

3.计算协方差矩阵

从上面我们可以清楚的看到对角线上的数值是cov(x,x)=var(x),cov(y,y)=var(y),cov(y,y)=var(z),因此对角线处是我们的方差,有一个函数trace()专门则用于表示提取我们矩阵当中的对角线处的元素。下面我们把用cov函数表示的形式变化为更加普世的形式也就是用aij来表示我们的每一个协方差的数值。

5. 计算特征值和特征向量

计算协方差矩阵的特征值和特征向量。特征向量对应于数据集中的主成分方向,特征值表示每个主成分所解释的数据方差。

  • 特征向量(Eigenvector):每个特征向量表示一个新的坐标轴(即主成分的方向)。
  • 特征值(Eigenvalue):每个特征值表示对应特征向量方向上数据的方差大小,特征值越大,表示该主成分对数据的解释能力越强。

求特征值=求行列式为零 

已知特征值则根据Ax=x求得特征向量

6. 选择主成分

按照特征值的大小排序,从大到小选择前  个特征向量(主成分)。这些主成分能够解释数据集中的最大方差,通常选择前几个主成分就能有效保留数据的主要信息。

7. 构建新的数据集

将原始数据投影到选择的主成分上,从而得到一个降维后的数据集。具体方法是将原始数据矩阵  与选择的主成分矩阵相乘:

其中, 是包含前  个特征向量的矩阵。

核心思想:

  1. 协方差:两个变量之间的相关性。
  2. 协方差矩阵:两两变量之间的关系总和,反应数据总体特征、分布。
  3. 矩阵的特征向量:矩阵在某一方向上的特征,所有的特征向量就可以完全表现出矩阵的方向特征。特征值反映这个方向特征在所有方向特征中的重要程度。

算法如下:

​6.4.2 特征子集选择(重在选择)

底层逻辑:删除一部分属性

相比于PCA从数学角度,在特征空间上去找影响较少的属性删除。特征子集选择的属性删除更像是暴力解法,遍历各种可能去找最合适的特征属性子集,只不过这个暴力解法加入了启发性算法的思想。 

6.5 数值规约

总体较为简单,不做过多介绍,大家了解一下即可

7. 数据变换

定义:由于数据量之间的量纲、连续性等不同导致不同数据之间不能比较,因此需要通过数据变换使他们具有可比性。

目的:数据变换就是把数据变一种存在形式,让其可彼此比较 

7.1 数据规范化(量纲处理)

目的:将不同数据(属性)按一定规则进行缩放,使它们具有可比性

举个例子:体重和身高两个数据量之间不能比较,因为量纲不同,因此需要规范化 

最小-最大规范化:(对原始数据进行线性变换。把数据A的观察值v从原始的 区间[minA,maxA]映 射到新区间 [new_minA,new_maxA])【0-1规范化又称为归一化】

0-1规范化:

[minA,maxA] - [new_minA,new_maxA]规范化:

用处:能够调节两个属性的量纲,让两者可以比较 

缺点:噪声影响非常大,对离群值很敏感

因此,提出z-score规范化!!!!

z-score规范化:

小数定标规范化: 

 7.2 数据离散化

连续数据过于细致,数据之间的关系难以分析,划分为离散化的区间,发现数据之间的关联,便于算法处理。

  • 思考什么是离散化?
  • 离散化本质就是类的数量
  • 类的数量其核心思想和平滑是相同的
  • 平滑也就是我们进行数据清洗(缺失、噪声处理)的核心思想

3.2.1 非监督离散化

  • 分箱
  • 聚类

3.2.2 监督离散化

  • 熵的计算

核心点:

  • Entropy计算的是一个区间的价值,也就是一个信息整体的价值
  • Entropy整体分割时计算的是条件熵,使用的是条件概率

熵的本质思想:信息不确定性越大,价值越大

例如:

1、“太阳从东边升起来”这个信息没有不确定性,这是一个必然事实。那么这个信息对于我们来说是没有价值的。

2、“特朗普将赢得大选”这个信息不确定性相当大(特朗普不一定赢)。因此,我们听到这个信息会很好奇,为什么特朗普将赢,因此这个信息价值很大。


那么如何利用熵来对数据进行离散化呢?

离散化:就是把数据的类别减少(类别数量)。

因此,利用熵来实现离散化的关键在于:为连续的数据进行有限的分类。

问题的关键就转化为:如何利用熵有效的对数据进行分类

分类方法:

  • D:待分类数据集
  • a:数据集的特征属性
  • V:数据集特征属性a的不同分类集合(V是我们找max过程中需要改变的

举个例子:

8. 总结

本文到这里就结束啦~~

目前已完成:大数据入门、数据表示与存储、数据预处理

期待您的关注~~🥰🥰

猫猫陪你永远在路上💪💪

如果觉得对你有帮助,辛苦友友点个赞哦~ 

下一篇我们将进入 建模分析 部分~~~ 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 517ttc.cn 版权所有 赣ICP备2024042791号-8

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务