详解 Scikit-learn 的 preprocessing.LabelEncoder函数:标签编码

  • Post category:Python

sklearn.preprocessing.LabelEncoder是一个用于将标签值编码为整数或一组整数的类。它经常用于机器学习中对标签或类别进行编码。下面就是LabelEncoder的使用方法和说明:

导入相关库

from sklearn.preprocessing import LabelEncoder

创建实例

le = LabelEncoder()

训练和转换

使用 fit_transform() 函数将标签值映射为整数,fit_transform()可以直接将标签数据进行编码。LabelEncoder会计算标签的唯一值并将其转换为整数值的数组。

labels_encoded = le.fit_transform(labels)

结果验证

为了验证,我们可以使用 inverse_transform() 函数,将整数类标签转换回其原始字符串形式:

labels_decoded = le.inverse_transform(labels_encoded)

实例1: 对银行客户的性别进行编码

在这个实例中,我们使用 LabelEncoder 对一份银行客户数据中的性别进行编码。首先创建一个包含性别信息的数组:

import numpy as np

sex = np.array(['Male', 'Female', 'Female', 'Male', 'Male'])

然后,我们使用 LabelEncoder 对性别数据进行编码:

le = LabelEncoder()
sex_encoded = le.fit_transform(sex)
print(sex_encoded)

输出为:

array([1, 0, 0, 1, 1])

最后我们可以使用 inverse_transform() 函数将整数标签转换回原始字符串标签:

sex_decoded = le.inverse_transform(sex_encoded)
print(sex_decoded)

输出为:

array(['Male', 'Female', 'Female', 'Male', 'Male'], dtype='<U6')

我们可以发现,经过编码和解码之后,原始的性别数据完好无损地转换为了整数形式。

实例2: 对车辆购买数据的颜色进行编码

在这个实例中,我们使用 LabelEncoder 对一份车辆购买数据中的颜色进行编码。首先创建一个包含颜色信息的数组:

import numpy as np

color = np.array(['Red', 'Blue', 'Green', 'Green', 'Red'])

然后,我们使用 LabelEncoder 对颜色数据进行编码:

le = LabelEncoder()
color_encoded = le.fit_transform(color)
print(color_encoded)

输出为:

array([2, 0, 1, 1, 2])

最后我们可以使用 inverse_transform() 函数将整数标签转换回原始字符串标签:

color_decoded = le.inverse_transform(color_encoded)
print(color_decoded)

输出为:

array(['Red', 'Blue', 'Green', 'Green', 'Red'], dtype='<U5')

我们可以发现,经过编码和解码之后,原始的颜色数据完好无损地转换为了整数形式。