数据预处理

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

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

一、缺失值处理

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

总结

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

相关推荐
我还可以再学点5 小时前
八股文面试攻略四:网络篇
网络·面试·职场和发展
q***76665 小时前
显卡(Graphics Processing Unit,GPU)架构详细解读
大数据·网络·架构
还不秃顶的计科生5 小时前
如何快速用cmd知道某个文件夹下的子文件以及子文件夹的这个目录分支具体的分支结构
人工智能
九河云5 小时前
不同级别华为云代理商的增值服务内容与质量差异分析
大数据·服务器·人工智能·科技·华为云
网安小白的进阶之路5 小时前
B模块 安全通信网络 第一门课 园区网实现与安全-1
网络·安全
Elastic 中国社区官方博客5 小时前
Elasticsearch:Microsoft Azure AI Foundry Agent Service 中用于提供可靠信息和编排的上下文引擎
大数据·人工智能·elasticsearch·microsoft·搜索引擎·全文检索·azure
大模型真好玩5 小时前
Gemini3.0深度解析,它在重新定义智能,会是前端工程师噩梦吗?
人工智能·agent·deepseek
机器之心6 小时前
AI终于学会「读懂人心」,带飞DeepSeek R1,OpenAI o3等模型
人工智能·openai
AAA修煤气灶刘哥6 小时前
从Coze、Dify到Y-Agent Studio:我的Agent开发体验大升级
人工智能·低代码·agent
陈佬昔没带相机6 小时前
MiniMax M2 + Trae 编码评测:能否与 Claude 4.5 扳手腕?
前端·人工智能·ai编程