手动实现one-hot独热编码的过程

作者: Andy9918 | 来源:发表于2019-06-03 19:31 被阅读0次

一般我们实现ont-hot编码通过sk-lean中的OneHotEncoder来实现,今天发现一个实现one-hot的编码的手动实现方式,感觉比较有意思,给大家分享一下。
下面是手动实现one-hot的过程:
1、首先加载numpy和pandas

import numpy as np
import pandas as pd

2、需要转化成独热编码的数据,假设这里有10个数据,5个不同的值。

# 需要转化为独热编码的数据
labels_dense = pd.Series([2,3,2,1,4,0,3,1,4,1])
labels_dense
需要转化为独热编码的数据

3、偏移量定义量

index_offset=np.arange(labels_dense.shape[0]) * 5
print(index_offset)

输出结果:
[ 0 5 10 15 20 25 30 35 40 45]
4、建一个10行5列的数据,因为我们要把10个数据改成5个值的one-hot编码,形状就是这样样子的

labels_one_hot=np.zeros((10,5))
labels_one_hot
10行5列的0

5、完成one-hot编码赋值
通过numpy.ndarray.flat[]把一个10 * 5的矩阵看成是一个1 * 50的行向量,对这个1 * 50的行向量在index_offset+labels_dense.ravel()位置的值赋值为1即完成了one-hot编码

labels_one_hot.flat[index_offset+labels_dense.ravel()]=1

index_offset+labels_dense.ravel()是什么?

print(index_offset+labels_dense.ravel())

[ 2 8 12 16 24 25 33 36 44 46]
6、看看最后的独热编码结果是什么?

print(labels_one_hot)
one-hot编码结果

特别说明一下扁平化处理

扁平化

相关文章

  • 手动实现one-hot独热编码的过程

    一般我们实现ont-hot编码通过sk-lean中的OneHotEncoder来实现,今天发现一个实现one-ho...

  • tf.one_hot()用法 独热编码

    tf.one_hot()进行独热编码 首先肯定需要解释下什么叫做独热编码(one-hot encoding),独热...

  • 通俗理解word2vec

    独热编码 独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个...

  • Pytorch基本使用(2)Tensor转成one-hot形式

    1. 参考资料 [1] 【Pytorch | Tensorflow】--- label与one-hot独热编码向量...

  • 词嵌入(word embedding)简记

    句子的常用表示方法有:独热编码(One-Hot)和词嵌入。独热编码存在的问题有:1、词矩阵稀疏,每个向量只有一个值...

  • 离散特征one-hot编码

    哑编码,又称为独热编码(One-Hot Encoding),作用是对特征进行量化。例如某个特征有三个类别:“大”“...

  • 独热编码(One-Hot Encoding)

    机器学习 数据预处理之独热编码(One-Hot Encoding) 问题由来 在很多机器学习任务中,特征并不总是连...

  • 独热编码(One-Hot Encoding)

    特征工程里会遇到属性非数值难以处理的情况,这时就可以用One-hot Encoding了 今天学习了sklearn...

  • 独热编码(one-hot encoding)

    刚开始学习深度学习的时候,会遇到“独热编码”这个概念。英文名:one-hot encoding。在网上查了好多资料...

  • 词向量表示

    word2vec 独热编码One-Hot 文本深度表示模型——word2vec&doc2vec词向量模型https...

网友评论

    本文标题:手动实现one-hot独热编码的过程

    本文链接:https://www.haomeiwen.com/subject/rbshxctx.html