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

Scikit-learn 预处理函数分类详解

数据标准化类函数

  1. preprocessing.scale()

    • 功能:对数据进行标准化处理
    • 原理:将数据转换为均值为 0、标准差为 1 的分布
    • 特点:直接对输入数据进行转换,返回标准化后的数组
    • 适用场景:快速标准化单个数据集
  2. preprocessing.MinMaxScaler()

    • 功能:最大最小值标准化
    • 原理:将数据缩放到 [0,1] 区间,公式为\(X_{scaled} = \frac{X - X_{min}}{X_{max} - X_{min}}\)
    • 特点:可通过feature_range参数指定缩放范围(如 [5,10])
    • 适用场景:需要将数据映射到特定范围的场景
  3. preprocessing.StandardScaler()

    • 功能:Z 值标准化
    • 原理:基于均值和标准差转换,公式为\(X_{scaled} = \frac{X - \mu}{\sigma}\)
    • 特点:转换后数据均值为 0,方差为 1,保留原始数据分布特征
    • 适用场景:大多数机器学习算法,特别是基于距离的算法
  4. preprocessing.MaxAbsScaler()

    • 功能:绝对值最大标准化
    • 原理:通过除以每个特征的最大值将数据缩放至 [-1,1] 区间
    • 特点:不移动数据(不破坏稀疏性),适合稀疏数据
    • 适用场景:存在大量零值的稀疏数据
  5. preprocessing.RobustScaler()

    • 功能:带离群值数据集的标准化
    • 原理:使用中位数和四分位范围进行缩放,对异常值不敏感
    • 特点:不受异常值影响,比 StandardScaler 更稳健
    • 适用场景:含有离群值的数据

数据转换类函数

  1. preprocessing.QuantileTransformer()

    • 功能:使用分位数信息变换特征
    • 原理:将数据映射到均匀分布或正态分布
    • 特点:对异常值具有鲁棒性,可将不同分布的数据转换为相同分布
    • 适用场景:需要将数据转换为特定分布的情况
  2. preprocessing.PowerTransformer()

    • 功能:通过幂变换映射到正态分布
    • 原理:应用幂函数将数据转换为更接近正态分布的形式
    • 特点:提供 Box-Cox 和 Yeo-Johnson 两种变换方法
    • 适用场景:非正态分布数据需要转换为正态分布时
  3. preprocessing.Normalizer()

    • 功能:数据正则化
    • 原理:将每个样本缩放至单位范数(L1、L2 或最大范数)
    • 特点:对每个样本单独处理,不考虑特征间的缩放
    • 适用场景:文本分类、聚类等需要样本间比较的场景

特征编码类函数

  1. preprocessing.OrdinalEncoder()

    • 功能:将分类特征转换为有序数值
    • 原理:为每个类别分配一个整数,保留类别间的顺序关系
    • 特点:适用于有序分类特征(如学历:小学 < 初中 < 高中)
    • 注意:会引入类别间的大小关系,可能影响模型
  2. preprocessing.LabelEncoder()

    • 功能:将分类目标值转换为数值
    • 原理:将目标变量的每个类别映射到 0 到 n_classes-1 的整数
    • 特点:仅用于目标变量 y,不用于输入特征 X
    • 适用场景:分类问题中对目标变量的编码
  3. preprocessing.MultiLabelBinarizer()

    • 功能:多标签数据二值化
    • 原理:将每个样本的多个标签转换为二进制数组
    • 特点:支持样本同时属于多个类别的情况
    • 适用场景:多标签分类问题
  4. preprocessing.OneHotEncoder()

    • 功能:独热编码
    • 原理:将 N 个类别转换为 N 维稀疏向量,每个类别对应一个维度
    • 特点:消除类别间的大小关系,增加特征维度
    • 适用场景:名义变量(无顺序关系的分类特征)

其他预处理函数

  1. preprocessing.KBinsDiscretizer()

    • 功能:连续数据离散化
    • 原理:将连续特征划分为 k 个离散区间
    • 特点:提供均匀、 quantile 和 k-means 三种分箱策略
    • 适用场景:需要将连续特征转换为分类特征时
  2. preprocessing.FunctionTransformer()

    • 功能:自定义特征处理函数
    • 原理:将用户定义的函数应用于特征转换
    • 特点:灵活性高,可实现任意自定义转换逻辑
    • 适用场景:需要特殊数据转换时
  3. preprocessing.Binarizer()

    • 功能:特征二值化
    • 原理:根据阈值将数值特征转换为 0 或 1
    • 特点:可通过threshold参数设置阈值
    • 适用场景:需要将特征简化为二元值的情况
  4. preprocessing.PolynomialFeatures()

    • 功能:创建多项式特征
    • 原理:生成特征的多项式组合和交互项
    • 特点:可通过degree参数指定多项式阶数
    • 适用场景:捕捉特征间的非线性关系和交互效应
  5. preprocessing.Imputer()

    • 功能:缺失值填补
    • 原理:使用统计量(均值、中位数、众数等)填充缺失值
    • 特点:支持多种填充策略,处理数据中的缺失值
    • 适用场景:数据预处理阶段处理缺失值
http://www.dtcms.com/a/340300.html

相关文章:

  • pnpm : 无法加载文件 C:\Program Files\nodejs\pnpm.ps1,因为在此系统上禁止运行脚本。
  • 在 React 中,​父子组件之间的通信(传参和传方法)
  • scikit-learn/sklearn学习|变量去中心化和标准化
  • 2.3 Flink的核心概念解析
  • 详解flink java table api基础(三)
  • Flink Stream API - 顶层Operator接口StreamOperator源码超详细讲解
  • OSPF 典型组网
  • CISP-PTE之路--10文
  • 公有地址和私有地址
  • 【GPT入门】第51课 将hf模型转换为GGUF
  • 深入(流批【牛批】框架)Flink的机制
  • 【Java后端】Spring Boot 全局异常处理最佳实践
  • ssl代理
  • 一会儿能ping通一会ping不通解决方案
  • JavaScript手录18-ajax:异步请求与项目上线部署
  • AI 自动化编程 trae 体验 页面添加富编辑器
  • (5)软件包管理器 yum | Vim 编辑器 | Vim 文本批量化操作 | 配置 Vim
  • 深度解析:RESTful API中的404错误 - 不是所有404都是Bug
  • Vue 3项目中的路由管理和状态管理系统
  • 【Day 31】Linux-LNMP
  • MySQL基础操作
  • SpringBoot + MyBatis-Plus 使用 listObjs 报 ClassCastException 的原因与解决办法
  • Rabbit 实战指南-学习笔记
  • HTML+CSS:浮动详解
  • 3D文档控件Aspose.3D实用教程:使用 C# 构建 OBJ 到 U3D 转换器
  • awk 基础用法示例
  • 测试DuckDB插件对不同格式xlsx文件的读写效率
  • MyCAT分库分表
  • Go特有的安全漏洞及渗透测试利用方法(通俗易懂)
  • 次短路P2865 [USACO06NOV] Roadblocks G题解