机器学习中数据预处理的方法

news/2024/12/25 4:11:42/

  数据预处理机器学习项目中至关重要的一步,它直接影响模型的性能和准确性。

一、数据清洗

  数据清洗是数据预处理的首要步骤,主要目的是处理数据中的缺失值、异常值和重复数据等。

1.处理缺失值:

删除含有缺失值的行或列。
均值填充:对于缺失值,用相应特征的均值代替。这种方法适用于缺失值较少的情况,且数据分布较为均匀。例如使用中位数、众数或基于其他列的预测模型来填充。

插值法:通过已知数据点来估计缺失值,常用的有线性插值、多项式插值等。

其他方法:如使用回归模型、期望最大化填补法、高斯混合模型(GMM)补全、C均值(C-Means)补全、K近邻(KNN)补全、决策树填补法等来预测并填充缺失值。

2.处理异常值:

Z-Score法:通过计算数据点的Z分数来判断其是否为异常值。Z分数反映了数据点离均值的标准差数,通常认为Z分数绝对值大于3的数据点为异常值。

IQR法:使用四分位距(IQR)来判断异常值。数据点小于Q1-1.5IQR或大于Q3+1.5IQR时,视为异常值。

二、数据均衡

  数据均衡化处理主要用于解决数据集不平衡问题,即某些类别的样本数量远多于其他类别。

1.欠采样法:从数量多的类别中随机丢弃一些数据,以保证类别均衡。但这种方法可能导致信息丢失,影响模型的泛化能力。

2.过采样法:增加数量较少样本的采样频率或对训练集数据进行插值来保证类别均衡。但直接对初始数据进行多次采样会导致严重的过拟合。

3.SMOTE法:一种改进的过采样方法,通过合成少数类样本来达到平衡类别的目的。

三、数据标准化与归一化

  数据标准化和归一化是数据预处理中常用的无量纲化方法,旨在消除不同特征之间的量纲差异,使模型更容易学习和理解。

1.归一化(Min-Max Scaling):
将数据缩放到指定范围(通常为[0,1]或[-1,1]),使得不同特征在同一量纲下进行比较。
转换公式为:Xscale=(X−Xmin)/(Xmax−Xmin),其中X为原始数据,Xmin和Xmax分别为数据的最小值和最大值。

2.标准化(Z-Score Normalization):
将数据变换为均值为0、标准差为1的标准正态分布形式。
转换公式为:Xscale=(X−μ)/σ,其中X为原始数据,μ为均值,σ为标准差。

四、数据编码

  数据编码主要用于将离散型特征转换为模型可以理解的数值型特征。

1.哑言编码(Dummy Encode):
  将一组定性离散特征的特征值以0-1方式向量化、定量化的编码方式。适用于处理类别型数据,将其转换为数值型数据以便模型处理。

2.其他编码
  对于分类变量,使用独热编码(One-Hot Encoding)或标签编码(Label Encoding)。独热编码适用于无序的分类变量,而标签编码适用于有序的分类变量。

五、特征方面

   过滤式选择是根据特征的统计属性(如方差、相关系数等)来选择特征。包裹式选择是将特征子集视为一个黑箱,通过比较不同特征子集的性能来选择最优特征子集。嵌入式选择是在模型训练过程中自动选择特征,如基于L1正则化的特征选择方法。
1.特征缩放
对于具有不同量纲的特征,进行缩放以避免某些特征对模型的影响过大。

2.特征选择
使用统计测试(如ANOVA、卡方检验)来选择与目标变量最相关的特征。
使用基于模型的特征选择方法,如使用随机森林的特征重要性。

3.特征提取
使用PCA(主成分分析)等方法减少特征的维度,同时保留最重要的信息。

六、时间序列特定的预处理

   对于时间序列数据,可能需要创建滞后特征(lag features)。可能需要差分(differencing)来使数据稳定。

七、数据拆分

  数据拆分是将数据集分为训练集、验证集和测试集,以便进行模型训练、验证和测试。

1.随机拆分:将数据集随机划分为训练集、验证集和测试集。

