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

1. 数据清洗

  • 方法:处理异常值、重复数据、噪声数据。
    • 异常值处理:通过统计方法(如 Z-Score、IQR)或可视化检测,选择删除、替换(均值/中位数)或保留。
    • 重复数据:直接删除重复样本。
  • 优点:提升数据质量,减少模型偏差。
  • 缺点:可能误删有用信息或引入人为偏差。
  • 场景:金融风控(异常交易检测)、传感器数据清洗。

2. 特征缩放

  • 归一化(Min-Max Scaling)

    • 将数据缩放到 [0, 1] 区间。
    • 优点:加速梯度下降,适合对尺度敏感的模型(如神经网络、KNN)。
    • 缺点:对异常值敏感。
  • 标准化(Z-Score)

    • 使数据均值为 0,方差为 1。
    • 优点:对异常值稳健,适合大多数模型(如 SVM、线性回归)。
    • 缺点:不保证固定数值范围。
  • 场景:归一化用于图像像素值处理;标准化用于非均匀分布特征(如年龄、收入)。


3. 分类变量编码

  • 独热编码(One-Hot Encoding)

    • 将类别转换为二进制向量(如 “猫” → [1,0,0])。
    • 优点:消除数值大小误导,适合无序类别。
    • 缺点:维度爆炸(高基数特征需配合降维)。
  • 标签编码(Label Encoding)

    • 将类别映射为整数(如 “红/黄/蓝” → 0/1/2)。
    • 优点:节省内存,适合树模型(如随机森林)。
    • 缺点:可能引入虚假顺序关系。
  • 场景:独热编码用于性别、颜色;标签编码用于有序类别(如学历等级)。


4. 缺失值处理

  • 删除缺失样本/特征

    • 优点:简单高效。
    • 缺点:丢失信息(缺失比例高时不可行)。
  • 填充

    • 均值/中位数(数值特征)、众数(分类特征)、插值(时间序列)。
    • 优点:保留数据完整性。
    • 缺点:可能引入偏差(如均值填充忽略特征分布)。
  • 模型预测填充

    • 用回归或分类模型预测缺失值。
    • 优点:更精准。
    • 缺点:计算复杂,可能过拟合。
  • 场景:医疗数据(缺失较多时用模型填充);电商数据(删除缺失少的特征)。


5. 特征工程

  • 特征选择

    • 过滤法(卡方检验、相关系数)、包装法(递归特征消除)、嵌入法(L1 正则化)。
    • 优点:降低过拟合风险,提升效率。
    • 缺点:可能丢弃有用特征。
  • 特征构造

    • 人工构造新特征(如日期→星期几,文本→词频)。
    • 优点:增强模型表达能力。
    • 缺点:依赖领域知识,耗时。
  • 场景:广告 CTR 预测(构造用户行为组合特征);图像识别(提取边缘特征)。


6. 降维

  • 主成分分析(PCA)

    • 线性投影到低维空间,保留最大方差。
    • 优点:减少计算量,缓解维度灾难。
    • 缺点:丢失非线性结构。
  • t-SNE

    • 非线性降维,保留局部相似性。
    • 优点:适合高维数据可视化。
    • 缺点:计算复杂,难以解释。
  • 场景:图像数据压缩(PCA);高维聚类可视化(t-SNE)。


7. 数据增强(深度学习)

  • 方法:图像(旋转、翻转、裁剪)、文本(同义词替换)、音频(加噪)。
  • 优点:提升泛化性,缓解过拟合。
  • 缺点:可能生成不合理的样本(如翻转后的错误文本)。
  • 场景:图像分类(CNN 训练)、小样本学习。

8. 数据划分

  • 训练集/验证集/测试集
    • 常用比例 60%/20%/20% 或 70%/30%。
  • 交叉验证
    • K-Fold 划分(如 5 折),减少划分偏差。
  • 优点:评估模型泛化能力。
  • 缺点:数据量少时交叉验证计算成本高。
  • 场景:小数据集(交叉验证);时序数据(需按时间顺序划分)。

