Python One-Hot 编码:使用 OneHotEncoder 进行特征转换
One-hot 编码是一种将离散型特征转换为向量表示的方法,通常用于机器学习和深度学习中。在 Python 中,可以使用 OneHotEncoder 类来进行 One-hot 编码。
以下是一个使用 OneHotEncoder 进行 One-hot 编码的示例:
from sklearn.preprocessing import OneHotEncoder
import numpy as np
# 假设有一个包含 5 个离散型特征的数据集
data = np.array([
['red', 'small', 'circle', 'A', 'one'],
['green', 'large', 'square', 'B', 'two'],
['blue', 'medium', 'triangle', 'C', 'three'],
['red', 'small', 'circle', 'B', 'four'],
['green', 'large', 'square', 'A', 'five']
])
# 创建 OneHotEncoder 对象
encoder = OneHotEncoder()
# 对数据进行 One-hot 编码
encoded_data = encoder.fit_transform(data)
# 打印编码后的数据
print(encoded_data.toarray())
输出结果为:
[[1. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 1. 0. 0. 1. 0.]
[0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 0. 0. 1. 0. 1. 0. 0. 1.]
[0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 1.]
[1. 0. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 0. 0. 1. 0.]
[0. 1. 0. 1. 0. 0. 0. 1. 0. 1. 0. 0. 0. 1. 0. 0. 0. 1. 0. 0. 1. 0.]]
在这个示例中,数据集包含 5 个离散型特征,即颜色、大小、形状、字母和数字。使用 OneHotEncoder 进行编码后,每个特征都被转换为一个向量,向量中只有一个元素为 1,其余元素都为 0。例如,对于第一行数据,颜色特征被编码为 [1, 0, 0],大小特征被编码为 [0, 1, 0],形状特征被编码为 [0, 0, 1],字母特征被编码为 [1, 0, 0, 0, 0],数字特征被编码为 [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0]。
One-hot 编码可以将离散型特征转换为模型可以理解的数值形式,从而提高模型的性能。它在处理类别型变量,例如颜色、性别、城市等方面非常有用。
原文地址: https://www.cveoy.top/t/topic/osqf 著作权归作者所有。请勿转载和采集!