当前位置: 首页 > news >正文

【大数据技术05】数据加工

参考资料:朝乐门。数据科学导论 [M]. 北京:人民邮电出版社,2020.


数据加工


文章目录

    • 五.数据加工
      • 1. 探索型数据分析
        • 1.1 耐抗性分析
        • 1.2 残差分析
        • 1.3 重新表达
        • 4.启示
      • 2.数据大小与标准化
        • 2.1 0-1标准化
        • 2.2 Z-score标准化
      • 3.缺失数据及其处理方法
        • 3.1 缺失数据处理步骤
        • 3.2 缺失值类型
      • 4.噪声数据及处理
        • 4.1 噪声数据
        • 4.2 离群点处理
        • 4.3 分箱处理
      • 5.数据维度及降维处理
        • 5.1 常见的特征选择方法
        • 5.2 特征创建方法PCA
          • 主成分分析法PCA:“创造新特征”(特征提取)
      • 6.数据脱敏及其处理
      • 7.数据预处理方法


五.数据加工

1. 探索型数据分析

探索型数据分析主题

image-20251111193014342

通常,探索型数据分析是数据加工的第一步

探索型数据分析(Exploratory Data Analysis,EDA)指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,并通过作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。

“先验假定” 指在分析数据前,基于经验、直觉或理论预设的 “数据应该是什么样” 的判断

1.1 耐抗性分析

耐抗性是指对于数据的局部不良行为的非敏感性,他是探索性数据分析追求的主要目标

数据科学家重视耐抗性的主要原因在于“好”的数据也难免有差错甚至是重大差错。因此,进行数据分析时要有预防大错的破坏性影响的措施。

Eg.

中位数平滑是一种耐抗技术,而中位数是高耐抗性统计量

“耐抗性”(Resistance)是探索型数据分析(EDA)里很核心的一个概念,简单说就是数据分析方法或统计量 “抗干扰” 的能力—— 面对数据里的局部错误、极端值(比如录入错的异常数据、个别离谱的观测值),它不会轻易被带偏,还能保持对数据真实规律的判断。

比如我们熟悉的 “中位数” 就是典型的高耐抗性统计量:假设一组数据是 [2,3,4,5,6],中位数是 4;如果其中一个数据出错变成 [2,3,4,5,1000],中位数还是 4,完全没受极端值 1000 的影响。但如果用 “平均值”(低耐抗性),原本均值是 4,出错后均值直接变成 203,一下就被极端值带偏了。

探索型数据分析中常用的耐抗性分析统计量可以分为:集中趋势、离散程度、分布状态和频度等四类

  1. 集中趋势统计量
image-20251111193701512
  1. 离散程度统计量
image-20251111193747132
  1. 数据分布状态统计量
image-20251111193830787 img

偏态分布有两种,左偏和右偏。长尾在哪边就是哪偏,下面第一张图的长尾在左边就是左偏,最后一张图的长尾在右边就是右偏。

img
1.2 残差分析
image-20251111194429867

残差(Residuals):指数据减去一个总括统计量或者模型拟合值的才与部分

即:
残差=实际值−拟合值残差 = 实际值 - 拟合值 残差=实际值拟合值
如果我们对数据集 Y 进行分析后得到拟合函数 yˆ = a + bx ,则在 xi 处对应两个值, 即实际值(yi)和拟合值( yˆi )。因此,xi 处的残差 ei = yi - yˆi ,如上图所示。

核心是通过对比 “数据实际值” 和 “模型拟合值” 的差异,帮我们判断模型是否贴合数据规律,或数据是否存在异常,


1.3 重新表达

重新表达(Re-Expression):是指找到合适的尺度或数据表达方式进行一定的转换,使得数据有利于简化分析

探索型数据分析强调,应尽早考虑数据的原始尺度是否合适的问题。如果尺度不合适,重新表达成另一个尺度可能更有助于促进对称性、变异恒定性、关系直线性或效应的可加性等。

重新表达也称变换(Transformation),一批数据 x1, x2, …, xn 的变换是一个函数 T,它把每个 xi 用新值 T(xi)来代替,使变换后的数据值是 T(x1), T(x2), …, T(xn )

