geekdoc-python-zh/docs/askpython/label-encoding.md

4.6 KiB
Raw Permalink Blame History

Python 中的标签编码——快速指南!

原文:https://www.askpython.com/python/examples/label-encoding

读者朋友们,你们好!在本文中,我们将关注 Python 中的标签编码。

在我们的上一篇文章中,我们了解了 One hot Encoding 的工作和实现,其中标签编码是该过程的初始步骤。

今天,我们将看看数据值分类编码中最基本的步骤之一。

因此,没有任何进一步的拖延,让我们开始吧!


Python 中的标签编码是什么?

在深入研究标签编码的概念之前,让我们先了解一下“标签”这个概念对数据集的影响。

标签实际上是代表一组特定实体的数字或字符串。标签有助于模型更好地理解数据集,并使模型能够学习更复杂的结构。

推荐—如何标准化机器学习的数据集?

标签编码器将分类数据的这些标签转换成数字格式。

例如,如果数据集包含带有标签“男性”和“女性”的变量“性别”,则标签编码器会将这些标签转换为数字格式,结果将是[01]。

因此,通过将标签转换成整数格式,机器学习模型可以在操作数据集方面有更好的理解。


标签编码–语法知识!

Python sklearn 库为我们提供了一个预定义的函数,对数据集进行标签编码。

语法:

from sklearn import preprocessing  
object = preprocessing.LabelEncoder() 

这里,我们创建一个 LabelEncoder 类的对象,然后利用该对象对数据应用标签编码。


1.使用 sklearn 进行标签编码

让我们直接进入标签编码的过程。对数据集进行编码的第一步是拥有一个数据集。

因此,我们将在这里创建一个简单的数据集。示例:数据集的创建

import pandas as pd 
data = {"Gender":['M','F','F','M','F','F','F'], "NAME":['John','Camili','Rheana','Joseph','Amanti','Alexa','Siri']}
block = pd.DataFrame(data)
print("Original Data frame:\n")
print(block)

这里,我们创建了一个字典‘数据’,然后使用pandas.DataFrame() 函数将它转换成一个数据帧。

输出:

Original Data frame:

  Gender    NAME
0      M    John
1      F  Camili
2      F  Rheana
3      M  Joseph
4      F  Amanti
5      F   Alexa
6      F    Siri

从上面的数据集中很明显变量“性别”的标签为“M”和“F”。

此外,现在让我们导入 LabelEncoder 类,并将其应用于数据集的“性别”变量。

from sklearn import preprocessing 
label = preprocessing.LabelEncoder() 

block['Gender']= label.fit_transform(block['Gender']) 
print(block['Gender'].unique())

我们已经使用fit_transform() method将对象指向的标签编码器的功能应用于数据变量。

输出:

[1 0]

所以,你看,数据已经被转换成[01]的整数标签了。

print(block)

输出:

Gender    NAME
0       1    John
1       0  Camili
2       0  Rheana
3       1  Joseph
4       0  Amanti
5       0   Alexa
6       0    Siri


2。使用类别代码的标签编码

让我们首先检查数据集变量的数据类型。

block.dtypes

数据类型:

Gender    object
NAME      object
dtype: object

现在,将变量“性别”的数据类型转换为类别类型。

block['Gender'] = block['Gender'].astype('category')

block.dtypes

Gender    category
NAME        object
dtype: object

现在,让我们使用pandas.DataFrame.cat.codes函数将标签转换成整数类型。

block['Gender'] = block['Gender'].cat.codes

print(block)

如下所示,变量“性别”已被编码为整数值[01]。

Gender    NAME
0       1    John
1       0  Camili
2       0  Rheana
3       1  Joseph
4       0  Amanti
5       0   Alexa
6       0    Siri


结论

到此,我们就结束了这个话题。如果你遇到任何问题,欢迎在下面评论。

为了更深入地理解这个主题,请尝试在不同的数据集和变量上实现标签编码器的概念。请在评论区告诉我们你的体验!🙂

更多与 Python 相关的帖子,敬请关注,在此之前,祝你学习愉快!!🙂


参考