OneHotEncoder怎么用
时间: 2023-05-15 08:05:07 浏览: 72
OneHotEncoder是一个用于将分类数据转换为数值型数据的编码器,它可以将每个分类变量转换为一个二进制向量,其中只有一个元素为1,其余元素为0。这个编码器可以通过sklearn库中的OneHotEncoder类来实现。首先,需要将分类变量转换为数值型变量,可以使用LabelEncoder类。然后,使用OneHotEncoder类对数值型变量进行编码。具体实现代码如下:
```
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
# 创建一个示例数据集
data = ['red', 'green', 'blue', 'green', 'red', 'blue']
# 将分类变量转换为数值型变量
label_encoder = LabelEncoder()
integer_encoded = label_encoder.fit_transform(data)
# 将数值型变量进行独热编码
onehot_encoder = OneHotEncoder(sparse=False)
integer_encoded = integer_encoded.reshape(len(integer_encoded), 1)
onehot_encoded = onehot_encoder.fit_transform(integer_encoded)
print(onehot_encoded)
```
输出结果为:
```
array([[ 1., 0., 0.],
[ 0., 1., 0.],
[ 0., 0., 1.],
[ 0., 1., 0.],
[ 1., 0., 0.],
[ 0., 0., 1.]])
```
其中,每一行代表一个分类变量的编码结果,例如第一行表示red的编码结果为[1, 0, 0]。