9. 时间序列处理

  • 滑动窗口:将序列转换为监督学习格式。
  • 去趋势/季节性:差分、STL 分解。
  • 优点:捕捉时序依赖关系。
  • 缺点:处理不当可能破坏原始模式。
  • 场景:股票预测、销量预测。

10. 文本处理

  • 分词/去停用词:中英文分词,移除无意义词(如“的”)。
  • 向量化:TF-IDF(统计权重)、Word2Vec/GloVe(语义向量)。
  • 场景:情感分析(TF-IDF + SVM)、机器翻译(词嵌入 + RNN)。

总结

方法典型技术适用场景
数据清洗IQR、Z-Score异常检测、传感器数据
特征缩放归一化、标准化神经网络、距离类模型(KNN、SVM)
降维PCA、t-SNE高维数据可视化、特征压缩
数据增强图像翻转、文本替换小样本图像/文本任务
缺失值处理模型填充、多重插值医疗数据、用户行为分析

根据数据特点和模型需求选择合适方法:结构化数据侧重特征工程与缩放,非结构化数据(如图像/文本)依赖增强与向量化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14849.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java基础】序列化、反序列化和不可变类

Hi~!这里是奋斗的明志,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 🌱🌱个人主页:奋斗的明志 🌱🌱所属专栏:Java基础面经 📚本系列文章为个…

android apk反编译

使用解压工具解压apk,使用dex2jar解析其中的dex文件为jar文件,再使用jd-gui将class反编译为java文件 1 工具下载 dex2jar下载 https://github.com/pxb1988/dex2jar/releases 直接去github上下载最新发布版本 注意,如果后面使用过程中遇到No…

PAT乙级( 1009 说反话 1010 一元多项式求导)C语言版本超详细解析

1009 说反话 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母&#x…

C++20导出模块及使用

1.模块声明 .ixx文件为导入模块文件 math_operations.ixx export module math_operations;//模块导出 //导出命名空间 export namespace math_ {//导出命名空间中函数int add(int a, int b);int sub(int a, int b);int mul(int a, int b);int div(int a, int b); } .cppm文件…

鸿蒙接入支付宝SDK后模拟器无法运行,报错error: install parse native so failed.

鸿蒙项目接入支付宝后,运行提示error: install parse native so failed. 该问题可能由于设备支持的 Abi 类型与 C 工程中的不匹配导致. 官网error: install parse native so failed.错误解决办法 根据官网提示在模块build-profile.json5中添加“x86_64”依然报错 问…

MongoDB开发规范

分级名称定义P0核心系统需7*24不间断运行,一旦发生不可用,会直接影响核心业务的连续性,或影响公司名誉、品牌、集团战略、营销计划等,可能会造成P0-P2级事故发生。P1次核心系统这些系统降级或不可用,会间接影响用户使用…

nodejs - vue 视频切片上传,本地正常,线上环境导致磁盘爆满bug

nodejs 视频切片上传,本地正常,线上环境导致磁盘爆满bug 原因: 然后在每隔一分钟执行du -sh ls ,发现文件变得越来越大,即文件下的mp4文件越来越大 最后导致磁盘直接爆满 排查原因 1、尝试将m3u8文件夹下的所有视…

微信小程序如何使用decimal计算金额

第三方库地址:GitHub - MikeMcl/decimal.js: An arbitrary-precision Decimal type for JavaScript 之前都是api接口走后端计算,偶尔发现这个库也不错,计算简单,目前发现比较准确 上代码 导入js import Decimal from ../../uti…

unity学习29:摄像机camera相关skybox 和 Render Texture测试效果

目录 1 摄像机 1.1 每个Scene里都自带一个摄像机 camera 1.2 可以创建多个camera 1.3 下面先看backgroundtype: 2 backgroundtype: 天空盒 skybox 2.1 清除标志,清除:天空盒 自选天空盒 2.2 window /Asset Store 2.3 导入skybox 3 backgroundtype: 纯色…

