机器学习算法笔记之6:数据预处理

article/2025/8/14 9:43:13

一、概述

在工程实践中,我们得到的数据会存在有缺失值、重复值等,在使用之前需要进行数据预处理。数据预处理没有标准的流程,通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为:去除唯一属性、处理缺失值、属性编码、数据标准化正则化、特征选择、主成分分析。

二、数据预处理方法

1. 去除唯一属性

唯一属性通常是一些id属性,这些属性并不能刻画样本自身的分布规律,所以简单地删除这些属性即可。

2. 处理缺失值

缺失值处理的三种方法:直接使用含有缺失值的特征;删除含有缺失值的特征(该方法在包含缺失值的属性含有大量缺失值而仅仅包含极少量有效值时是有效的);缺失值补全。

常见的缺失值补全方法:均值插补、同类均值插补、建模预测、高维映射、多重插补、极大似然估计、压缩感知和矩阵补全。

(1)均值插补

如果样本属性的距离是可度量的,则使用该属性有效值的平均值来插补缺失的值;如果的距离是不可度量的,则使用该属性有效值的众数来插补缺失的值。

(2)同类均值插补

首先将样本进行分类,然后以该类中样本的均值来插补缺失值。

(3)建模预测

将缺失的属性作为预测目标来预测,将数据集按照是否含有特定属性的缺失值分为两类,利用现有的机器学习算法对待预测数据集的缺失值进行预测。

该方法的根本的缺陷是如果其他属性和缺失属性无关,则预测的结果毫无意义,但是若预测结果相当准确,则说明这个缺失属性是没必要纳入数据集中的,一般的情况是介于两者之间。

(4)高维映射

将属性映射到高维空间,采用独热码编码(one-hot)技术。将包含K个离散取值范围的属性值扩展为K+1个属性值,若该属性值缺失,则扩展后的第K+1个属性值置为1。

这种做法是最精确的做法,保留了所有的信息,也未添加任何额外信息,若预处理时把所有的变量都这样处理,会大大增加数据的维度。这样做的好处是完整保留了原始数据的全部信息、不用考虑缺失值;缺点是计算量大大提升,且只有在样本量非常大的时候效果才好。

(5)多重插补(MultipleImputation,MI)

多重插补认为待插补的值是随机的,实践上通常是估计出待插补的值,再加上不同的噪声,形成多组可选插补值,根据某种选择依据,选取最合适的插补值。

(6)压缩感知和矩阵补全

(7)小结

插补处理只是将未知值补以我们的主观估计值,不一定完全符合客观事实。在许多情况下,根据对所在领域的理解,手动对缺失值进行插补的效果会更好。

3. 特征编码

(1)特征二元化

特征二元化的过程是将数值型的属性转换为布尔值的属性,设定一个阈值作为划分属性值为0和1的分隔点。

(2)独热编码(One-HotEncoding)

独热编码采用N位状态寄存器来对N个可能的取值进行编码,每个状态都由独立的寄存器来表示,并且在任意时刻只有其中一位有效。

独热编码的优点:能够处理非数值属性;在一定程度上扩充了特征;编码后的属性是稀疏的,存在大量的零元分量。

4. 数据标准化、正则化

数据标准化

数据标准化是将样本的属性缩放到某个指定的范围。

数据标准化的原因:

某些算法要求样本具有零均值和单位方差;

需要消除样本不同属性具有不同量级时的影响:①数量级的差异将导致量级较大的属性占据主导地位;②数量级的差异将导致迭代收敛速度减慢;③依赖于样本距离的算法对于数据的数量级非常敏感。

min-max标准化:对于每个属性,设minA和maxA分别为属性A的最小值和最大值,将A的一个原始值x通过min-max标准化映射成在区间[0,1]中的值x',其公式为:新数据=(原数据 - 最小值)/(最大值 - 最小值)

z-score标准化:基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化。将A的原始值x使用z-score标准化到x'。z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。新数据=(原数据- 均值)/ 标准差

均值和标准差都是在样本集上定义的,而不是在单个样本上定义的。标准化是针对某个属性的,需要用到所有样本在该属性上的值。

