【面试】什么是one-hot编码?

面试模拟场景

面试官: 什么是one-hot编码?

参考回答示例

One-hot编码的概念

One-hot编码是一种将分类变量转换为二进制向量的编码方法,每个类别都用一个长度为类别数量的向量表示,向量中只有一个元素为1,其余元素为0。它可以将分类数据转换为模型可以处理的数值形式,同时避免在分类数据中引入不合理的顺序关系。

如果使用整数编码将类别转换为数值,例如将“红色”、“绿色”和“蓝色”分别编码为1、2、3,那么模型可能会误解这些编码值之间存在某种顺序关系或大小关系(即红色 < 绿色 < 蓝色),这在实际分类任务中是不合理的,因为类别之间没有自然的顺序或大小关系。

举例说明

假设我们有一个包含三个类别的分类变量:红色绿色蓝色。我们可以用one-hot编码将它们转换为以下二进制向量:

  • 红色: [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0]
  • 绿色: [ 1 , 0 , 0 ] [1, 0, 0] [1,0,0]
  • 蓝色: [ 0 , 0 , 1 ] [0, 0, 1] [0,0,1]

这样,每个类别都有一个唯一的二进制向量表示。

One-hot编码的优缺点

优点:

  • 简单直观: One-hot编码方法简单易懂,容易实现。
  • 避免顺序关系: One-hot编码避免了类别之间引入不合理的顺序关系。

缺点:

  • 高维稀疏向量: 当类别数量较多时,One-hot编码会产生高维稀疏向量,占用较多内存,计算效率较低。
  • 缺乏类别间的关系: One-hot编码无法表示类别之间的潜在关系。
总结
  • 定义: One-hot编码是一种将分类变量转换为二进制向量的方法,每个类别用一个长度为类别数量的向量表示,只有一个位置为1,其他位置为0。
  • 优缺点: 优点包括简单直观,可以避免顺序关系;缺点包括产生高维稀疏向量和缺乏类别间的关系。
  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值