原始数据有时会有 “不好用” 的问题,比如:

  • 数据分布太偏(比如收入数据,大部分人低、少数人极高,直接分析难抓规律);

  • 变量间关系不是直线(比如销量和广告投入是 “先快后慢” 的非线性关系,不好用线性模型分析);

  • 数据波动差异大(比如小数值波动小、大数值波动大,影响计算稳定性)。

    这时候就需要 “重新表达”,把数据调整成更适合分析的样子。

重新表达的核心:“找个合适的转换方式”

本质是用一个函数(比如 T (x))把原始数据 x 换成新数据 T (x),常见的简单转换有:

  • 取对数(比如对收入数据取 ln (x)):能让偏态分布变平缓,缩小极端值的影响;
  • 开平方(比如对计数数据√x):适合数据波动随数值增大而变大的情况;
  • 倒数(比如对速度数据 1/x):适合 “数值越大、关联越弱” 的非线性关系。

4.启示

启示是指通过探索性数据分析,发现新的规律、问题等,进而满足数据加工和数据分析的需要

在探索型数据分析(EDA)里,“启示” 是整个分析过程的 “核心产出”—— 简单说,就是通过作图、算特征量、残差分析等手段探索数据后,发现的新规律、隐藏问题或有价值的线索,这些发现会直接指导后续的数据分析或决策。

  • 分析用户消费数据时,通过画时间序列图发现 “每周五晚消费额骤增”,这就是一个 “启示”—— 后续可以针对周五晚设计促销活动

2.数据大小与标准化

标准化处理是数据大小变换的最常用方法之一。

数据标准化处理(Data Normalization)的目的是将数据按比例缩放,使之落入一个小的特定区间内。

在某些比较和评价类的指标处理中经常需要去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。

2.1 0-1标准化

0-1 标准化(0-1 Normalization)指对原始数据的线性变换,使结果落到[0, 1], 转换函数如下:
x∗=x−MinMax−Minx^* = \frac{x - \text{Min}}{\text{Max} - \text{Min}} x=MaxMinxMin
其中,Max 和 Min 分别为样本数据的最大值和最小值;x 与 x*分别代表标准化处理前的值和标准化处理后的值。

Min-Max标准化比较简单,但也存在一些缺陷—当有新数据加入时,可能导致最大值和最小值变化,需要重新定义 Min 和 Max 的取值。


2.2 Z-score标准化

(Zero-Score Normalization)指使经过处理的数据符合标准正态分布,即均值为 0,标准差为1,其转化函数为:
z=x−mσz = \frac{x - m}{\sigma} z=σxm
其中 m为平均数,σ 为标准差,x 与 z 分别代表标准化处理前的值和标准化处理后 的值。

Min-Max 标准化/0-1标准化

  • 核心特点:将数据线性映射到 [0, 1] 区间,保留数据的原始分布形状,仅压缩范围。
  • 适用场景
    • 需要 “绝对占比” 的场景:比如电商商品评分(0-5 分)标准化后直观体现 “相对高低”,或图像处理中像素值归一化(统一到 0-255 区间)。
    • 算法对 “数据范围敏感” 的场景:如 K 近邻(KNN)、神经网络(需输入在 0-1 区间提升收敛性)、支持向量机(SVM,避免量纲差异主导距离计算)。
    • 数据分布无明显极端值:若数据存在极大 / 极小异常值,Min-Max 会因 “极值主导区间” 导致大部分数据被压缩到很小范围(失去区分度)。

Z-score 标准化

  • 核心特点:将数据转换为均值为 0、标准差为 1 的标准正态分布,突出数据的 “相对位置”(偏离均值的程度)。
  • 适用场景
    • 关注 “相对波动” 的场景:比如金融市场分析(某支股票收益率与市场平均收益率的偏离程度)、成绩排名(某学生分数与班级平均分的差距)。
    • 数据存在极端值:通过 “除以标准差” 削弱极端值的影响(如用户消费数据中少数高消费用户不会主导分析)。
    • 算法对 “分布形状” 敏感的场景:如主成分分析(PCA,需数据近似正态分布提升降维效果)、线性回归(消除量纲差异后系数更具解释性)。

