目录

  • 1.前言
  • 2.什么是 one-hot 编码?
  • 3.Python 代码

1.前言

今天看Colab上的代码的时候突然看到了这个概念,抱着好奇的心态学习了一下,挺基础也很重要的一个概念,5min左右就可以了解

2.什么是 one-hot 编码?

定义:

独热编码即 One-Hot 编码,又称一位有效编码。其方法是使用 N 位状态寄存器来对 N 个状态进行编码,每个状态都有它独立的寄存器位,并且在任意时候,其中只有一位有效

One-Hot编码是分类变量作为二进制向量的表示。这首先要求将分类值映射到整数值。然后,每个整数值被表示为二进制向量,除了整数的索引之外,它都是零值,它被标记为1。

看不懂么?看不懂很正常(看懂了我觉得不太正常hhh,下面通过举例子很好理解:

这里有三个特征:

性别特征:[‘女’, ‘男’]

国籍特征:[‘中国’, ‘美国’, ‘俄罗斯’, ‘英国’]

年龄特征:[18, 19, 20]

那么,我们现在表示一个20岁中国国籍的男生,那么他的特征为:[‘男’, ‘中国’, 20],我们将特征数字化,即表示为:[1, 0, 2],但是这样的特征放入 Machine Learning 中是不可以的,因为类别之间是无序的,针对这种情况,我们介绍 one-hot 编码:

对于性别特征,有两种取值:女/男,我们用 10(二进制) 表示女,用 01(二进制)表示男

对于国籍特征,有四种取值,我们用 1000(二进制)表示中国,0100(二进制)表示美国,0010(二进制)表示俄罗斯,0001(二进制)表示英国

对于年龄特征,有三种取值,我们用 100(二进制)表示18岁,010(二进制)表示19岁,001(二进制)表示20岁

故对于20岁中国国籍的男生,我们可以表示为:[011000001],用下面这张图更能形象化理解:

3.Python 代码

下述代码在 Jupyter 上运行,没有安装过 Jupyter 的读者可以看博客:最详细的Anaconda Installers 的安装【numpy,jupyter】(图+文)

from sklearn import preprocessing  enc = preprocessing.OneHotEncoder()         # 调用OneHotEncoder()
enc.fit([[0, 2, 2],[1, 1, 4],[1, 0, 1],[0, 1, 3]])  # 提供训练数据:4个数据,3种特征array = enc.transform([[0,1,3]]).toarray()  # 测试,随便输入一个新数据去测试array   # 独热编码结果:[[1., 0., 0., 1., 0., 0., 0., 1., 0.]]

独热(One-Hot)编码简述相关推荐

  1. Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码

    一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...

  2. 独热码(One-Hot编码)

    一.独热码 二. 三.SparkML - OneHotEncoder OneHotEncoder has been deprecated in 2.3.0 and will be removed in ...

  3. 独热编码(One-Hot)的理解

    https://www.imooc.com/article/35900 参考上面大神的原文,说的非常透彻.非常便于理解.感谢 感谢 自己做个小笔记,便于自己学习 特征值是离散的,无序的. 如: 性别特 ...

  4. 字符标签转数字编码、独热编码 及独热编码转数字编码

    有些数据集给的标签是字符串形式,比如wisdm,在放进网络之前,需要转为数字型的编码 这可以通过pd.Categorical(a).codes实现 如 import numpy as np impor ...

  5. Verilog-状态机编码方式对比:独热码 vs 格雷码

    博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...

  6. Verilog常见编码方式:二进制码、格雷码、独热码

    Verilog常见编码方式有:二进制码.格雷码.独热码:三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择: 目录 一.结论: 二.详细了解 二进制码 格雷码 独热码 比较 三.参考 ...

  7. 独热码(one-hot-enconding)的理解以及编码与解码

    独热码(one-hot-enconding)的理解以及编码与解码 1.为什么要引入独热码的概念 在机器学习的领域中,常常会遇到分类,聚类等问题,如果所收集到的数据拥有大量离散型的特征和类别,则我们就需 ...

  8. FPGA学习笔记---二进制码、独热码、格雷码分析对比

    在Verilog学习中常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码,对于新手来说,搞不清楚编码为什么要分这么多格式?统一用一种格式不好吗? ...

  9. 独热码one-hot code

        1.独热码概念   独热码,在英文文献中称做 one-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制.通常,在通信网络协议栈中,使用八位或 ...

  10. 二进制码、格雷码、独热码的区别

    格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循 ...

最新文章

  1. CentOS目录结构超详细版
  2. 探究C/C++可变参数
  3. lin-cms-dotnetcore功能模块的设计
  4. IE8中伪元素动态作用样式不重绘bug记录
  5. SSIS [大容量插入任务] 找不到文件错误
  6. PageRank三个博客mark
  7. Kaggle电影数据集:movies_metadata.csv
  8. web应用程序安全性测试_立即提高Web应用安全性的6种方法
  9. 两个队列实现一个栈-----队列面试题3
  10. 【光学设计】- 第一节
  11. 知乎企业认证怎么弄?知乎企业号怎么申请?详解来了
  12. windows server 2012 R2密码恢复
  13. java博饼_java博饼游戏( 完善中。。。。。。。。。。。)
  14. 小程序战局最新动态!这些你应该知道
  15. 战争军事历史纪录片收集
  16. java调用银联支付接口开发,银联在线Java接口开发
  17. socket.io实现聊天功能——第一章 、群聊
  18. Java解一元一次方程,一元二次方程,一元三次方程
  19. 工控服务器性能指标,5点弄懂工控机内存条
  20. 超星2017大学计算机基础答案 全,超星2017大学计算机基础答案(全)

热门文章

  1. 棒棒糖图形 -《跟小海龟学Python》案例代码
  2. 国美新零售进阶之路 情人节以玫瑰撬动社交
  3. 手淘卡首屏工具|2023淘宝卡首屏API接口
  4. WPF 实现水珠效果按钮组
  5. 实战演练 | 批量插入的三种方式
  6. 线矢量及螺旋的代数计算(附python作图程序)
  7. 晨魅--初学Linux系统
  8. 荣耀什么手机能用鸿蒙,惊喜!荣耀手机也能升鸿蒙:这 5 款机型用户有福了
  9. PHP基础与数据库交互
  10. 第二章Linux 基本命令操作