【特征工程】分类变量:BinaryEncoder二进制编码方法详解

Binary Encoding:二进制编码方法详解

Binary Encoding是将每个整数表示为二进制数,然后按位拆分为多个二进制变量。这种方法旨在减少维度,同时避免了One-Hot Encoding的高维稀疏问题。

Binary encoding for categorical variables, similar to onehot, but stores categories as binary bitstrings.

例如,如果有一个分类变量有3个类别,分别用0、1、2表示,那么它们的二进制编码可能如下:

  • 类别 0: 00
  • 类别 1: 01
  • 类别 2: 10

这样,每个类别都被编码为一个唯一的二进制数。

2. 优缺点

优点:

  • 维度减少: 相较于One-Hot Encoding,Binary Encoding能够显著减少维度,降低模型复杂度,提高训练效率。
  • 空间效率: 由于二进制编码的方式,Binary Encoding相对于One-Hot Encoding在存储上更加紧凑,尤其在处理大规模数据时具备优势。

缺点:

  • 大小关系的引入: 与其他编码方法一样,Binary Encoding也可能引入类别之间的大小关系,可能对某些模型产生误导。

3. 参考代码案例

以下是使用Python的category_encoders库进行Binary Encoding的简单示例:

import pandas as pd
from category_encoders import BinaryEncoder# 创建示例数据
data = {'Category': [0, 1, 2, 3, 0, 1, 2, 3]} # 可以增加类别
df = pd.DataFrame(data)# 初始化BinaryEncoder
encoder = BinaryEncoder(cols=['Category'])# 对分类变量进行二进制编码
df_encoded = encoder.fit_transform(df)# 打印编码后的数据
df_encoded
输入输出
[0, 1, 2, 3, 0, 1, 2, 3]在这里插入图片描述
[0, 1, 2, 0, 1, 2]在这里插入图片描述
[0, 1, 2, 0, 1, 2,3,4,5,6,7,8,9]在这里插入图片描述

可以修改示例数据中的类别,比如增加到7、8、9等等,会发现相比起独热编码——将每个类别作为一列,使用0和1判断是否属于这一个类别,二进制方法不会新增更多的维度(列)。

4. 适合的模型类型

Binary Encoding主要适用于树状模型,如决策树、随机森林和梯度提升树等。这是因为这些模型能够有效处理高维度的输入,且不受类别大小关系的影响。在处理大规模数据集时,Binary Encoding能够在保持模型性能的同时降低计算成本,使其成为一种有效的特征工程方法。

总体而言,Binary Encoding在适用场景下是一种强大的编码方法,通过平衡维度减少和空间效率,为建模提供了一种有效的特征表示方式。

官方文档:https://contrib.scikit-learn.org/category_encoders/

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

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

相关文章

2023年全球软件质量效能大会(QECon北京站):核心内容与学习收获(附大会核心PPT下载)

此次大会的主题为“智能时代的质量新篇章”。来自全球的软件质量与效能专家、企业领袖、技术研发人员等齐聚一堂,共同探讨软件质量与效能的新理念、新技术、新实践。 一、大会的核心内容 1、智能时代软件质量的新挑战与机遇 随着人工智能、大数据等技术的快速发展…

presto 支持regexp_count

一、背景 1、查询regexp_count 函数提示未注册 用户想正则查询特定字符出现次数 function regexp_count not registered 二、调研 1、官网地址: Presto Documentation — Presto 0.284 Documentation 2、regexp_extract_all Regular Expression Functions —…

Js-web APIs(一)

目录 Web API 基本认知 • 作用和分类 • 什么是DOM • DOM树 • DOM对象(重要) 获取DOM对象 • 根据CSS选择器来获取DOM元素 (重点) 1.选择匹配的第一个元素 2.选择匹配的多个元素 • 其他获取DOM元素方法(了解) 操作元素内容 • 对象.innerT…

Lua从电脑端爬取短视频评论并作商业化分析

之前有个大客户让我写一篇关于抓取短视频评论数据的单子,说是帮助公司寻找意向客户以及所对应产品在短视频里面的展现以及热门程度,通过数据采集方式并作数据自动化分析,从而实现商业上的价值。对于我来说写个爬虫还不简单,通过三…

鸿蒙Harmony-列表组件(List)详解

不要和别人比生活,每个人阶段不同,追求不同,活法自然也不同。只要今天的你能比昨天的你快乐一点点,那你就是自己人生赢家。 目录 一,定义 二,布局与约束 2.1 布局 2.2 约束 三,开发布局 3.1 设置…