总的来说:

  • 若需要 **“0-1 区间的绝对占比”算法对 “范围” 敏感 ** → 选 Min-Max 标准化;
  • 若需要 **“相对波动的比较”数据有极端值 ** → 选 Z-score 标准化。

Eg.

举个直观例子:比较学生 “身高” 和 “体重” 时,Z-score 能体现 “某学生身高比均值高 1 个标准差,体重比均值高 2 个标准差”,而 Min-Max 能体现 “该学生身高在班级排前 20%,体重排前 10%”—— 两者视角不同,按需选择即可。


3.缺失数据及其处理方法

3.1 缺失数据处理步骤
image-20251111195957933

根据缺失数据对分析结果的影响及导致数据缺失的影响因素, 选择具体的缺失数据处理策略

  1. 识别缺失数据(数据审计)

通过 “数据审计” 环节,先定位数据中哪些位置存在缺失(比如某条记录的 “年龄” 字段为空、某用户的 “消费金额” 未记录等)。这是处理缺失数据的第一步,相当于 “先找到问题在哪里”。

  1. 分析缺失数据(特征、影响、原因分析)
  • 特征分析:研究缺失数据的分布规律(比如是随机缺失,还是集中在某类人群 / 某类场景下);

  • 影响分析:评估缺失数据对后续分析(如建模、统计)的干扰程度(比如少量缺失可能影响小,大量缺失可能导致结果失真);

  • 原因分析:探究数据缺失的根源(是采集失误、用户未填写,还是业务逻辑导致的合理缺失等)。

    这一步是 “搞清楚缺失数据的性质和影响”,为后续处理策略提供依据。

    1. 处理缺失数据(忽略、删除、插补)

根据前两步的分析,选择合适的处理方式:

  • 忽略:若缺失数据对分析影响极小,可直接跳过;

  • 删除:若缺失数据无规律且量少,可删除包含缺失值的记录或字段;

  • 插补:若缺失数据有规律或影响大,通过技术手段 “填补” 缺失值(比如用均值、中位数填充,或通过算法预测填充)。

    这一步是 “解决缺失问题”,让数据能满足后续分析的要求。


3.2 缺失值类型
image-20251111203303494
  1. MCAR:某变量的缺失数据和其他已观测、未观测的变量都没关系(纯随机缺失)。比如调查中 “年龄” 字段随机有几条没填,和其他问题的回答无关。
  2. MAR:变量的缺失数据和 “已观测的其他变量” 有关,但和 “未观测的变量” 无关。比如 “收入” 字段的缺失,和已观测的 “职业” 有关(比如自由职业者更可能不填收入),但和没观测的 “家庭背景” 无关。
  3. NMAR:缺失数据既不属于完全随机,也不属于随机缺失,是 “非随机” 的。比如 “心理健康评分” 的缺失,可能和 “评分本身较低(不想透露)” 有关,属于数据自身的隐藏规律导致的缺失。

4.噪声数据及处理

4.1 噪声数据

噪声:指的是测量变量中的随机错误或者误差

噪声数据分为三类:

  1. 错误数据
  2. 虚假数据
  3. 离群数据

4.2 离群点处理
image-20251111203805679

离群点(Outliers):是 数据集 中与其他数据偏离太大的点

离群点与高杠杆点(High Leverage)和强影响点(Influential Points)是3个既有联系又有区别。

高杠杆点(High Leverage Points):“自变量位置特殊,有‘撬动’模型的潜力”

离群点(Outliers):“自身数值异常,但不一定影响模型”

强影响点(Influential Points):“既特殊,又真的改变了模型”

常用的离群点的识别方法

  1. 可视化方法:如上图所示的绘制散点图的方法;也可以采用箱线图方法,如下图

    其中没有包含在箱线中的三个独立的点是离群点

image-20251111203951521

  1. 四分位距法:

    IQR:四分位距,代表了中间 50% 数据的范围,能反映数据的 “中间离散程度”

IQR=Q3−Q1\text{IQR} = Q_3 - Q_1 IQR=Q3Q1

