机器学习 类别特征编码:Category Encoders 库的使用

✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。
🍎个人主页:小嗷犬的个人主页
🍊个人网站:小嗷犬的技术小站
🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。


本文目录

    • Category Encoders 简介
    • Category Encoders 安装
    • Category Encoders 的使用
    • 编码方法介绍


Category Encoders 简介

Category Encoders 是一个用于将分类变量编码为数值的 Python 库,它提供了多种不同的编码技术。这些编码技术可以将分类变量转换成数值表示,以便在机器学习算法中使用。这个库的设计与 scikit-learn 类似,因此可以很容易地与 scikit-learn 的流程和工具集成。

以下是 Category Encoders 库的一些主要特点:

  • 对 Pandas DataFrame 的原生支持:它支持 Pandas DataFrame 直接作为输入,也可以指定输出类型为 Pandas DataFrame。
  • 灵活的列配置:你可以通过列名或索引来明确配置要编码的列,或者让它自动推断出非数值列,无论输入的数据类型如何。
  • 低方差列的删除:它可以基于训练集可选地删除方差非常低的列,以避免给模型带来噪音。
  • 可移植性:你可以在数据上训练一个编码器,将其保存为 pickle 文件,以后可以重新使用它,而且可以得到相同的结果。
  • 兼容 scikit-learn:它可以像其他转换器一样接受类似数组的数据集,可以无缝地与 scikit-learn 的 Pipelines 或 ColumnTransformers 集成。

Category Encoders 安装

Category Encoders 库可以通过 pip 安装:

pip install category_encoders

或者通过 conda 安装:

conda install -c conda-forge category_encoders

Category Encoders 的使用

Category Encoders 库提供了多种编码方法,每种方法都对应的编码器:

import category_encoders as ceencoder = ce.BackwardDifferenceEncoder(cols=[...])
encoder = ce.BaseNEncoder(cols=[...])
encoder = ce.BinaryEncoder(cols=[...])      # 二进制编码
encoder = ce.CatBoostEncoder(cols=[...])    # CatBoost 编码
encoder = ce.CountEncoder(cols=[...])       # 计数编码
encoder = ce.GLMMEncoder(cols=[...])
encoder = ce.GrayEncoder(cols=[...])
encoder = ce.HashingEncoder(cols=[...])     # 哈希编码
encoder = ce.HelmertEncoder(cols=[...])
encoder = ce.JamesSteinEncoder(cols=[...])
encoder = ce.LeaveOneOutEncoder(cols=[...])
encoder = ce.MEstimateEncoder(cols=[...])
encoder = ce.OneHotEncoder(cols=[...])      # 独热编码
encoder = ce.OrdinalEncoder(cols=[...])     # 序数编码
encoder = ce.PolynomialEncoder(cols=[...])
encoder = ce.QuantileEncoder(cols=[...])
encoder = ce.RankHotEncoder(cols=[...])
encoder = ce.SumEncoder(cols=[...])
encoder = ce.TargetEncoder(cols=[...])      # 目标编码
encoder = ce.WOEEncoder(cols=[...])encoder.fit(X, y)
X_cleaned = encoder.transform(X_dirty)

编码方法介绍

每种编码方法都有其独特的原理和计算过程,适用于不同的数据情况和建模需求。以下是部分编码方法的简单介绍:

  1. BinaryEncoder:二进制编码,将每个类别的整数值表示为其二进制形式,适用于类别数量较多的特征。
  2. CatBoostEncoder:CatBoost 编码,一种基于目标变量的编码方法,使用目标变量的统计信息来为每个类别生成编码,以更好地捕获类别与目标之间的关系。
  3. CountEncoder:计数编码,将每个类别的值编码为该类别在训练集中出现的次数,有助于捕获类别的普遍性。
  4. HashingEncoder:哈希编码,将每个类别的值编码为其哈希值,能够较好的降低维度,但可能会引入冲突。
  5. OneHotEncoder:独热编码,将每个类别的值编码为一个布尔值,适用于类别数量较少的特征。
  6. OrdinalEncoder:序数编码,将每个类别的值编码为一个整数,适用于有序分类特征。
  7. TargetEncoder:目标编码,使用目标变量的平均值来为每个类别的编码,可能会导致过拟合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/265162.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用WebyogSQLyog使用数据库

