机器学习 类别特征编码: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.mzph.cn/news/205527.shtml

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

相关文章

202350读书笔记|《再别康桥:徐志摩诗选》——微风起,清芬酝藉,不减荼

202350读书笔记|《再别康桥:徐志摩诗选》——微风起,清芬酝藉,不减荼 《再别康桥:徐志摩诗选》我觉得有时候诗人是很狂热的,上头的感觉。 有几首很喜欢,节选如下: 偶然 我是天空里的一片云&…

内测分发平台支持应用的异地容灾的重要性

大家好,我是咕噜-凯撒,随着网络社会的发展,人们对于应用程序的依赖程度越来越高。无论是企业用户还是个人用户,都希望能够随时随地访问到需要使用的应用。所以对于内测分发平台来说保证应用的连续性和可靠性是非常的关键。内侧分发…

推荐一个开源的监控程序-Uptime

先放几张截图介绍一下 现场演示 尝试一下! 东京演示服务器:https://demo.uptime.kuma.pet(由 Uptime Kuma 赞助商 赞助) 这是一个临时的现场演示,所有数据将在10分钟后删除。使用距离您较近的一个,但我建…

LinuxBasicsForHackers笔记 -- BASH 脚本

你的第一个脚本:“你好,黑客崛起!” 首先,您需要告诉操作系统您要为脚本使用哪个解释器。 为此,请输入 shebang,它是井号和感叹号的组合,如下所示:#! 然后,在 shebang …

探索SpringBoot发展历程

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 循序渐进学SpringBoot ✨特色专栏&…

年薪50w的测试开发是如何编写测试方案!看过来!!!

1. 测试方案内容 测试目标 测试对象测试完成时间 测试范围 测试目标 新增功能回归模块优先级 测试顺序测试深浅 测试策略 测试方法:黑盒、白盒、灰盒测试阶段:单元、集成、系统、验收测试类型: 功能性性能和稳定性安全自动化... 测试工…

您知道计算机是怎么分类的嘛

地表最强计算机 第 61 版全球最强大的超级计算机已经发布。名为 Top500,顾名思义,该列表列出了全球 500 台最强大的超级计算机。榜单显示,美国的AMD、英特尔和IBM处理器是超级计算系统的首选。在 TOP10 中,有四个系统使用 AMD 处理…

深入浅出分析kafka客户端程序设计 ----- 消费者篇----万字总结

1. Kafka 消费者的逻辑 配置消费者客户端参数。创建相应的消费者实例。订阅主题。拉取消息并消费;提交消息位移;关闭消费者实例; 2 Kafka 的C API 2.1 RdKafka::Conf 见生成者实现文章。 2.2 RdKafka::Event 见生成者实现文章。 2.3 R…

C++ day49 买卖股票的最佳时机

题目1:121 买卖股票的最佳时机 题目链接:买卖股票的最佳时机 对题目的理解 prices[i]表示一支股票在第i天的价格,只能在某一天买入这支股票,并在之后的某一天卖出该股票,从而获得最大利润,返回该最大值&…

IPTABLES(一)

文章目录 1. iptables基本介绍1.1 什么是防火墙1.2 防火墙种类1.3 iptables介绍1.4 包过滤防火墙1.5 包过滤防火墙如何实现 2. iptables链的概念2.1 什么是链2.2 iptables有哪些链 3. iptables表的概念3.1 什么是表3.2 表的功能3.3 表与链的关系 4. iptables规则管理4.1 什么是…

Autosar通信实战系列05-CanNM模块进阶常见问题思考

本文框架 前言1. UDS 0x28服务控制Nm报文收发后对状态机有影响?2. 节点网络启动后第一帧是否必须是网络管理报文?3. 主动唤醒后发送的第一帧报文为NM报文如何配置?4. CanNmMsgCycleOffset的使用场景?5. 什么情况下CBV中RepeatMessageRequest Bit置位?6. 主动(本地)唤醒与…

【华为数据之道学习笔记】3-4主数据治理

主数据是参与业务事件的主体或资源,是具有高业务价值的、跨流程和跨系统重复使用的数据。主数据与基础数据有一定的相似性,都是在业务事件发生之前预先定义;但又与基础数据不同,主数据的取值不受限于预先定义的数据范围&#xff0…

MySql概述及其性能说明

MySQL是一种开源的关系型数据库管理系统,由瑞典MySQL AB公司开发,现属于Oracle公司。MySQL是最流行的开源数据库之一,被广泛地应用于Web开发中。MySQL提供了一个高度稳定可靠的数据存储解决方案,同时也可以很容易地跨平台运行。My…

LeetCode860. Lemonade Change

文章目录 一、题目二、题解 一、题目 At a lemonade stand, each lemonade costs $5. Customers are standing in a queue to buy from you and order one at a time (in the order specified by bills). Each customer will only buy one lemonade and pay with either a $5,…

2023年广东工业大学腾讯杯新生程序设计竞赛

E.不知道叫什么名字 题意:找一段连续的区间,使得区间和为0且区间长度最大,输出区间长度。 思路:考虑前缀和,然后使用map去记录每个前缀和第一次出现的位置,然后对数组进行扫描即可。原理:若 s …

【Android】Retrofit创建实例源理

文章目录 Retrofit类Builder内部类baseUrl()addConverterFactory()client() 对retrofit的创造实例过程进行源码剖析。 在说之前,介绍一个api,用于判断对象是否为空,然后执行,否则抛出异常,该api在下边很多地方都会出现…

Linux篇之在Centos环境下搭建Nvidia显卡驱动

一、前提条件 1、首先确认内核版本和发行版本,再确认显卡型号 uname -a // Linux localhost.localdomain 4.18.0-408.el8.x86_64 #1 SMP Mon Jul 18 17:42:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux1.2 cat /etc/redhat-release // CentOS Stream release 81.3…

【S2ST】Direct Speech-to-Speech Translation With Discrete Units

【S2ST】Direct Speech-to-Speech Translation With Discrete Units AbstractIntroductionRelated workModelSpeech-to-unit translation (S2UT) modelMultitask learningUnit-based vocoder ExperimentsDataSystem setupBaselineASRMTTTSS2TTransformer Translatotron Evaluat…

Python Jinja2 库的无限可能性

更多资料获取 📚 个人网站:ipengtao.com Jinja2,作为Python中最流行的模板引擎之一,为开发者提供了强大的工具,用于在Web应用和其他项目中生成动态内容。本文将深入研究 Jinja2 库的各个方面,提供更丰富的…

SQL CREATE INDEX 语句- 提高数据库检索效率的关键步骤

SQL CREATE INDEX 语句 SQL CREATE INDEX 语句用于在表中创建索引。 索引用于比其他方式更快地从数据库中检索数据。用户无法看到索引,它们只是用于加速搜索/查询。 注意: 使用索引更新表比不使用索引更新表需要更多的时间(因为索引也需要…