把数据从小到大排序后,分成 4 个相等的部分,产生 3 个分割点,这 3 个点就是四分位数

  • 下四分位数((Q_1)):数据的第 25% 分位数(25% 的数据小于它);

  • 中位数((Q_2)):数据的第 50% 分位数(50% 的数据小于它);

  • 上四分位数((Q_3)):数据的第 75% 分位数(75% 的数据小于它)

  • 若一个数据点X属于:
    X<(Q1−1.5×IQR)X< (Q_1 - 1.5 \times \text{IQR}) X<(Q11.5×IQR)
    或:
    X>(Q3+1.5×IQR)X> (Q_3 + 1.5 \times \text{IQR}) X>(Q3+1.5×IQR)
    则X属于离群点

  1. Z-score方法:通常将Z-score值在3倍以上的点视作离群点

    image-20251111204652634

    比如,若某数据的 Z-score 是 2,说明它比均值高 2 个标准差;若 Z-score 是 -1.5,说明它比均值低 1.5 个标准差。

  2. 聚类算法:如用DBSCAN、决策树、随机森林算法等发现离群点


4.3 分箱处理

image-20251111204841989

基本思路:分箱(Binning)处理的基本思路是将数据集放入若干个“箱子”之后,用每个箱子的均值(或边界值)替换该箱子内部的每个数据成员,进而达到噪声处理的目的

以数据集 Score={60, 65, 67, 72, 76, 77, 84, 87, 90}的噪声处理为例,其分箱处理过程如图所示

分箱处理(也叫离散化)是数据加工中的 “数据分组工具”,核心是把连续的数值型数据划分成若干个区间(“箱子”),让数据从 “连续” 变 “离散”,方便后续分析或建模

为什么要分箱?

连续数据有时会有 “太细、太散” 的问题,比如:

  • 年龄数据(18、22、35…)直接分析难抓规律,但若分成 “青年(18-30)、中年(31-50)、老年(51+)” 就清晰多了;
  • 某些算法(如决策树)对离散数据更友好,分箱后能提升模型效果;
  • 可以削弱极端值的影响(比如把 “10000 元收入” 和 “9000 元收入” 都归到 “高收入” 箱)。

如何分箱?

  • 等距分箱:把数据范围 “平均分” 成若干区间。比如把 0-100 的分数分成 “0-20、21-40、41-60、61-80、81-100”5 个箱,每个箱的区间长度相同。
  • 等频分箱:让每个箱子里的数据数量差不多。比如把用户按消费金额分箱,确保每个箱里的用户数大致相等(适合数据分布不均的情况)。

(1)根据对原始数据集的分箱策略,分箱方法可以分为两种:

等深分箱(每个箱中的成员个数相等)

等宽分箱(每个箱的取值范围相同)。

(2)根据每个箱内成员数据的替换方法,分箱方法可以分为

  1. 均值平滑技术(用每个箱的均值代替箱内成员数据,如上例所示)

  2. 中值平滑技术(用每个箱的中值代替箱内成员数据)

  3. 边界值平滑技术(“边界值”指箱中的最大值和最小值,“边界值平滑”指每个值被最近的边界值替换)。


5.数据维度及降维处理

5.1 常见的特征选择方法
  1. 过滤法

    先筛选,再建模。把特征看作 “独立个体”,先根据特征自身的统计属性(比如与目标变量的相关性、方差大小)给特征 “打分”,再按分数筛选出高价值特征,最后用筛选后的特征建模。

  2. 包裹法

    “用模型‘试’出好特征”,把特征选择和 “后续要使用的模型” 绑定,将 “特征子集” 当作 “候选对象”,用模型去 “测试” 不同特征子集的效果(比如模型准确率、误差),最终选择让模型效果最好的特征子集。

  3. 嵌入法

    “建模时‘顺便’选特征”,把特征选择 “嵌入” 到模型训练过程中 —— 模型在学习参数(比如线性回归的系数、决策树的分裂节点)时,会 “自动判断特征的重要性”,训练结束后直接输出 “重要性高” 的特征。

5.2 特征创建方法PCA
主成分分析法PCA:“创造新特征”(特征提取)

主成分分析(Principle Component Analysis,PCA)常用于将数据的属性集转换为新的、更少的、正交的属性集

在主成分分析中,第一主成分具有最大的方差值;第二主成分试图解释数据集中的剩余方差,并且与第一主成分不相关(正交);第三主成分试图解释前两个主成分没有解释的方差,以此类推。

