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

结果:

相关推荐
锋行天下1 小时前
LangGraph 1.2+ 新特性:set_node_defaults,批量统一节点策略
人工智能
找方案1 小时前
AI+人力资源:AI招聘面试的兴起与争议
人工智能·面试·职场和发展
日常通勤穿搭1 小时前
2026 电商 AI 作图工具推荐|淘宝抖音跨境商品主图 AI 生图测评
人工智能·aigc·ai工具·电商美工
ZhengEnCi1 小时前
L2A-一个域名如何访问多台云服务器-子域名、路径前缀与Nginx反向代理选型指南
linux·人工智能
2601_963749101 小时前
越华环保集团污水站曝气系统边缘闭环控制架构与能耗优化实现
人工智能·架构
工业涂料百问1 小时前
【生产施工】系列(六)工业涂料固化方式怎么选?自然干 / UV / 电子束原理与选型实战
人工智能
葡萄城技术团队2 小时前
活字格 12.1 新特性解密:禁用自动回复后,AI 对话单元格也能流式输出了
人工智能
东风破_2 小时前
从 RAG 到 Agentic RAG:第一步,让模型决定「要不要检索」
人工智能
火山引擎开发者社区2 小时前
一图看懂 ADrive 跨产品协作实践:文件通了,Agent 就通了
人工智能
蒲公英内测分发2 小时前
App 更新一次就换一个二维码?智能硬件配套 App 的版本和下载入口怎么管理
人工智能·测试工具·智能家居·智能硬件