2.分层拆分:保持数据集中各类别的比例不变,进行分层随机拆分。

八、数据增强

  数据增强主要用于增加数据集的多样性和丰富度,以提高模型的泛化能力。

1.图像数据增强:如旋转、缩放、裁剪、翻转、添加噪声等方法。

2.文本数据增强:如同义词替换、句子重组、随机插入等方法。

九、其他处理

1.数据平滑:对于噪声较多的数据,可以使用移动平均或指数平滑等方法。
2.数据离散化:将连续变量转换为离散变量,有时可以提高某些模型的性能。
3.数据类型转换:确保所有数据列都是正确的数据类型,例如,日期列应该是日期类型,而不是字符串。
4.处理序列数据:对于序列数据,可能需要填充或截断序列,以确保它们具有相同的长度。
5.特征交互: 创建新特征,这些特征是现有特征的组合,以捕捉变量之间的交互作用。
6.数据重采样:对于时间序列数据,可能需要重采样以对齐不同的时间间隔。
7.数据分割:将数据集分割为训练集、验证集和测试集,以评估模型的性能。


http://www.ppmy.cn/news/1557905.html

相关文章

webserver log日志系统的实现

参考博客:https://blog.csdn.net/weixin_51322383/article/details/130474753 https://zhuanlan.zhihu.com/p/721880618 阻塞队列blockqueue 1、阻塞队列的设计流程是什么样的 它的底层是用deque进行管理的 阻塞队列主要是围绕着生产者消费者模式进行多线程的同步和…

springboot 配置Kafka 关闭自启动连接

这里写自定义目录标题 springboot 配置Kafka 关闭自启动连接方法一:使用 ConditionalOnProperty方法二:手动管理Kafka监听器容器方法三:使用 autoStartupfalse结语 springboot 配置Kafka 关闭自启动连接 在Spring Boot应用程序中&#xff0c…

新版国标GB28181设备端Android版EasyGBD支持国标GB28181-2022,支持语音对讲,支持位置上报,开源在Github

经过近3个月的迭代开发,新版本的国标GB28181设备端EasyGBD安卓Android版终于在昨天发布到Github了,最新的EasyGBD支持了国标GB28181-2022版,还支持了语音对讲、位置上报、本地录像等功能,比原有GB28181-2016版的EasyGBD更加高效、…

用Python设置Excel工作表的页眉和页脚

在处理和分析数据时,Excel作为一款功能强大的工具,被广泛应用于各个领域。当涉及到打印或分享工作表时,为文档添加专业的页眉和页脚不仅能提升文件的视觉效果,还能提供必要的信息,例如公司标识、日期、文件名或是页码等…

微信小程序的轮播图学习报告

微信小程序轮播图学习报告 好久都没分享新内容了,实在惭愧惭愧。今天给大家做一个小程序轮播图的学习报告。 先给大家看一下我的项目状态: 很空昂!像一个正在修行的老道,空的什么也没有。 但是我写了 4 个 view 容器,…

C05S07-Tomcat服务架设

一、Tomcat 1. Tomcat概述 Tomcat也是一个Web应用程序,具有三大核心功能。 Java Servlet:Tomcat是一个Servlet容器,负责管理和执行Java Servlet、服务端的Java程序,处理客户端的HTTP请求和响应。Java Server:服务端…

Unity全局雾效

1、全局雾效是什么 全局雾效(Global Fog)是一种视觉效果,用于在3D场景中模拟大气中的雾气对远处物体的遮挡 它通过在场景中加入雾的效果,使得距离摄像机较远的物体看起来逐渐被雾气覆盖,从而创造出一种朦胧、模糊的视…

MMAudio - 自动给视频配音效

MMAudio 在给定视频和/或文本输入的情况下生成同步音频。我们的关键创新是多模式联合训练,它允许对广泛的视听和音频文本数据集进行训练。此外,同步模块将生成的音频与视频帧对齐。 419 Stars 26 Forks 2 Issues NA 贡献者 MIT License Python 语言 代码…