数据预处理

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

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

一、缺失值处理

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

总结

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

相关推荐
Cat God 00713 分钟前
FTP、FTPS 和 SFTP 的区别
网络
深圳佛手19 分钟前
jupyter notebook如何使用虚拟环境?
人工智能·python
Mintopia22 分钟前
⚙️ WebAssembly在AIGC推理中的优化细节
人工智能·llm·trae
Mintopia25 分钟前
🌐 WebAIGC的技术普惠:降低创作门槛还是加剧数字鸿沟?
人工智能·aigc
白日做梦Q27 分钟前
少样本学习(Few-Shot Learning):让AI学会“举一反三”的图像分类新范式
人工智能
码上掘金30 分钟前
基于YOLO和大语言模型的PCB智能缺陷检测系统
人工智能·yolo·语言模型
雪域迷影44 分钟前
Windows11中使用VS2022编译运行libevent网络库
网络·github·cmake·visual studio·libevent
遇见火星1 小时前
常见Nmap语句
网络·nmap
martinzh1 小时前
AI工具选择困难症?Spring AI帮你省掉64%的令牌费用
架构
裤裤兔1 小时前
卷积神经网络中的自适应池化
人工智能·神经网络·cnn·自适应池化