机械学习篇——数据预处理

数据预处理在机械学习系统中至关重要,包括数据选取、清理、集成、变换和规约。数据清理涉及缺失值填充和噪声数据处理;数据标准化如min-max标准化、Z-score标准化和小数定标用于消除量纲影响;数据归约通过维归约和数值归约降低数据复杂性。这些步骤旨在提高数据质量和模型效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据预处理

        在实际的机械学习系统的过程中,对数据的预处理部分往往会占据整个系统设计中工作量的一半以上。用于机械学习算法的数据需要具有极好的一致性和极高的数据质量,但是在数据采集的过程中,由于各种因素的影响及对属性相关性并不了解,因此采集的数据不能直接应用,因此采集的数据不能直接应用。直接收集的数据具有以下两个特点:

  1. 收集的数据是杂乱额,数据内容常出现不一致和不完整的问题,常存在错误数据或者异常数据。
  2. 收集的数据由于数据量大,数据的品质不统一,需要提取高品质数据,以便利用高品质数据得到高品质的结果。

对数据的预处理过程,大致可分为5步:数据选取、数据清理、数据集成、数据变换、数据规约。这些数据处理方法需要根据项目需求和原始数据特点,单独使用或者综合使用。

数据初步选取

数据初步选取是面向应用是进行数据处理的第一步,从服务器等设备得到大量的源数据时,由于并不是所有的数据都对机械学习有意义,并且往往会出现重复数据,此时需要对数据进行修改,基本原则如下。

  1. 选择能够赋予属性名和属性值明确含义的属性数据。
  2. 避免选取重复数据。
  3. 合理选择与学习内容关联性高的属性数据。

数据清理

数据清理是数据预处理中最为花费时间和精力,却极为乏味的一步,但是也是最重要的一步。这一步可以有效减小机械学习过程中出现自相矛盾的现象。数据清理主要处理缺失数据、噪声数据、识别和删除孤立点等。

  1. 缺失数据处理

目前最常用的方法是对缺失值进行填充,依靠现有的数据信息推测缺失值,尽量使填充的数值接近于遗漏的实际值,相应的方法如回归、贝叶斯等。另外,也可以利用全局常量、属性平均值填充缺失量,或者将源数据进行属性分类,然后用同一类中样本属性的平均值填充等,在数据量充足的情况下,可以忽略缺失值的样本数据。

  1. 噪声数据处理

噪声是指测量值由于错误或者偏差,导致其严重偏离期望值,形成了孤立点。目前,最广泛的是利用平滑技术处理,其具体包括分箱技术、回归方法、聚类技术。通过计算机检测出噪声点后,可将数据点作为垃圾数据删除,或者通过拟合平滑技术进行修改。

数据集成

数据集成就是将多个数据源中的数据合并在一起形成数据仓库/数据库的技术和过程。数据集成中需要解决数据中的3个主要问题。

  1. 多个数据集匹配。当一个数据库的属性与另一个数据库的属性匹配时,必须注意数据的结构,以便于二者匹配。
  2. 数据冗余。两个数据集有两个命名不同但实际数据相同的属性,那么其中一个属性就是冗余的。
  3. 数据冲突。由于表示、比例、编码等不同,现实世界中的同一实体,在不同数据源中的属性值可能不同,从而产生数据歧义。

 数据变换

1.数据标准化

数据标准化(归一化)处理是数据控据的 项基础工作。不同评价指标往往具有不同的量纲和量纲单位,这样的情况会影响数据分析的结果,为了消除指标之间的最纲影响,需要进行数据标准化处理,以解决数据指标之间的可比性。原始数据经过数据标准化处理后,各指标处干同一数量级,适合进行综合对比评价。以下是3种常用的归一化方法。

(1) min-max标准化( Min-Max Nomaliationo)。该方法也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0.1]区间。转换函数如式(1.1):

 

式中.max为样本某一属性数据的最大值; min 为样本某一属性数据的最小值。 这种方

 

法有个缺陷,就是当有新数据加入时,可能导致max和min变化,需要重新定义。

  1. Z-score标准化方法。该方法将原始数据的均值(mean)和标准差(standard deviation)进行数据标准化。经过处理的数据符合标准正态分布,即均值为0,标准差为1。Z-score标准化方法适用于样本属性的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。转换函数如式(1.2):

 