主成分分析的方法论基础为线性代数中的奇异值分解(Singular Value Decomposition)。

在 Python 数据科学编程中,通常采用第三方包 sklearn.decomposition 的 PCA()函数进行主成分分析。PCA 函数的参数如下。

PCA(n_components=None, copy=True, whiten=False, svd_solver='auto', tol=0.0, iterated_power='auto', random_state=None,)
  1. n_components:降维后输出的 “新特征(主成分)个数”

    • 若设为整数(如n_components=2):直接指定保留 2 个主成分(适合需要固定维度的场景,比如降维后做可视化,通常选 2 或 3)。
    • 若设为小数(如n_components=0.95):表示保留 “能解释原始数据 95% 方差” 的主成分数量
    • 若设为None(默认值):不主动降维,保留所有主成分(等于没做降维,一般不用)。
  2. copy:是否修改原始数据

    copy=True(默认):复制原始数据,处理后原始数据不变

    copy=False:直接在原始数据上做计算,会修改原始数据

  3. whiten:是否白化处理,“白化” 是对生成的主成分做进一步处理,让每个主成分的方差为 1

  4. svd_solver:用哪种算法做 SVD

    • svd_solver='full':完整版 SVD 算法,精准但速度慢(适合小数据集,特征数 < 5000)。
    • svd_solver='randomized':随机 SVD 算法,速度快但精度略低(适合大数据集,特征数多或样本量大)。
  5. 其他参数一般默认即可

Eg.

比如:用 “年龄、收入” 两个原始特征,通过 PCA 计算出 “主成分 1”(可能是 “年龄 ×0.6 + 收入 ×0.8”)和 “主成分 2”(可能是 “年龄 ×0.8 - 收入 ×0.6”),最终用这 2 个新的主成分替代原始特征,实现降维


6.数据脱敏及其处理

数据脱敏,核心:“让数据‘可用不可识’—— 保留数据的分析、业务价值,同时隐藏或破坏能识别个人 / 敏感主体的信息,避免隐私泄露”


7.数据预处理方法

image-20251111210815857

数据加工的主要动机往往来自两个方面:

  1. 数据质量要求:在数据处理过程中,原始数据中可能存在多种质量问题(如存在缺失值、噪声、错误或虚假数据等),将影响数据处理算法的效率与数据处理结果的准确性。
  2. 数据计算要求:当原始数据质量没有问题,但不符[合目标算法的要求(如对数据的类型、规模、取值范围、存储位置等要求)时, 我们也需要进行数据加工操作。

在这里插入图片描述

http://www.dtcms.com/a/596507.html

相关文章:

  • es 书籍检索-上篇
  • Electron 智能文件分析器开发实战适配鸿蒙
  • 鸿蒙文件操作
  • 手工做环保衣的网站湖北省工程建设信息官方网站
  • ShellCrash 安装与配置踩坑与解决日志
  • redis 的面试点总结
  • DS1302 简单介绍
  • JS DOM 操作与性能优化实战指南:构建高效可交互的页面结构
  • 【Java】基于策略模式 + 工厂模式多设计模式下:重构租房系统核心之城市房源列表缓存与高性能筛选
  • 学校门户网站作用收录查询工具
  • 如何在资源不足时快速补救项目延误
  • C++多线程之线程管控
  • 企业BI项目建设--如何梳理企业的指标体系
  • Linux 虚拟文件系统(VFS)深度解析
  • 系统思考:aAI产业链的啤酒游戏
  • 天文知识--北斗七星
  • 网站建设后需要交费吗网络营销专业培训机构
  • vue3获取循环中的ref
  • 11.11 脚本网页 跳棋
  • uni-app:实现快递的节点功能
  • 使用虚拟机搭建简易K8s实验环境的一种方法
  • 构建下一代临床AI诊断系统:基于CPC-Bench基准的工程化路线图(上)
  • Electron 原理浅析
  • Git 命令全攻略:从入门到实战
  • React底层原理
  • tensorflow 图像分类 之四
  • GEO优化:针对生成式AI内容分发逻辑的四大维度优化策略
  • 做a手机视频在线观看网站网页程序开发采购
  • USP-Ulysses+Ring-Attention技术原理
  • mirage 接口mock 拦截