独热(One-Hot)编码简述
目录
- 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)编码简述相关推荐
- Verilog中状态机编码方式的选择:二进制编码(Binary)、格雷码(Gray-code)编码、独热码(One-hot)编码
一般的,在Verilog中最常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码. 二进制码和格雷码是压缩状态编码. 若使用格雷编码,则相邻状态转 ...
- 独热码(One-Hot编码)
一.独热码 二. 三.SparkML - OneHotEncoder OneHotEncoder has been deprecated in 2.3.0 and will be removed in ...
- 独热编码(One-Hot)的理解
https://www.imooc.com/article/35900 参考上面大神的原文,说的非常透彻.非常便于理解.感谢 感谢 自己做个小笔记,便于自己学习 特征值是离散的,无序的. 如: 性别特 ...
- 字符标签转数字编码、独热编码 及独热编码转数字编码
有些数据集给的标签是字符串形式,比如wisdm,在放进网络之前,需要转为数字型的编码 这可以通过pd.Categorical(a).codes实现 如 import numpy as np impor ...
- Verilog-状态机编码方式对比:独热码 vs 格雷码
博主福利:100G+电子设计学习资源包! http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5 ...
- Verilog常见编码方式:二进制码、格雷码、独热码
Verilog常见编码方式有:二进制码.格雷码.独热码:三种编码方式各有特点利弊,因此有必要理解比较,以求不同场合的合理选择: 目录 一.结论: 二.详细了解 二进制码 格雷码 独热码 比较 三.参考 ...
- 独热码(one-hot-enconding)的理解以及编码与解码
独热码(one-hot-enconding)的理解以及编码与解码 1.为什么要引入独热码的概念 在机器学习的领域中,常常会遇到分类,聚类等问题,如果所收集到的数据拥有大量离散型的特征和类别,则我们就需 ...
- FPGA学习笔记---二进制码、独热码、格雷码分析对比
在Verilog学习中常用的编码方式有二进制编码(Binary).格雷码(Gray-code)编码.独热码(One-hot)编码,对于新手来说,搞不清楚编码为什么要分这么多格式?统一用一种格式不好吗? ...
- 独热码one-hot code
1.独热码概念 独热码,在英文文献中称做 one-hot code, 直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制.通常,在通信网络协议栈中,使用八位或 ...
- 二进制码、格雷码、独热码的区别
格雷码 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即"首尾相连",因此又称循 ...
最新文章
- CentOS目录结构超详细版
- 探究C/C++可变参数
- lin-cms-dotnetcore功能模块的设计
- IE8中伪元素动态作用样式不重绘bug记录
- SSIS [大容量插入任务] 找不到文件错误
- PageRank三个博客mark
- Kaggle电影数据集:movies_metadata.csv
- web应用程序安全性测试_立即提高Web应用安全性的6种方法
- 两个队列实现一个栈-----队列面试题3
- 【光学设计】- 第一节
- 知乎企业认证怎么弄?知乎企业号怎么申请?详解来了
- windows server 2012 R2密码恢复
- java博饼_java博饼游戏( 完善中。。。。。。。。。。。)
- 小程序战局最新动态!这些你应该知道
- 战争军事历史纪录片收集
- java调用银联支付接口开发,银联在线Java接口开发
- socket.io实现聊天功能——第一章 、群聊
- Java解一元一次方程,一元二次方程,一元三次方程
- 工控服务器性能指标,5点弄懂工控机内存条
- 超星2017大学计算机基础答案 全,超星2017大学计算机基础答案(全)