机器学习: Label vs. One Hot Encoder
如果您是机器学习的新手,您可能会对这两者感到困惑——Label 编码器和 One-Hot 编码器。这两个编码器是 Python 中 SciKit Learn 库的一部分,它们用于将分类数据或文本数据转换为数字,我们的预测模型可以更好地理解这些数字。今天,本文[1]通过一个简单的例子来了解一下两者的区别。
1. Label Encoding
首先,您可以在此处找到 Label Encoder 的 SciKit Learn 文档。现在,让我们考虑以下数据:
在本例中,第一列是国家列,全是文本。正如您现在可能知道的那样,如果我们要在数据上运行任何类型的模型,我们就不能在数据中包含文本。因此,在我们运行模型之前,我们需要为模型准备好这些数据。
为了将这种分类文本数据转换为模型可理解的数值数据,我们使用了标签编码器类。因此,要对第一列进行标签编码,我们所要做的就是从 sklearn 库中导入 LabelEncoder 类,拟合并转换数据的第一列,然后用新的编码数据替换现有的文本数据。让我们看一下代码。
from sklearn.preprocessing import LabelEncoder
labelencoder = LabelEncoder()
x[:, 0] = labelencoder.fit_transform(x[:, 0])
我们假设数据在一个名为“x”的变量中。运行这段代码后,如果您检查 x 的值,您会看到第一列中的三个国家已被数字 0、1 和 2 替换。
这就是标签编码的全部内容。但是根据数据,标签编码引入了一个新问题。例如,我们将一组国家名称编码为数字数据。这实际上是分类数据,行之间没有任何关系。
这里的问题是,由于同一列中有不同的数字,模型会误解数据的某种顺序,0 < 1 < 2。但事实并非如此。为了克服这个问题,我们使用 One Hot Encoder。
2. One Hot Encoder
现在,正如我们已经讨论过的,根据我们拥有的数据,我们可能会遇到这样的情况:在标签编码之后,我们可能会混淆我们的模型,认为列中的数据具有某种顺序或层次结构,而实际上我们显然不这样做没有它。为避免这种情况,我们对该列进行“OneHotEncode”。
One Hot Encoder 的作用是,它需要一个具有分类数据的列,该列已经过标签编码,然后将该列拆分为多个列。这些数字将替换为 1 和 0,具体取决于哪一列具有什么值。在我们的示例中,我们将获得三个新列,每个国家一列 - 法国、德国和西班牙。
对于第一列值为法国的行,“法国”列将为“1”,其他两列将为“0”。同样,对于第一列值为 Germany 的行,“Germany”列的值为“1”,其他两列的值为“0”。
One Hot Encoder 的 Python 代码也非常简单:
from sklearn.preprocessing import OneHotEncoder
onehotencoder = OneHotEncoder(categorical_features = [0])
x = onehotencoder.fit_transform(x).toarray()
正如您在构造函数中看到的,我们指定哪一列必须进行 One Hot Encoder,在本例中为 [0]。然后我们用我们刚刚创建的 one hot encoder 对象拟合和转换数组“x”。就是这样,我们的数据集中现在有了三个新列:
如您所见,我们有三个新列,分别为 1 和 0,具体取决于行代表的国家/地区。
这就是 Label Encoding 和 One Hot Encoding 之间的区别。
参考资料
[1]
Source: https://contactsunny.medium.com/label-encoder-vs-one-hot-encoder-in-machine-learning-3fc273365621
相关文章
- 机器学习笔记,原来梯度下降这么简单
- NAT模式和桥接模式实现局域网其他物理机器与Vmware虚拟机互相访问
- Navigator对象,获取浏览器类型userAgent,机器类型platform
- linux局域网不同网段ip互通,linux环境中,两个不同网段的机器互通「建议收藏」
- [译文]实用性 vs 理解力:进入 2022 年的机器学习领域
- 为何工业4.0离不开机器视觉 看人类视觉VS机器视觉
- [Python人工智能] 二十.基于Keras+RNN的文本分类vs基于传统机器学习的文本分类
- 机器学习: Label vs. One Hot Encoder
- 机器视觉工程师们,2023你准备好跳槽了吗?不妨先看看这篇文章。(销售我们暂时不讨论)
- 《机器学习十大经典算法及其工业应用》登录B站啦!
- B.【机器学习实践系列二】数据挖掘-二手车价格交易预测(含EDA探索、特征工程、特征优化、模型融合等)
- VS如何连接MySQL数据库(vs怎么连接mysql)
- VS如何连接MySQL数据库(vs连接mysql数据库)
- MySQL VS引用:比较和对比(vs引用mysql)
- 服务Linux 上的域名系统及主机名服务(linux机器名称)
- 谷歌 TensorFlow 一岁啦,它是最受欢迎的机器学习开源项目
- VS连接MSSQL:解决数据库连接问题(vs连接 mssql)
- 提供安全服务【使用VS保障SQL Server安全性】(vs给sqlserver)
- 服务【VS帮助快速开启MSSQL服务】(vs开启mssql)
- VS与SqlServer联手构建可靠的数据库运行环境(SqlServer和vs)
- 机器Redis解决内存问题(机器redis 内存)
- 搭建Redis哨兵两台机器解决Y群集状态异常(两台机器redis哨兵)
- 比较VS Code使用Redis管理数据(vs使用redis)
- 波士顿动力机器狗出现在SN10坠落现场:评估损坏程度