数据正则化

数据正则化是将样本的某个范数(如L1范数)缩放到到位1,正则化的过程是针对单个样本的,对于每个样本将样本缩放到单位范数。

设数据集。对样本首先计算Lp范数:

正则化后的结果为:每个属性值除以其Lp范数:

5. 特征选择

从给定的特征集合中选出相关特征子集的过程称为特征选择,进行特征选择的两个主要原因是:减轻维数灾难问题;降低学习任务的难度。

进行特征选择必须确保不丢失重要特征。常见的特征选择方法分为三类:过滤式(filter)、包裹式(wrapper)、嵌入式(embedding)。

过滤式选择:该方法先对数据集进行特征选择,然后再训练学习器。特征选择过程与后续学习器无关。Relief是一种著名的过滤式特征选择方法。

包裹式选择:该方法直接把最终将要使用的学习器的性能作为特征子集的评价原则。其优点是直接针对特定学习器进行优化,因此通常包裹式特征选择比过滤式特征选择更好,缺点是由于特征选择过程需要多次训练学习器,故计算开销要比过滤式特征选择要大得多。

嵌入式选择。

6. 稀疏表示和字典学习

字典学习:学习一个字典,通过该字典将样本转化为合适的稀疏表示形式。

稀疏编码:获取样本的稀疏表达。


http://chatgpt.dhexx.cn/article/gZAPgokP.shtml

相关文章

Python的数据分析可视化十种技能总结

常见的可视化试图列举 可视化视图可以分成4大类:比较、联系、构成和分布。他们的特点如下: 1、比较:比较数据之间的各类别的关系,或者是他们随着时间的变化趋势,比如折线图;2、联系:查看两个或…

python 典型变量分析

典型相关分析 1.典型相关分析的基本思想是首先在每组变量中找出变量的线性组合,使其具有最大相关性,然后再在每组变量中找出第二对线性组合,使其分别与第一对线性组合不相关,而第二对本身具有最大的相关性,如此继续下…

脑影像分析|数据分析——单个变量或多个变量与y的皮尔逊相关,同时返回r与p值(python)

| 图源 皮尔逊相关是计算两个变量之间线性相关关系,或者两个向量共线程度的常用指标,应返回衡量相关程度的r值,和相关显著程度的p值。我们熟知的工具包,如pandas,numpy和scipy等,只能计算单个变量x与变量y之…

SPSS处理多自变量多因变量分析以及描述平均值,在不同情况

SPSS处理工具:SPSS25.0 准备好数据 1.分析多自变量对某一个因变量的显著性 在分析里找到,General linear model,然后选择Univariate, 分别把两个自变量TIssue and Speed 输入到Fixed Factor,然后设置Option里的描述,如果需要其他的设置可以…

R语言实现双变量分析教程

双变量分析表示分析两个变量。 双变量分析是为了分析两个变量之间的关系,与单变量、多变量分析对应。主要有三种方式进行双变量分析。 散点图相关系数简单线性回归 下面使用测试数据作为示例来演示三种方法,供包括两个变量,HourStudied表示…

spss实战案例----分析多个变量与因变量之间是否存在关系,方差分析

本案例是IBM SPSS数据分析与挖掘实战案例精粹----第七章的学习记录 案例背景或目标:激素水平是否在对照组和实验组之间存在差异 分析方法:Bootstrap抽样,秩和检验,秩变换方法,cox回归 字段包括:性别&…

Python学习16 ----Seaborn多变量分析绘图

Seaborn多变量分析绘图 代码详见https://github.com/RenDong3/Python_Note 1 读取数据 2 分析绘图 parameters: x,y,hue 数据集变量 变量名data 数据集 数据集名row,col 更多分类变量进行平铺显示 变量名col_warp 每行的最高平铺数 整数estimator 在每个分类中进行矢量到标…

用SPSS进行多变量数据分析

用SPSS进行多变量数据分析 1.将所给的数据输入SPSS 22.0中文版。分别设置变量为温度,体重1、2、3、4;体重,温度5、10、15、20、30。 2.用SPSS进行作图(过程略)。 3.对数据进行多因素变量分析,具体操作如…

