前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >one hot 独热码

one hot 独热码

原创
作者头像
vanguard
发布2022-07-02 22:03:52
4090
发布2022-07-02 22:03:52
举报
文章被收录于专栏:vanguard

独热/one-hot在数位电路和机器学习中被用来表示一种特殊的位元组或向量,

直观来说就是有多少个状态就有多少比特,而且只有一个比特为1,其他全为0的一种码制。

该字节或向量里仅容许其中一位为1,其他位都必须为0。

其被称为独热因为其中只能有一个1,若情况相反,只有一个0,其余为1,则称为独冷(one-cold)。

在统计学中,虚拟变数代表了类似的概念。

通常,在通信网络协议栈中,使用八位或者十六位状态的独热码,且系统占用其中一个状态码,余下的可以供用户使用。

代码语言:python
代码运行次数:0
复制
import numpy as np
wide = 10
test = np.random.randint(wide,size=5)
print(test)

# raw
def one_hot(num,wide):
    res = np.zeros(wide)
    res[num] = 1
    return res
print(np.array([one_hot(i,wide) for i in test]))

# batch
def one_hots(narr,wide):
    res = np.zeros((narr.size,wide))
    row = np.arange(narr.size)
    res[row, narr] = 1
    return res
print(one_hots(test,wide))

# multi-hot
test = np.array([[1,2,3,4,5],[7,8,9,0,1]])
print(np.array([one_hots(i,wide).sum(axis=0) for i in test]))

# tensorflow
import tensorflow as tf
print(tf.keras.utils.to_categorical(test,num_classes=(wide)))

# ...
from sklearn.preprocessing import LabelBinarizer
print(LabelBinarizer().fit(np.arange(wide)).transform(test))
# OneHotEncoder ...

# pandas
# import pandas as pd
# print(pd.get_dummies(test,wide))

...

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 TI 平台
腾讯云 TI 平台(TencentCloud TI Platform)是基于腾讯先进 AI 能力和多年技术经验,面向开发者、政企提供的全栈式人工智能开发服务平台,致力于打通包含从数据获取、数据处理、算法构建、模型训练、模型评估、模型部署、到 AI 应用开发的产业 + AI 落地全流程链路,帮助用户快速创建和部署 AI 应用,管理全周期 AI 解决方案,从而助力政企单位加速数字化转型并促进 AI 行业生态共建。腾讯云 TI 平台系列产品支持公有云访问、私有化部署以及专属云部署。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档