当前位置: 首页 > news >正文

机器学习数据预处理学习报告

一、学习背景与目的

在机器学习流程中,数据预处理是保障模型训练效果的关键环节。原始数据常存在缺失值、量纲不一致、特征格式不匹配等问题,直接影响模型对数据规律的学习。本次学习围绕 Pandas 与 Scikit-learn(sklearn)工具库,系统掌握数据预处理的核心技术,包括缺失值处理、数据标准化、特征编码及数据二值化,为后续机器学习建模奠定基础。

二、核心知识点总结

(一)缺失值处理

缺失值是数据集中常见问题,需先识别再通过删除或填充解决,核心工具包括 Pandas 内置函数与 sklearn 的SimpleImputer

1. 缺失值识别(Pandas)
  • 关键函数isnull() 功能:判断数据框(DataFrame)或 Series 中每个单元格是否为空,返回布尔值(True表示空值,False表示非空值)。 注意事项:Pandas 默认仅识别NaN为缺失值,需通过na_values参数手动指定其他缺失值格式(如"n/a""na""-"),确保识别全面性。 示例代码:

    python

    运行

    import pandas as pd
    missing_values = ["n/a", "na", "-"]
    df = pd.read_csv('property-data.csv', na_values=missing_values)
    print(df['NUM_BEDROOMS'].isnull())  # 查看该列空值情况
    
2. 缺失值处理方法
处理方式工具 / 函数核心逻辑适用场景
删除法Pandas dropna()删除包含空值的行 / 列,参数how="any"(有一个空值即删)、how="all"(全为空才删)数据量较大、空值占比低,且删除后不影响数据分布
填充法 - Pandasfillna()用指定值(如常数666)、均值(mean())、中位数(median())填充空值数据量较小,需保留样本完整性
填充法 - sklearnSimpleImputer支持 4 种策略: - strategy="mean"(均值填充,适用于正态分布数据) - strategy="median"(中位数填充,适用于含异常值数据) - strategy="constant"(常数填充,需指定fill_value) - strategy="most_frequent"(众数填充,适用于分类数据)标准化处理流程,适配 sklearn 建模 pipeline

(二)数据标准化

标准化旨在解决 “不同特征量纲不一致导致模型偏向方差大的特征” 问题,核心是将数据转换为统一规格(无量纲化),常用两种方法。

1. 核心概念
  • 定义:将特征分布调整为特定形式(如标准正态分布),消除量纲影响,使不同特征具备可比性。
  • 无量纲化类型
    • 中心化:数据平移(减去固定值,如均值);
    • 缩放:数据压缩 / 扩张(除以固定值,如标准差、最大值)。
2. 常用标准化方法
方法工具 / 函数计算公式特点
最大最小值标准化preprocessing.MinMaxScaler()\(X_{scaled} = \frac{X - X_{min}}{X_{max} - X_{min}}\)可通过feature_range指定目标范围(默认[0,1]),适用于需要固定数据范围的场景(如神经网络输入)
Z 值标准化preprocessing.StandardScaler()\(X_{scaled} = \frac{X - \mu}{\sigma}\)(\(\mu\)为均值,\(\sigma\)为标准差)转换后数据均值为 0、方差为 1,保留原始数据分布关系,适用于线性模型(如逻辑回归、SVM)

(三)特征编码

将非数值型分类特征转换为数值型,根据特征类型(名义 / 有序 / 有距)选择不同编码方式。