解读SPSS多元方差分析中的多因素多变量的相互影响

多元方差分析研究的是多个自变量与多个因变量的相互关系,也被称为多变量分析。在《怎么使用SPSS的多元方差分析法》一文中,我们已经详细学习了IBM SPSS Statistics多元方差分析的设置方法。 本文将会重点介绍如何解读多元方差分析的检验结果。由于多元方…

高维数据中特征筛选方法的思考总结——多变量分析筛选法

前言:之前的文章(高维数据中特征筛选方法的思考总结——单变量分析筛选法)中,对单变量分析筛选变量进行了初步考量,本文将进一步总结多变量分析筛选法。由于本文多处摘录网上的博客,只是进行了归纳整理&…

R语言实现单变量分析教程

单变量分析是理解单个变量的数值分布情况,与之相对的有双变量分析和多变量分析。 加载示例数据 因为csv文件中年收入字段有千分位分隔符,所以先定义转换函数。 setClass("num.with.commas") setAs("character", "num.with.co…

多变量分析绘图及分类属性绘图【知识整理】

多变量分析绘图及分类属性绘图 综述代码模块多指标离散图绘制盒图violin图条形图点图多层面板分类图factorplot()详细说明 小结 综述 学生党整理一些关于数据分析的知识:整理了多变量分析绘图及分类属性绘图的相关代码。主要包括了多指标离散图的绘制、盒图的绘制、…

python多变量相关性分析_多变量相关性分析(一个因变量与多个自变量)

目录:前言 偏相关或复相关 意义与用途 分析方法: 1、 样本相关系数矩阵、相关系数检验 2、 复相关分析 3、 决定系数 (RMSE的介绍) 小结 一、前言: 继上一篇文章,继续探讨相关性分析,这次不再是两个变量,而是3个或者以上的变量之间的相关关系分析。 没读过上…

一文了解11个常见的多变量分析方法!

在社会科学研究中,主要的多变量分析方法包括多变量方差分析(Multivariate analysis of variance,MANOVA)、主成分分析(Principal component analysis)、因子分析(Factor analysis)、…

多变量分析”——数据挖掘、数据分析

I。多重对应分析 多重对应分析在超过两个以上定类变量时有时候非常有效,当然首先我们要理解并思考,如果只有三个或有限的几个变量完全可以通过数据变换和交互表变量重组可以转换成两个定类变量,这时候就可以用简单对应分析了。 对应分析对数据…

点赞、收藏必读文章--数据分析的多变量分析

数据探索性分析(EDA)——多(双)变量分析 0 引言 上一篇文章震惊!Python单变量分析竟然如此简单? 介绍了数据分析中的单变量分析,但是我们在实际场景中,遇到的数据大多数是具有多特征、多变量的,因此除了对单个变量进…

“多变量分析”——数据挖掘、数据分析

I。多重对应分析 多重对应分析在超过两个以上定类变量时有时候非常有效,当然首先我们要理解并思考,如果只有三个或有限的几个变量完全可以通过数据变换和交互表变量重组可以转换成两个定类变量,这时候就可以用简单对应分析了。 对应分析对数据…

Open source Python toolbox for seismology

Open source Python toolbox for seismology ObsPy: A Python Toolbox for Seismology https://www.iris.edu/hq/webinar/2015/05/obspy_a_python_toolbox_for_seismology https://github.com/obspy/obspy http://www.obspy.org → https://github.com/obspy/obspy/wiki 2.用p…

Xmy的Python----Numpy库

目录 例题10-1:创建数组并查看数组属性 构造复杂数组 生成随机数 例题10-2:绘制:随机生成10000数据,服从均值为0,方差为1的正态分布的直方图(间隔个数:50) 通过索引访问数组 数组的…

python3.8安装pysal库

python3.8 安装 pysal 库 我最后是在虚拟环境中测试成功的,在原来的环境中测试还是有问题,但是装这个库只是为了一个assignment,踩完坑来总结一下,先用上再说。 1. 创建虚拟环境 正常环境无论是conda install 还是 conda-forge …