数据库 实现数据持久化到本地: 使用完整的管理系统统一管理, 数据库(DateBase): 为了方便数据存储和管理(增删改查),将数据按照特定的规则存储起来 安装WebyogSQLyog -- 创建数…

STP(生成树协议)

STP(生成树协议) 生成树协议原理: ​在二层交换网络中,逻辑的阻塞部分接口,实现从根节点到所有节点唯一的路径的生成,成为一个没有环路的拓扑。当最佳路径数显故障时,个别被阻塞的接口将被打开…

Slate基础使用说明

目录 Slate基础使用说明 1. 简单教程 2. 要点说明 2.1 TCommands以及TCommands基类 2.2 FUICommandInfo 2.3 FUICommandList 2.4 FUIAction 2.5 UICommand 3. 代码源码 4. 工具使用 4.1 Display Ul Extension Points 4. 参考文章 Slate基础使用说明 1.…

linux逻辑卷LVM

创建LVMVG管理LV扩容 6.2.6 逻辑卷LVM LVM是Logical Volume Manager 的简称,译为逻辑卷管理,它是Linux下对硬盘分区的一种管理机制。LVM适合于管理大存储设备,并允许用户动态调整文件系统的大小。此外,LVM的快照功能可以帮助我们快…

算法leetcode|92. 反转链表 II(rust重拳出击)

文章目录 92. 反转链表 II:样例 1:样例 2:提示:进阶: 分析:题解:rust:go:c:python:java: 92. 反转链表 II: 给你单链表的…

期待已久:K8S终于迎来交换内存Beta支持!

关注【云原生百宝箱】公众号,获取更多云原生消息 Kubernetes 1.22 版本开始支持在 Linux 节点上使用交换内存的 Alpha 特性,而在 1.28 版本中升级为 Beta 版本并进行了许多改进。之前版本的 Kubernetes 不支持 Linux 系统上的交换内存,但随着…

微信小程序、mpvue性能测试与体验

最近一直在折腾mpvue写的微信小程序的性能优化,分享下实战的过程。 先上个优化前后的图: 可以看到打包后的代码量从 813KB减少到 387KB,Audits体验评分从 B到 A,效果还是比较明显的。其实这个指标说明不了什么,而且轻易就可以做…

Pytorch深度强化学习1-6:详解时序差分强化学习(SARSA、Q-Learning算法)

目录 0 专栏介绍1 时序差分强化学习2 策略评估原理3 策略改进原理3.1 SARSA算法3.2 Q-Learning算法 0 专栏介绍 本专栏重点介绍强化学习技术的数学原理,并且采用Pytorch框架对常见的强化学习算法、案例进行实现,帮助读者理解并快速上手开发。同时&#…

网络层重点协议——IP协议详解

✏️✏️✏️今天给大家分享的是网络层的重点协议——IP协议。 清风的CSDN博客 🛩️🛩️🛩️希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流! ✈️✈️✈️动动你们发财的…

UIKit-AVCapture(创建一个简单的摄像头demo)

AVCaptureVideoPreviewLayer 用于显示摄像头采集到的实时视频预览,可以直接添加到视图层次结构中。 AVCaptureVideoPreviewLayer可以嵌入 AVCaptureSession 处理摄像头捕获的数据封装后给屏幕 AVCaptureConnection 用于管理捕获会话中的数据流连接,…

Cocos Creator:坐标系

Cocos Creator:坐标系 坐标系节点位置坐标转换锚点缩放和旋转总结 在 Cocos Creator 3.8 中,节点坐标系统是游戏开发中的关键概念。它帮助开发者定位和排列场景中的各种元素。以下是关于节点坐标的使用详解: 坐标系 Cocos Creator 使用两种…

【数据结构】栈和队列超详解!(Stack Queue)

文章目录 前言一、栈1、栈的基本概念2、栈的实现(数组实现)3、栈的基本操作3.1 栈的结构设计3.2 栈常见的基本函数接口 4、栈的实现4.1 初始化栈4.2 栈的销毁4.3 入栈4.4 出栈4.5 判空4.6 长度4.7 获取栈顶元素 完整代码Stack.hStack.cTest.c 二、队列1、…