DC电源模块在新能源领域的应用前景

BOSHIDA DC电源模块在新能源领域的应用前景 DC电源模块在新能源领域有着广阔的应用前景。随着可再生能源技术的发展和普及,如太阳能和风能等的应用逐渐增多,DC电源模块在这些领域的应用越来越重要。 首先,DC电源模块可以用于太阳能发电系统…

使用micro-app将现有项目改造成微前端,对现有项目实现增量升级

使用micro-app将现有项目改造成微前端,对现有项目实现增量升级 基座应用 1、安装依赖 npm i micro-zoe/micro-app --save2、在入口引入 //main.js import microApp from micro-zoe/micro-appnew Vue({ }) //在new Vue 下面执行 microApp.start()3、新增一个vue页…

【目标检测】评价指标:mAP概念及其计算方法(yolo源码/pycocotools)

本篇文章首先介绍目标检测任务中的关键评价指标mAP的概念;然后介绍其在yolo源码和pycocotools工具中的实现方法;最后比较两种mAP的计算方法的不同之处。 目标检测中的评价指标: mAP概念及其计算方法(yolo源码/pycocotools) 混淆矩阵概念及其…

ArcGIS Pro中怎么加载在线地图

当我们在制图的时候,有的时候需要加载在线地图,在ArcGIS Pro中加载在线地图的方式有很多,这里为大家介绍一下加载的方法,希望能对你有所帮助。 加载底图 在菜单栏上选择地图,点击底图,可以看到所有可加载…

FTP文件传输协议 、多种方式安装yum仓库

一、网络文件共享服务 1.存储类型分三种: 直连式存储:Direct-Attached Storage,简称DAS 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理) 网络附加存储…

maxwell同步全量历史数据

CentOS安装maxwell 在上篇的基础上,我们实现了实时同步mysql数据到kafka。maxwell不仅可以同步实时数据,也可以同步全量历史数据。在这里模拟一下历史数据的场景,创建表结构如下,并写入测试数据。 CREATE TABLE user_det…

手把手教你搭建一个数据可视化看板

前言 俗话说的好,“字不如表,表不如图”、“有图有真相,一图胜千言”。 数据可视化就是用图的形式把基础数据直观,简洁的,高效的展示出来,今天为大家介绍一下如何使用葡萄城公司的嵌入式BI工具——Wyn商业…

JavaScript的Class基本语法

🧑‍🎓 个人主页:《爱蹦跶的大A阿》 🔥当前正在更新专栏:《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 JavaScript是一种基于原型的语言,但在ES6中引入了class关…

成功解决VScode进入到内置函数中调试

主要有两个关键步骤, 第一步 将launch.json中的"justMyCode"设为false 可通过使用ctrlshiftP搜索lauch.json找到次文件 如果找不到的话,可点击debug按钮,然后找到点击create a launch.json file创建 创建得到的launch.json如下&am…

32单片机RTC时间接续,掉电时间保存

1、实现思路 前提:首先要实现RTC掉电之后时间还能继续走,RTC电池是必要的 说明:设备第一次启动需要初始化配置RTC,但当二次启动再重新配置RTC会导致RTC计数器置零,所以传统的程序流程是不行的,我们需要知…

2024“华数杯”(A题)|放射性废水扩散|国际大学生数学建模竞赛建模解析,小鹿学长带队指引全代码文章与思路

我是小鹿学长,就读于上海交通大学,截至目前已经帮200人完成了建模与思路的构建的处理了~ 完整内容可以在文章末尾领取! 这回带大家体验一下2024“华数杯”国际大学生数学建模竞赛呀! 此题涉及到放射性废水从日本排放…

齿轮齿条运动相关计算(博途S7-1200PLC脉冲轴组态)

有关S7-1200PLC脉冲轴相关应用介绍请参考下面的系列文章: S7-1200PLC脉冲轴位置控制功能块 https://rxxw-control.blog.csdn.net/article/details/135299302https://rxxw-control.blog.csdn.net/article/details/135299302S7-1200脉冲轴功能块 https://rxxw-control.blog.c…

如何在 Python3 中使用变量

介绍 变量是一个重要的编程概念,值得掌握。它们本质上是在程序中用于表示值的符号。 本教程将涵盖一些变量基础知识,以及如何在您创建的 Python 3 程序中最好地使用它们。 理解变量 从技术角度来说,变量是将存储位置分配给与符号名称或标…

【JVM调优系列】如何导出堆内存文件

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子明细实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…