`
乱蓬头199303
  • 浏览: 81129 次
文章分类
社区版块
存档分类
最新评论

大神手把手教你:(Python)序列数据的One Hot编码

阅读更多

摘要: 不懂One Hot编码?让大神手把手教你(文中代码可以直接运行),用小例子清晰明了的带你进入One hot 编码!

更多深度文章,请关注:https://yq.aliyun.com/cloud

机器学习算法无法直接用于数据分类。数据分类必须转换为数字才能进一步进行。

在本教程中,你将发现如何将输入或输出的序列数据转换为一种热编码,以便于你在Python中深度学习的序列分类问题中使用。

看完本教程后,你将会了解:

·   1.什么是整数编码和One-Hot编码,以及为什么它们在机器学习中是必需的。

·   2.如何在Python中手工计算一个整数编码和One-Hot编码。

·   3.如何使用scikit-learn和Keras库来自动对Python中的序列数据进行编码。

本教程分为4部分:

1.什么是One-Hot编码?

2.手动编写One-Hot编码

3.One-Hot Encode with scikit-learn.

4.One-Hot Encode with Keras.

1.什么是One-Hot编码?

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

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

2.One-Hot编码的工作示例

让我们用一个小例子来说明一下到底什么是One-Hot编码。假设我们有一个带有'red'和'green'值的标签序列。我们可以将'red'的整数值分配为0,'green'的整数值为1。只要我们总是将这些数字分配给这些标签,这称为整数编码。一致性是重要的,所以我们可以稍后反转编码,并从整数值获取标签。

接下来,我们可以创建一个二进制向量来表示每个整数值。对于2个可能的整数值,向量的长度为2。

编码为0的“红色”标签将用二进制向量[1,0]表示,其中第0个索引被标记为值1。然后,编码为1的“绿色”标签将用一个二进制向量[0,1],其中第一个索引被标记为1。

如果我们有序列:

‘red’,‘red’,‘green’。

我们可以用整数编码来表示它:

0,0,1

而One-Hot编码就为:

1

2

3

[1, 0]

[1, 0]

[0, 1]

1.为什么要使用One-Hot编码?

One hot 编码进行数据的分类更准确,许多机器学习算法无法直接用于数据分类。数据的类别必须转换成数字,对于分类的输入和输出变量都是一样的。

我们可以直接使用整数编码,需要时重新调整。这可能适用于在类别之间存在自然关系的问题,例如温度“冷”(0)和”热“(1)的标签。

当没有关系时,可能会出现问题,一个例子可能是标签的“狗”和“猫”。

在这些情况下,我们想让网络更具表现力,为每个可能的标签值提供概率式数字。这有助于进行问题网络建模。当输出变量使用one-hot编码时,它可以提供比单个标签更准确的一组预测。

2.手动One Hot编码:

在这个例子中,我们将假设我们有一个字符串的例子,但是示例序列并不涵盖所有可能的例子。

我们将使用以下字符的输入序列:

Hello world。

我们将假设所有可能输入是小写字母和空格的完整字母表。因此,我们将以此展示如何滚动我们自己的one hot编码。

完整的示例如下所示。

 

运行示例首先打印输入字符串。

所有可能的输入的映射都是从char值创建为整数值。然后使用该映射对输入字符串进行编码。我们可以看到输入'h'中的第一个字母被编码为7。然后将整数编码转换为one hot编码。一次完成一个整数编码的字符。创建0个值的列表,以便字母表的长度可以表示任何预期的字符的长度。

接下来,特定字符的索引标记为1。我们可以看到,编码为7的第一个字母“h”整数由二进制向量表示,长度为27,第七个索引标记为1。

最后,我们反转第一个字母的编码并打印结果。我们通过使用NumPy argmax()函数定位具有最大值的二进制向量中的索引,然后使用字符值的反向查找表中的整数进行整数。

注意:输出格式化为可读性(我们将空格默认设置为z)。

原文链接

分享到:
评论

相关推荐

    Python量化交易从小白到大神.pdf

    - **基础知识**:Python编程基础、数据处理技能等。 - **进阶技巧**:高级数据结构、并行处理等。 - **实战项目**:完成具体量化交易任务。 #### 19. 均线排列策略 - **策略原理**:基于短期和长期移动平均线的交叉...

    python入门教程pdf-python基础教程:《Python编程无师自通》PDF版百度云下载.pdf

    被引用的知乎大神将其比喻为“好胶水”,意味着Python能够轻松地整合各种工具和技术,使得复杂任务的解决变得更加容易。Python在数据处理、科学计算、自动化脚本、机器学习、网络编程等领域都有广泛应用。 《Python...

    廖雪峰大神python教程1-3及新版全套PDF

    《廖雪峰大神python教程1-3及新版全套PDF》是一份全面且深入的Python学习资源,由知名编程教育家廖雪峰所编写。这个教程涵盖了Python的基础到进阶内容,适合初学者和有一定经验的开发者进行学习和提升。教程以中文...

    大神手把手教你STC单片机片上仿真法

    什么是仿真?  我们举一个汽车设计的例子来说明一下吧。大家一定在影视剧或电视广告中看...安装在假人身上的传感器所得出的数据,能帮助工程师们发现安全隐患,改进汽车的设计。可以说,以上就是仿真,一辆真车和两个

    python基础-03

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-02

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-01

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-04

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-10

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-05

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-06

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-07

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-08

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    python基础-09

    大神的python,基础知识,通俗易懂。分享到此平台。希望能够帮助那些爱学习的同学们。由于文件比较大,所以是多部连载。 Python 特点 1.易于学习:Python有相对较少的关键字,结构简单,学习起来更加简单。 2.易于...

    大神手把手教你如何进行高速线布线!

    - **等长策略**: 在设置等长规则前,需先导入PINDELAY数据,以便更准确地调整等长值。等长处理一般在系统的发送端和接收端进行。 - **高度控制**: 在进行等长调整时,需要注意控制绕线部分的高度,避免过高影响生产...

    从小白到大神,一文掌握 Python 密集知识点

    本文将深入探讨Python的基础知识,核心概念,以及进阶技巧,帮助你从Python小白快速成长为Python大神。 1. **基础语法** - **变量与数据类型**:Python支持多种数据类型,如整型(int)、浮点型(float)、字符串...

    Python3 Cookbook:《Python CookBook》一直是较为经典的Python教程

    《Python CookBook》一直是较为经典的Python教程。它注重方法和技巧的讲解,能让学习者更好的理解Python这门语言,最终将技巧运用到项目中。本书作者是David Beazley大神,一位独立的计算机科学家、教育家,以及有着...

Global site tag (gtag.js) - Google Analytics