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)
相关推荐
程序员霸哥哥1 分钟前
从零搭建PyTorch计算机视觉模型
人工智能·pytorch·python·计算机视觉
草莓熊Lotso16 分钟前
Linux 基础开发工具入门:软件包管理器的全方位实操指南
linux·运维·服务器·c++·人工智能·网络协议·rpc
IT_陈寒26 分钟前
Vue 3性能优化实战:7个关键技巧让我的应用加载速度提升50%
前端·人工智能·后端
【赫兹威客】浩哥30 分钟前
基于 YOLO11+PyQt6+OpenCV 的智能水果检测系统设计与实现
人工智能·opencv·计算机视觉
晚秋大魔王32 分钟前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
胖哥真不错33 分钟前
Python基于PyTorch实现多输入多输出进行CNN卷积神经网络回归预测项目实战
pytorch·python·毕业设计·课程设计·毕设·多输入多输出·cnn卷积神经网络回归预测
RPA机器人就用八爪鱼35 分钟前
RPA:企业数字化转型的高效自动化利器
人工智能
程序员-小李36 分钟前
基于PyTorch的动物识别模型训练与应用实战
人工智能·pytorch·python
掘金安东尼40 分钟前
AI 生成代码,从 Copilot 到 Claude Code 的全景测评
人工智能
说私域1 小时前
基于开源链动2+1模式AI智能名片S2B2C商城小程序的赛道力构建与品牌发展研究
人工智能·小程序