式中,为样本某属性数据的均值:为样本数据的标准差。

(3)小数定标准化。该方法是通过移动数据的小数点位置来进行标准化,小数点

移动多少位取决于属性取值的最大值。其计算公式如式(1.3):

 

 

式中,j为属性值中绝对值最大的数据的位数,例如,假设最大值为346,则j=4.

数据白化处理

进行完数据的标准化后,白化通常会被用来作为接下来的数据预处理步骤。实践证明,很多算法的性能提高都要依赖于数据的白化。白化的主要目的是降低输入数据的冗余性,一方面减少特征之间的相关性,另一方面是不同的维度特征方差相近或者相同。通常情况下,对数据进行白化处理与不对数据进行白化处理相比,算法的收敛性会有较大的提高。白化处理分为主成分(PCA)白化和零均值成分(ZCA)白化。PCA白化保证数据各维度的方差为1,而ZCA白化保证数据各维度的方差相同。PCA白化可以用于降维,也可以去相关性,而ZCA白化主要用于去相关性且尽量使白化后的数据接近原始数据输入数据。两类方法都具有各自适用的数据场景,但相对而言,在机械学习中PCA白化方法应用更多。

数据归约

数据归约通常用维归约、数值归约方法实现。维归约指通过减少属性的方式压缩数据量,通过移除不相关的属性,可以提高模型效率。常见的维归约方法有:通过分类树、随机森林判断不同属性特征的分类效果的影响,从而进行筛选;通过小波变换、主成分分析把原始数据变换或投影到较小的空间,从而实现降维。

### PHM2012轴承数据集的数据预处理方法 对于PHM2012轴承数据集,有效的数据预处理是构建可靠预测模型的关键步骤之一。该数据集包含了6个滚珠轴承在三种不同工况下的训练数据,以及另外11个轴承的测试数据[^1]。 #### 数据清洗 首先,在进行任何复杂的预处理之前,应确保原始数据的质量。这涉及去除异常值、填补缺失值或删除不完整的记录。由于此数据集中可能存在的噪声和间歇性的测量误差,可以考虑应用滤波器来平滑时间序列数据,减少不必要的波动影响后续建模效果。 #### 特征提取与转换 为了更好地捕捉机械系统的动态特性并提高机器学习算法的表现力,通常会从原始传感器读数中抽取有意义的新特征。针对振动信号而言,常见的做法包括但不限于: - **统计量计算**:均值(mean),方差(variance),峰度(kurtosis)等基本统计指标能够反映一段时间内的平均行为模式及其变化趋势。 - **频域变换**:通过快速傅立叶变换(FFT),将时域上的离散采样点映射至频率空间内表示出来;这样做的好处是可以更容易识别出特定工作状态下对应的共振频率成分,并据此设计针对性更强的状态评估函数[^5]。 ```python import numpy as np def compute_fft(signal, N=2560): """Compute FFT of a given signal.""" yf = 2.0 / N * np.abs(np.fft.fft(signal)[:N // 2]) return yf ``` - **包络解调**:当设备处于早期损伤阶段时,其产生的高频冲击响应往往会被低频载波所掩盖而难以察觉。此时采用希尔伯特变换配合带通滤波的方式分离出感兴趣的瞬态事件,则有助于提前预警潜在风险。 #### 归一化/标准化 考虑到各个物理量之间可能存在数量级差异较大情况,因此有必要对其进行统一尺度调整操作——即将所有数值限定在一个相对固定的范围内(如[-1,+1]区间)。这样做不仅有利于加快收敛速度而且还能防止某些极端值过分主导整个优化过程。 #### 划分训练集与验证集 最后一步是要合理分配已有的观测实例给不同的子集合,比如80%用来拟合参数权重,剩下的20%留作独立检验之用。值得注意的是,如果存在明显的周期性规律的话,建议按照相同的时间跨度随机抽样而不是简单地按顺序切分,以免引入人为偏差因素干扰最终结论的真实性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MATLAB实践家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值