数据预处理

以下是机器学习数据预处理技术的详细总结,内容涵盖缺失值处理、数据标准化、特征编码和数据二值化等核心方法。

机器学习数据预处理技术总结

一、缺失值处理

1.1 Pandas处理方法

检测缺失值

  • isnull()函数:判断各个单元格是否为空值

  • 需要配合na_values参数识别多种缺失值表示形式(如"n/a", "na", "--"等)

处理缺失值

  • dropna():删除包含空字段的行

    • 参数说明:

      • axis:默认为0,逢空值剔除整行

      • how:'any'有一个数据为空就去掉整行;'all'所有数据都为空才去掉整行

      • thresh:设置需要多少非空值的数据才保留

      • subset:设置要检查的列

      • inplace:是否修改源数据

  • fillna():用指定内容替换空字段

    • 可替换为固定值(如666)

    • 可使用统计量:mean()均值替换、median()中位数替换

1.2 Scikit-learn处理方法

SimpleImputer类提供多种填补策略:

复制代码
from sklearn.impute import SimpleImputer
  • 均值填补 ​:strategy="mean"

  • 中位数填补 ​:strategy="median"

  • 常数填补 ​:strategy="constant",配合fill_value参数

  • 众数填补 ​:strategy="most_frequent",适用于分类特征

二、数据标准化

2.1 标准化的重要性

  • 调整特征数据分布为标准正态分布(均值为0,方差为1)

  • 防止方差过大的特征主导目标函数

  • 消除不同特征量纲影响,确保数据可比性

2.2 无量纲化处理

  • 中心化​:让所有记录减去固定值,平移数据位置

  • 缩放处理​:除以固定值将数据固定在特定范围

2.3 常用标准化方法

MinMaxScaler(最大最小值标准化)​

  • 将数据缩放到指定范围(默认[0,1])

  • 可通过feature_range参数自定义范围

  • 公式:(x - min)/(max - min)

StandardScaler(Z值标准化)​

  • 基于均值和标准差:(x - μ)/σ

  • 保留数据原始分布关系

  • 处理后均值为0,标准差为1

三、特征编码

3.1 特征类型分类

  1. 名义变量​:数值相互独立(如性别:男、女)

  2. 有序变量​:数值有顺序但不能计算(如学历:小学、初中、高中)

  3. 有距变量​:数值有联系且可计算(如分数:100、90、60)

3.2 编码方法

独热编码(OneHotEncoder)​

  • 用N位状态位对N个可能取值编码

  • 示例:血型编码为4维稀疏向量

  • 优点:消除数值大小关系影响

序号编码(OrdinalEncoder)​

  • 处理类别间具有大小关系的数据

  • 示例:高→3、中→2、低→1

  • 保留大小顺序关系

目标标签编码(LabelEncoder)​

  • 使用0到n_classes-1之间的值编码

  • 缺点:数值无实际含义,可解释性差

  • 适用场景有限

四、数据二值化

4.1 二值化处理

  • 根据数值是否大于阈值将数据分为两类(0或1)

  • Binarizer类实现:threshold参数设置阈值

  • 应用场景:年龄分类、成绩等级划分等

4.2 应用示例

复制代码
from sklearn.preprocessing import Binarizer
transformer = Binarizer(threshold=30).fit_transform(X)

将年龄大于30的编码为1,否则为0

五、其他预处理技术

5.1 常用预处理函数汇总

函数 功能
preprocessing.MaxAbsScaler() 绝对值最大标准化
preprocessing.RobustScaler() 带离群值数据集标准化
preprocessing.QuantileTransformer() 使用分位数信息变换特征
preprocessing.PowerTransformer() 使用幂变换执行到正态分布的映射
preprocessing.Normalizer() 正则化
preprocessing.KBinsDiscretizer() 将连续数据离散化

5.2 综合应用建议

  1. 数据清洗优先处理缺失值和异常值

  2. 特征工程根据特征类型选择合适的编码方式

  3. 标准化处理提升模型收敛速度和性能

  4. 方法选择需结合具体数据和业务场景

总结

数据预处理是机器学习流程中的关键环节,直接影响模型效果。通过系统的缺失值处理、标准化、特征编码和二值化等方法,能够将原始数据转化为适合机器学习模型处理的格式,为后续建模分析奠定坚实基础。

相关推荐
灵机一物1 分钟前
灵机一物AI原生电商小程序、PC端(已上线)-AI产业深度解析:Token供需失衡下的算力战争与产业变革
大数据·人工智能·深度学习
MediaTea2 分钟前
ML:逻辑回归的基本原理与实现
人工智能·算法·机器学习·数据挖掘·逻辑回归
Carl_奕然3 分钟前
【大模型】Agent 之:从 Context 到 Harness 的工程革命
人工智能·计算机视觉·自然语言处理
wayz114 分钟前
Day 19:LSTM与时间序列预测
人工智能·深度学习·lstm
TOWE technology5 分钟前
EN32/G2401FCI——32A大功率,24位国标输出的高密度配电方案
linux·服务器·网络·科技·数据中心·pdu·智能pdu
索木木7 分钟前
Flash Attention反向梯度优化显存
人工智能·机器学习·大模型·attention·训练·显存优化·aiinfra
0点51 胜9 分钟前
[MediaForge] 架构之美:依赖倒置原则与好莱坞法则在微内核中的实战
架构·依赖倒置原则
mit6.82410 分钟前
[CS153]AI基础设施与技术栈
人工智能
量子-Alex10 分钟前
【大模型智能体】AutoFlow:大型语言模型代理的自动化工作流生成
人工智能·语言模型·自动化
Wzx19801211 分钟前
cozen平台开发智能体
人工智能