网站首页 > 技术文章 正文
作者:Rakshith Vasudev
编译:ronghuaiyang
导读
当你在玩ML模型的时候,你会在任何地方遇到这个“One hot encoding”的术语。
当你在玩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”,它们都是二进制的。
见下图:
英文原文:https://hackernoon.com/what-is-one-hot-encoding-why-and-when-do-you-have-to-use-it-e3c6186d008f
更多文章,请关注微信公众号:AI公园
- 上一篇: 大牛巧用一文带你彻底搞懂解释器的内部构造和解释执行过程
- 下一篇: 大数据人才,到底应具备哪些技能?
猜你喜欢
- 2024-10-12 数据预处理-分类变量数据编码 分类变量数据分析
- 2024-10-12 程序员深夜用Python跑神经网络,只为用中二动作关掉台灯
- 2024-10-12 Pandas第十三课:特征工程与数据预处理
- 2024-10-12 CVPR2019 | 面对高度不均衡数据如何提高精度?这篇文章有妙招
- 2024-10-12 数据特征常用构建方法详解及实例 数据特征包括哪些?
- 2024-10-12 “千克”和“毫升”:单位不同就不能做朋友了吗?
- 2024-10-12 a和one的区别 a与one区别
- 2024-10-12 手把手教你做客户挽留模型【纯技术】
- 2024-10-12 机器学习中的独热编码,你知道多少?
- 2024-10-12 One Hot Encoder 在机器学习分类模型中的重要性
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)