1. 特征类型划分
  • 名义变量:无顺序关系(如性别:男 / 女、血型:A/B/AB/O);
  • 有序变量:有顺序但不可计算(如学历:小学 < 初中 < 高中);
  • 有距变量:有顺序且可计算(如分数:100/90/60)。
    2. 核心编码方法
    编码方式工具 / 函数适用特征类型原理与示例
    独热编码preprocessing.OneHotEncoder()名义变量用 N 位二进制向量表示 N 个类别(如血型 A→[1,0,0,0],B→[0,1,0,0]),避免引入虚假顺序关系
    序号编码preprocessing.OrdinalEncoder()有序变量将类别按顺序映射为整数(如学历:小学→1,初中→2,高中→3),保留原有顺序
    目标标签编码preprocessing.LabelEncoder()目标变量(y)将目标标签映射为 0~n_classes-1 的整数(如 “存活”→1,“死亡”→0),仅用于目标值,不用于输入特征(X)

    (四)数据二值化

  • 定义:根据阈值将连续数据分为两类(0 或 1),实现 “非黑即白” 的简化表达。
  • 工具 / 函数preprocessing.Binarizer()
    核心参数:threshold(阈值,大于阈值为 1,否则为 0)。
    示例:将年龄二值化(阈值 30),年龄 > 30→1,年龄≤30→0:

    python

    运行

    from sklearn.preprocessing import Binarizer
    X = data.iloc[:,0].values.reshape(-1,1)  # 年龄列
    transformer = Binarizer(threshold=30).fit_transform(X)
    
  • 三、关键工具函数速查表

    工具库函数核心功能
    Pandasisnull()识别缺失值(布尔判断)
    Pandasdropna()删除含空值的行 / 列
    Pandasfillna()填充缺失值(常数 / 均值 / 中位数)
    sklearn.preprocessingMinMaxScaler()最大最小值标准化
    sklearn.preprocessingStandardScaler()Z 值标准化(均值 0、方差 1)
    sklearn.preprocessingOneHotEncoder()名义变量独热编码
    sklearn.preprocessingOrdinalEncoder()有序变量序号编码
    sklearn.preprocessingLabelEncoder()目标标签编码
    sklearn.preprocessingBinarizer()数据二值化
    sklearn.imputeSimpleImputer()标准化填充缺失值(均值 / 中位数 / 众数 / 常数)

    四、学习总结与应用建议

  • 流程优先级:数据预处理需遵循 “先识别缺失值→处理缺失值→标准化→特征编码” 的顺序,确保每一步输出符合下一步输入要求。
  • 方法选择原则
    • 缺失值:数据量大用删除法,数据量小用填充法(正态分布用均值,异常值多用中位数,分类数据用众数);
    • 标准化:线性模型用 Z 值标准化,神经网络用 MinMaxScaler;
    • 编码:名义变量用独热编码,有序变量用序号编码,目标值用 LabelEncoder。
  • 工具适配:Pandas 适合快速数据清洗(如缺失值初步处理),sklearn 适合标准化流程(便于与后续建模整合为 pipeline)。
http://www.dtcms.com/a/341751.html

相关文章:

  • Linux用30秒部署Nginx+Tomcat+Mysql+Jdk1.8环境
  • Paging in Operating System
  • windows server 彻底卸载oracle 11g
  • Linux命令大全-ps命令
  • AdaCoT:基于强化学习的帕累托最优自适应思维链触发机制
  • 自动泊车辅助系统的漏洞、威胁与风险分析
  • MDP(马尔可夫决策过程)与 RL(强化学习)
  • 半导体开关器件深度解析:PNP、NPN、PMOS、NMOS
  • 使用PCL读取PCD点云文件
  • MTK Linux DRM分析(一)- DRM简介
  • 基于STM32的感应开关盖垃圾桶
  • 基于Pytochvideo训练自己的的视频分类模型
  • 数据结构-有序二叉树
  • 中科米堆CASAIM手持式三维扫描仪扫描塑料件检测尺寸形位公差
  • Cobbler:一站式自动化系统部署方案
  • C++高频知识点(三十二)
  • Comfyui加载图像编辑Qwen-Image-Edit工作流之Windows篇
  • C++之多态(从0到1的突破)
  • 【clion】cmake脚本1:调试脚本并构建Fargo项目win32版本
  • python 可迭代对象相关知识点
  • “无纸化办公”加速推进,房产证智能识别技术或成行业标配
  • Linux高效备份:rsync + inotify实时同步
  • 服务器硬盘进行分区和挂载
  • SpringBoot3后端项目介绍:mybig-event
  • 【MySQL的卸载】
  • 5.k8s控制器-Replicaset-Deployment、pod 反亲和性
  • VLN领域的“ImageNet”打造之路:从MP3D数据集、MP3D仿真器到Room-to-Room(R2R)、RxR、VLN-CE
  • Adobe Acrobat 表单创建与设置
  • 8.20 打卡 DAY 47 注意力热图可视化
  • 不会写 SQL 也能出报表?积木报表 + AI 30 秒自动生成报表和图表