机器学习 类别特征编码: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 处理…

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 什么是…

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

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

MySql概述及其性能说明

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

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

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

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 库的各个方面,提供更丰富的…

数据科学:Matplotlib、Seaborn笔记

数据科学:Numpy、Pandas 数据科学:Matplotlib、Seaborn笔记 数据科学:Numpy、Pandas、Matplotlib、Seaborn、Scipy、Scikit-Learn 三、Matplotlib1.Matplotlib subplots函数2.tight_layout()函数3.Matplotlib grid()设置网格格式4.fill_bet…

<蓝桥杯软件赛>零基础备赛20周--第9周--前缀和与差分

报名明年4月蓝桥杯软件赛的同学们,如果你是大一零基础,目前懵懂中,不知该怎么办,可以看看本博客系列:备赛20周合集 20周的完整安排请点击:20周计划 每周发1个博客,共20周(读者可以按…

从零开始的c语言日记day41——自定义类型结构体

一、结构体的声明 1.1结构的基础知识 结构是一些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 Tag结构体标签 Member-list成员列表-里面可以有很多成员 Variable-list变量列表 结构体类型的定义方式 S1,s2是struct stu类型的…

黑苹果之显卡篇

一、什么是显卡 显卡GPU(Video card、Display card、Graphics card、Video adapter)是个人计算机基础的组成部分之一,将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正…

python数据分析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 pandas统计分析基础实训 实训1 读取并查看某地区房屋销售数据的基本信息1. 训练要点2. 需求说明3.实现思路及步骤 实训2 提取房屋售出时间信息并描述房屋价格信息1. 训练要点…