数据预处理

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

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

一、缺失值处理

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. 方法选择需结合具体数据和业务场景

总结

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

相关推荐
hqyjzsb37 分钟前
盲目用AI提效?当心陷入“工具奴”陷阱,效率不增反降
人工智能·学习·职场和发展·创业创新·学习方法·业界资讯·远程工作
Eloudy44 分钟前
用 Python 直写 CUDA Kernel的技术,CuTile、TileLang、Triton 与 PyTorch 的深度融合实践
人工智能·pytorch
神的泪水1 小时前
CANN 实战全景篇:从零构建 LLM 推理引擎(基于 CANN 原生栈)
人工智能
yuanyuan2o21 小时前
【深度学习】全连接、卷积神经网络
人工智能·深度学习·cnn
前端市界1 小时前
用 React 手搓一个 3D 翻页书籍组件,呼吸海浪式翻页,交互体验带感!
前端·架构·github
文艺理科生1 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
八零后琐话1 小时前
干货:Claude最新大招Cowork避坑!
人工智能
郝学胜-神的一滴1 小时前
深入浅出:使用Linux系统函数构建高性能TCP服务器
linux·服务器·开发语言·网络·c++·tcp/ip·程序人生
天若有情6731 小时前
【自研实战】轻量级ASCII字符串加密算法:从设计到落地(防查岗神器版)
网络·c++·算法·安全·数据安全·加密