更多深度文章,请关注: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</