sklearn.preprocessing
- 0. 基本解释
- 1. 用法说明
- 2. python例子说明
0. 基本解释
LabelEncoder 是 sklearn.preprocessing 模块中的一个工具,用于将分类特征的标签转换为整数。这在许多机器学习算法中是必要的,因为它们通常不能处理类别数据。
1. 用法说明
# 初始化:
le = LabelEncoder()
# 转换标签:encoded_labels = le.fit_transform(labels)
其中 labels 是一个包含类别标签的列表或数组。
# 逆转换:original_labels = le.inverse_transform(encoded_labels)
2. python例子说明
from sklearn.preprocessing import LabelEncoder
import numpy as np # 假设我们有以下类别标签:
labels = np.array(['cat', 'dog', 'bird', 'cat', 'bird']) le = LabelEncoder()
encoded_labels = le.fit_transform(labels)
print(encoded_labels) # 输出: [0 1 2 0 2]
使用 inverse_transform 还原标签
:
original_labels = le.inverse_transform(encoded_labels)
print(original_labels) # 输出: ['cat' 'dog' 'bird' 'cat' 'bird']
处理多个特征:
如果你有一个数据框,并且想要对多个列应用 LabelEncoder,你可以这样做:
import pandas as pd
from sklearn.preprocessing import LabelEncoder # 创建一个简单的数据框
data = { 'Color': ['Red', 'Blue', 'Green'], 'Size': ['Small', 'Large', 'Medium']
}
df = pd.DataFrame(data) # 对颜色和大小列应用LabelEncoder
for col in df.columns: le = LabelEncoder() df[col] = le.fit_transform(df[col]) print(df) # 输出编码后的数据框
处理非数值特征:确保仅对数值特征应用编码。如果你的数据集中有其他非数值特征(如字符串、日期等),应首先将其转换为数值特征。例如,你可以使用独热编码(One-Hot Encoding)或因子分析(Factor Analysis)等方法。