当前位置: 首页 > 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.lryc.cn/news/626836.html

相关文章:

  • 【Task02】:四步构建简单rag(第一章3节)
  • 第R6周:LSTM实现糖尿病探索与预测
  • 深度学习核心技巧与实战指南
  • 机器学习中的数据处理技巧
  • Node.js中的Prisma应用:现代数据库开发的最佳实践
  • 关联规则挖掘3:Eclat算法——等价类转换(Equivalence Class Transformation)
  • Simulink实现RELS递推最小二乘算法
  • 【机器学习】什么是损失景观(Loss Landscape)?
  • 漏扫 js 里面包含一些敏感内容 利用二进制加密 保持原始内容不变 又能过漏扫
  • 亚马逊蓝海掘金:以需供比为锚点的精准选品策略
  • 高压柜无线测温:给智能化配电室装上“智能体温监测仪”
  • Leetcode 深度优先搜索 (11)
  • C语言---分隔符、常量、注释、标识符、关键字、空格
  • 笔试——Day44
  • 域名加白怎么做
  • 实战:本地大模型+function Calling,获取北京天气
  • 保姆级Debezium抽取SQL Server同步kafka
  • JSON::Value 功能详解:从三目运算符到高级用法
  • Pytest项目_day20(log日志)
  • PyTorch API 2
  • GPT-5 上线风波深度复盘:从口碑两极到策略调整,OpenAI 的变与不变
  • C++开发/Qt开发:单例模式介绍与应用
  • 拓扑排序判断环 P1347 排序题解
  • 第二十七天:游戏组队问题
  • 跨平台 RTSP/RTMP 播放器工程化实践:低延迟与高稳定性的挑战与突破
  • Redisson最新版本(3.50.0左右)启动时提示Netty的某些类找不到
  • pip 安装常见错误及实例化解决办法大全
  • Tomcat部署与HTTP协议详解
  • 凸问题-非凸问题-非凸模型
  • 第十四届“中国软件杯”大赛晋级现场总决赛名单公布