在机器学习领域中,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)

结果:

相关推荐
江畔柳前堤8 小时前
roLabelImg 详细安装教程
开发语言·人工智能·后端·云原生
阿里云大数据AI技术8 小时前
分链路差异化设计的DSP准实时数仓|钛动科技基于阿里云实时计算 Flink 版 + DLF Paimon + EMR Serverless StarRocks 的实践
人工智能·flink
陕西企来客8 小时前
2026年7月AI智能搜索曝光趋势研判
大数据·人工智能·机器学习·ai智能搜索曝光
阿里云大数据AI技术9 小时前
从算力到智能体,面向 Agentic AI 的基础设施演进
人工智能·agent
hangyuekejiGEO10 小时前
GEO技术服务选型指南
大数据·人工智能·python
阿里云大数据AI技术10 小时前
EMR Serverless Spark AI Function 的双维降本实践
人工智能·sql·spark
维基框架10 小时前
GitHub源码处理提速 一趟扫描反而更慢
人工智能·github
冬奇Lab10 小时前
代码库知识库系列(05):向量检索 vs 知识图谱——加了调用图并没有变更好
人工智能
AKAMAI10 小时前
你的源服务器可能是你做出的最昂贵决定
运维·人工智能·云计算
冬奇Lab11 小时前
【无标题】
人工智能·开源