sklearn.preprocessing 的 LabelEncoder 类来对标签进行编码讲解

假设我们有一个标签数据集,它包含了一些文本类别标签,如下所示:

复制代码
labels = ['cat', 'dog', 'cat', 'bird', 'dog', 'bird']

我们希望将这些文本标签转换成数值,以便机器学习模型可以处理。`LabelEncoder` 就是用来做这个转换的工具。下面是使用 `LabelEncoder` 转换标签的过程:

  1. 首先,我们创建 `LabelEncoder` 的一个实例:
复制代码
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
  1. 然后,我们将这个实例拟合到我们的标签数据 上:fit 方法会扫描整个 labels 数组或序列,识别出所有的唯一标签。
复制代码
le.fit(labels)

此时,`LabelEncoder` 会检查所有的标签,并创建一个映射,将每个唯一的标签映射到一个整数。在这个例子中,映射关系可能如下:

  • 'bird' -> 0

  • 'cat' -> 1

  • 'dog' -> 2

  1. 接下来,我们使用 `LabelEncoder` 将原始标签转换成整数:
复制代码
label_numbers = le.transform(labels)
print(label_numbers)

这将输出:

1 2 1 0 2 0

如你所见,文本标签 'cat'、'dog' 和 'bird' 被转换成了整数 1、2 和 0。
值得注意的是,`LabelEncoder` 会按照它们第一次出现的顺序给标签分配数字。在这个例子中,'cat' 是第一个出现的,所以它被分配了数字 1;'dog' 是第二个出现的,所以它被分配了数字 2;'bird' 是第三个出现的,所以它被分配了数字 0。
此外,`LabelEncoder` 还可以用来逆转换,即将整数标签再转换回原始的文本标签。例如:

复制代码
original_labels = le.inverse_transform(label_numbers)
print(original_labels)

这将输出:

'cat' 'dog' 'cat' 'bird' 'dog' 'bird'

这样,我们就可以将模型预测的整数标签转换回人类可读的文本标签。

完整代码:

复制代码
from sklearn import preprocessing
le = preprocessing.LabelEncoder()
labels = ['cat', 'dog', 'cat', 'bird', 'dog', 'bird']
le.fit(labels)
label_numbers = le.transform(labels)
print(label_numbers)
original_labels = le.inverse_transform(label_numbers)
print(original_labels)
相关推荐
C+++Python2 分钟前
提示词、Agent、MCP、Skill 到底是什么?
人工智能
小松要进步7 分钟前
机器学习1
人工智能·机器学习
Mr_Xuhhh20 分钟前
Java泛型进阶:从基础到高级特性完全指南
开发语言·windows·python
泰恒27 分钟前
openclaw近期怎么样了?
人工智能·深度学习·机器学习
KaneLogger35 分钟前
从传统笔记到 LLM 驱动的结构化 Wiki
人工智能·程序员·架构
tinygone1 小时前
OpenClaw之Memory配置成本地模式,Ubuntu+CUDA+cuDNN+llama.cpp
人工智能·ubuntu·llama
正在走向自律1 小时前
第二章-AIGC入门-AIGC工具全解析:技术控的效率神器,DeepSeek国产大模型的骄傲(8/36)
人工智能·chatgpt·aigc·可灵·deepseek·即梦·阿里通义千问
轩轩分享AI1 小时前
DeepSeek、Kimi、笔灵谁最好用?5款网文作者亲测的AI写作神器横评
人工智能·ai·ai写作·小说写作·小说·小说干货
老天文学家了1 小时前
蓝桥杯备战Python
开发语言·python
Aevget1 小时前
基于嵌入向量的智能检索!HOOPS AI 解锁 CAD 零件相似性搜索新方式
人工智能·hoops·cad·hoops ai·cad数据格式