独热编码(One-Hot Encoding)介绍及实现

独热编码(One-Hot Encoding)介绍及实现一、介绍One-Hot编码,又称为一位有效编码,主要是采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。独热编码是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。例如:参考数字手写体识别中:如数字字体识别0~9中,6的独热编码为0000001000自然状态码为:000,001,010,011,100,101…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、介绍

 One-Hot编码,又称为一位有效编码,主要是采用独热编码(One-Hot Encoding)介绍及实现位状态寄存器来对独热编码(One-Hot Encoding)介绍及实现个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

独热编码 是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。

例如:参考数字手写体识别中:

如数字字体识别0~9中,6的独热编码为

0000001000

自然状态码为:000,001,010,011,100,101

独热编码为:000001,000010,000100,001000,010000,100000

Jetbrains全家桶1年46,售后保障稳定

有如下三个特征属性:
性别:[“male”,”female”] ======》[1,0] 表示男,[0,1]表示女
地区:[“Europe”,”US”,”Asia”]
浏览器:[“Firefox”,”Chrome”,”Safari”,”Internet Explorer”]
对于某一个样本,如[“male”,”US”,”Internet Explorer”],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用序列化的方式:[0,1,3]。但是这样的特征处理并不能直接放入机器学习算法中。

 对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是思维的,这样,我们可以采用One-Hot编码的方式对上述的样本“[“male”,”US”,”Internet Explorer”]”编码,“male”则对应着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。
 

二、优点

独热编码的优点为:

1.能够处理非连续型数值特征。 
2.在一定程度上也扩充了特征。比如性别本身是一个特征,经过one hot编码以后,就变成了男或女两个特征。

当然,当特征类别较多时,数据经过独热编码可能会变得过于稀疏。

三、实现 

from sklearn import preprocessing


encoder = preprocessing.OneHotEncoder()
# 4个特征:

#第一个特征(即为第一列)为[0,1,2,1],其中三类特征值[0,1,2],因此One-Hot Code可将[0,1,2]表示为:[100,010,001]
#第一个特征有三种值:采用三个编码:[100,010,001]

#同理第二个特征列可将两类特征值[2,3]表示为[10,01]


#第三个特征将4类特征值[1,2,4,5]表示为[1000,0100,0010,0001]

#第四个特征将2类特征值[3,12]表示为[10,01]

encoder.fit([
    [0, 2, 1, 12],
    [1, 3, 5, 3],
    [2, 3, 2, 12],
    [1, 2, 4, 3]
])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print("\n Encoded vector =", encoded_vector)
#[[0. 0. 1.    0. 1.      0. 0. 0. 1.     1. 0.]]

参考:独热编码(One-Hot Encoding)介绍及实现_天空下的斌的博客-CSDN博客_独热编码

数据处理——One-Hot Encoding_zhiyong_will的博客-CSDN博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200862.html原文链接:https://javaforall.net

(0)
上一篇 2025年8月20日 上午7:43
下一篇 2025年8月20日 上午8:15


相关推荐

  • docker下载安装教程_docker镜像存储位置

    docker下载安装教程_docker镜像存储位置前言Docker提供轻量的虚拟化,你能够从Docker获得一个额外抽象层,你能够在单台机器上运行多个Docker微容器,而每个微容器里都有一个微服务或独立应用,例如你可以将Tomcat运行在一个D

    2022年7月29日
    6
  • uniapp防抖节流的使用

    uniapp防抖节流的使用节流规定时间内 只触发一次 可以通过设置 immediate 来决定触发的时机在这个时间的开始 还是结束的时候执行 使用 uview 此处用法为在 js 中调用 需要写 this u throttle this u throttle this toNext 500 防抖使用 uview 防止触发多次接口建议使用防抖 此处用法为在 js 中调用 需要写 this u debounce this u debounce this toNext 500 或者用当前点击时间为判断条件 dat

    2026年3月19日
    2
  • 深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解

    深入浅出Yolo系列之Yolov3&Yolov4&Yolov5&Yolox核心基础知识完整讲解因为工作原因,项目中经常遇到目标检测的任务,因此对目标检测算法会经常使用和关注,比如Yolov3、Yolov4算法。当然,实际项目中很多的第一步,也都是先进行目标检测任务,比如人脸识别、多目标追踪、REID、客流统计等项目。因此目标检测是计算机视觉项目中非常重要的一部分。从2018年Yolov3年提出的两年后,在原作者声名放弃更新Yolo算法后,俄罗斯的Alexey大神扛起了Yolov4的大旗。在此,大白将项目中,需要了解的Yolov3、Yolov4系列相关知识点以及相关代码进行完整的汇总,希望和大家

    2022年6月12日
    59
  • CorelDRAW2022下载附带序列号安装教程

    CorelDRAW2022下载附带序列号安装教程CorelDRAW作为图形设计软件的代表,以其杰出和革新的特性赢得了长期的声誉和用户的赞赏,是一套屡获殊荣的图像编辑软件。CorelDRAW2020包含程序:CorelDRAW2020主程序矢量插图和页面布局工具CorelPHOTO-PAINT2020图像编辑工具:编辑照片,享受与CorelDRAW的集成工作流。CoreFontManager2020字体开发与管理工具:无需安装即可直接使用自己喜欢的字体。PowerTRACE人工智能驱动的位图转矢量图工具CorelDRAW.a

    2022年5月5日
    408
  • IDEA2022激活码mac【2022最新】2022.03.08

    (IDEA2022激活码mac)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月2日
    176
  • 史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)

    史上最简单的SpringCloud教程 | 第七篇: 高可用的分布式配置中心(Spring Cloud Config)当服务很多时 都需要同时从配置中心读取文件的时候 这时我们可以考虑将配置中心做成一个微服务 并且将其集群化 从而达到高可用 架构图如下 一 准备工作继续使用上一篇文章的工程 创建一个 eureka server 工程 用作服务中心

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号