《机器学习》数据预处理简介

目录

[1. 数据清洗(Data Cleaning)](#1. 数据清洗(Data Cleaning))

(1)处理缺失值

(2)处理异常值

(3)处理重复数据

[2. 数据转换(Data Transformation)](#2. 数据转换(Data Transformation))

[(1)特征缩放(Feature Scaling)](#(1)特征缩放(Feature Scaling))

(2)对数变换

(3)离散化

(4)编码分类变量

[3. 特征工程(Feature Engineering)](#3. 特征工程(Feature Engineering))

(1)特征提取

(2)特征选择

(3)降维

[4. 数据分割(Data Splitting)](#4. 数据分割(Data Splitting))

[5. 处理不平衡数据](#5. 处理不平衡数据)

[6. 处理文本数据](#6. 处理文本数据)

[7. 处理时间序列数据](#7. 处理时间序列数据)

[8. 数据增强(Data Augmentation)](#8. 数据增强(Data Augmentation))

总结


数据预处理是机器学习中至关重要的一步,它直接影响模型的性能和效果。原始数据通常包含噪声、缺失值、不一致性等问题,因此需要通过预处理将其转化为适合模型训练的格式。以下是常见的数据预处理方法:


1. 数据清洗(Data Cleaning)

数据清洗的目的是处理数据中的噪声、错误和不一致性。

(1)处理缺失值
  • 删除缺失值:如果缺失值比例较高,可以直接删除相关样本或特征。

  • 填充缺失值

    • 使用均值、中位数或众数填充。

    • 使用插值法(如线性插值)。

    • 使用机器学习模型预测缺失值(如K近邻、回归模型)。

(2)处理异常值
  • 删除异常值:如果异常值明显是错误数据,可以直接删除。

  • 修正异常值:根据业务逻辑修正异常值。

  • 保留异常值:如果异常值是合理的(如极端事件),可以保留。

(3)处理重复数据
  • 删除完全重复的样本。

2. 数据转换(Data Transformation)

数据转换的目的是将数据转换为适合模型训练的格式。

(1)特征缩放(Feature Scaling)
  • 标准化(Standardization):将数据转换为均值为0、标准差为1的分布。

    z=x−μσz=σx−μ

    • 适用于大多数机器学习算法(如线性回归、支持向量机)。
  • 归一化(Normalization):将数据缩放到固定范围(如[0, 1])。

    x′=x−xminxmax−xminx′=xmax−xminx−xmin

    • 适用于神经网络、K近邻等算法。
(2)对数变换
  • 对偏态分布的数据进行对数变换,使其更接近正态分布。
(3)离散化
  • 将连续特征转换为离散特征(如将年龄分为"青年"、"中年"、"老年")。
(4)编码分类变量
  • 独热编码(One-Hot Encoding):将分类变量转换为二进制向量。

    • 适用于无序分类变量。
  • 标签编码(Label Encoding):将分类变量转换为整数标签。

    • 适用于有序分类变量。

3. 特征工程(Feature Engineering)

特征工程的目的是从原始数据中提取有用的特征,以提高模型性能。

(1)特征提取
  • 从原始数据中提取新特征(如从日期中提取"星期几"、"月份")。

  • 使用领域知识创建特征(如从文本中提取关键词)。

(2)特征选择
  • 过滤法:根据统计指标(如相关系数、卡方检验)选择特征。

  • 包裹法:使用模型评估特征的重要性(如递归特征消除)。

  • 嵌入法:在模型训练过程中选择特征(如L1正则化)。

(3)降维
  • 主成分分析(PCA):将高维数据降维到低维空间,保留主要信息。

  • t-SNE:用于可视化高维数据。

  • 线性判别分析(LDA):在降维的同时保留类别信息。


4. 数据分割(Data Splitting)

将数据集划分为训练集、验证集和测试集,以评估模型的性能。

  • 训练集:用于训练模型。

  • 验证集:用于调整超参数和选择模型。

  • 测试集:用于最终评估模型性能。

常见的分割比例:

  • 训练集:70%

  • 验证集:15%

  • 测试集:15%


5. 处理不平衡数据

当数据集中类别分布不均衡时,需要采取以下方法:

  • 过采样(Oversampling):增加少数类样本(如SMOTE算法)。

  • 欠采样(Undersampling):减少多数类样本。

  • 调整类别权重:在模型训练中为少数类赋予更高的权重。


6. 处理文本数据

文本数据需要特殊的预处理方法:

  • 分词:将文本分割为单词或词组。

  • 去除停用词:去除无意义的词(如"的"、"是")。

  • 词干提取(Stemming):将单词还原为词干形式。

  • 词向量化

    • 词袋模型(Bag of Words, BoW)

    • TF-IDF

    • 词嵌入(Word Embedding,如Word2Vec、GloVe)


7. 处理时间序列数据

时间序列数据需要特殊的预处理方法:

  • 时间特征提取:从时间戳中提取"小时"、"星期几"等特征。

  • 平滑处理:使用移动平均或指数平滑去除噪声。

  • 差分处理:将非平稳时间序列转换为平稳序列。


8. 数据增强(Data Augmentation)

在数据量不足时,可以通过数据增强生成更多样本:

  • 图像数据:旋转、翻转、裁剪、添加噪声。

  • 文本数据:同义词替换、随机删除单词。


总结

数据预处理是机器学习中不可或缺的一步,它直接影响模型的性能和泛化能力。通过合理的数据清洗、特征工程和数据转换,可以提高模型的准确性和稳定性。根据具体任务和数据特点,选择合适的方法进行预处理是关键。

相关推荐
好评笔记几秒前
多模态论文笔记——Coca(副)
论文阅读·人工智能·深度学习·计算机视觉·transformer·coca·dalle2
好评笔记几秒前
多模态论文笔记——Coca
人工智能·深度学习·计算机视觉·aigc·transformer·多模态·coca
何大春2 分钟前
Quo Vadis, Anomaly Detection? LLMs and VLMs in the Spotlight 论文阅读
论文阅读·人工智能·深度学习·论文笔记
Jackilina_Stone2 分钟前
【论文阅读笔记】SCI算法与代码 | 低照度图像增强 | 2022.4.21
论文阅读·人工智能·笔记·python·算法·计算机视觉
图王大胜36 分钟前
模型 九屏幕分析法
人工智能·解决方案·管理·决策·战略规划·企业发展·分析方法
程序猿阿伟37 分钟前
《量子AI:突破量子比特稳定性与容错性的关键瓶颈》
运维·人工智能·自动化
♢.*42 分钟前
攻克 NLP 面试:20 个常见技术问题及答案详解
人工智能·深度学习·自然语言处理
风_流沙1 小时前
AI在工作中的角色,有什么作用
人工智能
多恩Stone1 小时前
【Domain Generalization(1)】增量学习/在线学习/持续学习/迁移学习/多任务学习/元学习/领域适应/领域泛化概念理解
人工智能·学习·迁移学习
逐星ing1 小时前
【AIGC】使用Java实现Azure语音服务批量转录功能:完整指南
java·人工智能·aigc·语音识别·azure