网站首页 > 技术文章 正文
作者: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
猜你喜欢
- 2024-10-18 机器学习中的目标编码 目标编号
- 2024-10-18 循环编码:时间序列中周期性特征的一种常用编码方式
- 2024-10-18 神经网络基础篇九 神经网络讲解
- 2024-10-18 深入理解:推荐系统中的召回与排序(一)
- 2024-10-18 pandas中的one-hot编码方法 pandas unicodedecodeerror
你 发表评论:
欢迎- 11-19零基础学习!数据分析分类模型「支持向量机」
- 11-19机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现
- 11-19我以前一直没有真正理解支持向量机,直到我画了一张图
- 11-19研一小姑娘分享机器学习之SVM支持向量机
- 11-19[机器学习] sklearn支持向量机
- 11-19支持向量机
- 11-19初探支持向量机:用大白话解释、原理详解、Python实现
- 11-19支持向量机的核函数
- 最近发表
- 标签列表
-
- 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)
本文暂时没有评论,来添加一个吧(●'◡'●)