在机器学习领域中,One-Hot Encoding是什么

一般来说,机器学习模型要求所有的输入输出变量都必须是数字。如果我们的数据中包含了分类数据,我们必须将它们编码成一些数字,这样我们才可以拿去训练和评测一个机器学习模型。

我们常说的分类数据是不能够直接拿来训练、预测的。因为它们一般都不是数值数据(数字),分类数据一般都是一些名称、标签,比如说颜色的分类数据有"红"、"绿"、"黄"、"紫"等等,再比如汽车品牌分类数据有"比亚迪"、"奇瑞"、"长城"、"广汽"等等。它们都缺乏特定的数值。为了能够使用上机器学习算法,我们就要想办法用一些数字去代表它们。这个过程就是数字化编码过程。只要你把够把数字与它们(分类数据)对应上就行。

数字编码技术有很多。其中有一种叫"One-Hot Encoding",关键python还有相似的库来使用,所以让这种编码就更流行了。编出来的码主要的作用就是与相应分类数据一一对应上,方便机器学习算法的操作。而且这种编码用完就可以丢掉了,hot就体现在这了。它只有在对应着分类数据时才是有意义的。

One-Hot Encoding的思想也很简单,one bit hot encoding,一个比特位热编码。比特位的值只有两个0或1,所以一个比特位代表一个分类。如

奇瑞 广汽 比亚迪 长城
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1

奇瑞: 1000

广汽:0100

比亚迪:0010

长城:0001

sklearn提供了One-Hot encoding的数据预处理工具,我们这里因为是在应用机器学习算法前做的数据处理,所以这个阶段也叫数据预处理。

python 复制代码
import numpy as np
from sklearn.preprocessing import OneHotEncoder

categerical_data = np.array([['比亚迪'],['奇瑞'],['长城'],['广汽']])
one_hot_encoder = OneHotEncoder(sparse_output=False)
rs = one_hot_encoder.fit_transform(categerical_data)

结果:

相关推荐
HackTorjan3 小时前
2026年5月29日:全球首个通用人工智能操作系统正式发布,开启人机协同新纪元
人工智能
刘大猫.3 小时前
智造短剧新引擎:火山引擎上线「火山剧创 1.0」,制作效率提升 80%
人工智能·ai·chatgpt·机器人·大模型·火山引擎·短剧新引擎
红尘散仙4 小时前
我把终端小说阅读器接上了 AI Agent:TRNovel 现在能用 skill 生成书源了
人工智能·后端·rust
雅菲奥朗4 小时前
企业级 AI 自动化|OpenClaw 龙虾实战与认证
运维·人工智能·自动化·openclaw
HIT_Weston4 小时前
99、【Agent】【OpenCode】task 工具提示词(Slash command)(一)
人工智能·agent·opencode
25 Hz4 小时前
Mind 爱好者时空表征刊 第24期 | 时间结构学习、空间对时间表征的补偿、事件内部的时间扭曲……
人工智能
心中有国也有家4 小时前
GE图引擎深度解析——CANN的计算图优化与执行引擎
人工智能·pytorch·python·学习·numpy
海兰4 小时前
【文字三国志:第一篇】天命重构,大语言模型(LLM)动态生成文言风格的叙事文本的文字游戏
人工智能·游戏·语言模型
cxr8285 小时前
高分子复合材料 AI 逆向设计合——验证闭环、决策优化与中试放大
人工智能·材料逆向设计合成
litble5 小时前
如何速成LLM以伪装成一个AI研究者(6)——LoRA,Adapter,P-tuning,量化,QLoRA
人工智能·lora·量化·peft·qlora·高效微调