ximalaya(三) playUriList值解密--webpack

本文主要介绍解密音频播放url参数。 本文仅代表个人理解,如有其他建议可在评论区沟通。 声明 仅仅记录一下自己的学习方法,不作为其他参考、更不作为商业用途。如有侵犯请联系本人删除 目标地址:aHR0cHM6Ly93d3cueGltYWxheWEuY29tL3NvdW5k…

C# Winform怎么设计串口,客户端和相机控件界面显示

首先我们必须把这个类创建好 INIAPI using System; using System.Text; using System.Runtime.InteropServices;namespace Ini {public class IniAPI{#region INI文件操作/** 针对INI文件的API操作方法,其中的节点(Section)、键(KEY&#x…

【redis】数据类型之hash

Redis中的Hash数据类型是一种用于存储键值对集合的数据结构。与Redis的String类型不同,Hash类型允许你将多个字段(field)和值(value)存储在一个单独的key下,从而避免了将多个相关数据存储为多个独立的key。…

Qt:Qt Creator项目创建

目录 认识Qt Creator Qt Creator概览 使用Qt Creator新建项目 选择项目模板 选择项目路径 选择构建系统 填写类信息设置界面 选择语言和翻译文件 选择Qt套件 选择版本控制系统 最终效果 认识Qt Creator Qt Creator概览 从开始菜单或者快捷方式打开Qt Creator集成开…

家用报警器的UML 设计及其在C++和VxWorks 上的实现01

M.W.Richardson 著,liuweiw 译 论文描述了如何运用 UML(统一建模语言)设计一个简单的家用报警器,并实现到 VxWorks 操作系统上。本文分两个部分,第一部分描述了如何用 UML 设计和验证家用报警器的模型,以使…

node.js + html + Sealos容器云 搭建简易多人实时聊天室demo 带源码

node.js html Sealos容器云 搭建简易多人实时聊天室demo 带源码 前言功能介绍(demo演示)sealos官网配置node.js 编写服务端代码前端ui 调用接口整体项目目录部署到服务器 前言 hello哦盆友们,这次我们来十几行代码做一个超简单的多人聊天…

CPP集群聊天服务器开发实践(一):用户注册与登录

目录 1 客户端用户注册与登录 1.1 主要思想 1.2 网络层 1.3 业务层 1.4 数据层 1.5 测试结果 1 客户端用户注册与登录 1.1 主要思想 实现网络层、业务层、数据层的解耦,提高系统的可维护性。 网络层:主要实现对客户端连接、客户端读写请求的捕获…

【C语言】数 组与指针:深度剖析与等价表达

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 💯前言💯数组与指针的基本关系💯数组与指针的互换使用数组下标与指针的等价性 💯六个表达式的等价性💯指针运算的注意事项💯数组…

寒假2.7

题解 web&#xff1a;[HCTF 2018]WarmUp 打开是张表情包 看一下源代码 访问source.php&#xff0c;得到完整代码 代码审计 <?phphighlight_file(__FILE__);class emmm{public static function checkFile(&$page){$whitelist ["source">"source.p…

sqli-lab靶场学习(五)——Less15-17(post方法盲注、修改密码)

前言 第11-14关开始用post方法&#xff0c;15-17关会用到盲注&#xff0c;post方法盲注和get方法类似。 Less15 这关是单引号闭合&#xff0c;有报错但没有具体情况的回显&#xff0c;因此适合使用错误盲注。 在用户名密码框分别输入 账号&#xff1a;admin and 11 -- asd…

【Spring】什么是Spring?

什么是Spring&#xff1f; Spring是一个开源的轻量级框架&#xff0c;是为了简化企业级开发而设计的。我们通常讲的Spring一般指的是Spring Framework。Spring的核心是控制反转(IoC-Inversion of Control)和面向切面编程(AOP-Aspect-Oriented Programming)。这些功能使得开发者…