One Hot编码是什么?为什么要用它,什么时候用它?

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

导读

当你在玩ML模型的时候,你会在任何地方遇到这个“One hot encoding”的术语。

79f503f585ea475e851b3e672bddc448.jpeg

当你在玩ML模型的时候,你会在任何地方遇到这个“One hot encoding”术语。你可以看到一个one hot编码器的sklearn文档,其中说“使用one-hot也就是one-of- k模式编码分类整数特征”。不是很清楚,对吧?或者至少不适合我。让我们看看one hot编码到底是什么。

One hot编码方法是将分类变量转换成一种形式,这种形式可以提供给ML算法,以便更好地进行预测。

假设数据集如下:

╔════════════╦═════════════════╦════════╗ 
 ║ CompanyName Categoricalvalue ║ Price  ║
 ╠════════════╬═════════════════╣════════║ 
 ║ VW         ╬      1          ║ 20000  ║
 ║ Acura      ╬      2          ║ 10011  ║
 ║ Honda      ╬      3          ║ 50000  ║
 ║ Honda      ╬      3          ║ 10000  ║
 ╚════════════╩═════════════════╩════════╝

分类值表示数据集中条目的数值。例如:如果数据集中有另一家公司,它的分类值应该是4。随着惟一条目数量的增加,分类值也相应地增加。

上表只是一种表示。实际上,分类值从0开始一直到N-1个类别。

你可能已经知道,可以使用sklearn的LabelEncoder完成分类值分配。

现在让我们回到one hot编码:假设我们按照sklearn文档中给出的说明来进行one hot编码,然后进行一些清理,最后得到以下结果:

╔════╦══════╦══════╦════════╦
 ║ VW ║ Acura║ Honda║ Price  ║
 ╠════╬══════╬══════╬════════╬
 ║ 1  ╬ 0    ╬ 0    ║ 20000  ║
 ║ 0  ╬ 1    ╬ 0    ║ 10011  ║
 ║ 0  ╬ 0    ╬ 1    ║ 50000  ║
 ║ 0  ╬ 0    ╬ 1    ║ 10000  ║
 ╚════╩══════╩══════╩════════╝
0表示不存在,1表示存在。

在我们进一步讨论之前,你能想到一个原因吗?为什么仅仅使用标签编码给模型训练是不够的?为什么需要one hot编码?

标签编码的问题是,它假定类别值越高,类别越好。“等等,什么! ?”

让我解释一下:这种组织形式的前提是基于类比的值,VW > Acura > Honda。假设你的模型内部计算平均值,那么我们得到,1+3 = 4/2 =2。这意味着:VW 和Honda的平均水平是 Acura。这绝对是个灾难。这个模型的预测会有很多误差。

这就是为什么我们使用one hot编码器来执行类别的“二值化”,并将其作为一个特征来训练模型。

另一个例子:假设你有一个“flower”特征,它可以接受“daffodil”、“lily”和“rose”的值。一个one hot编码将“flower”特征转换为三个特征,“is_daffodil”、“is_lily”和“is_rose”,它们都是二进制的。

见下图:

2889dd7ca0c88f194e9c4999cb7dfc0f.jpeg

 
 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

4a6fd1391890f22ae27810d30936ee8f.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值