python语言中的one hot 编码
时间: 2023-08-08 22:10:13 浏览: 69
在Python语言中,one hot编码是一种常用的数据预处理技术,用于将离散型数据(如分类变量)转换为连续型数据(如数字)。在one hot编码中,我们将每个离散变量的取值转换为一个二进制向量,其中只有一个元素为1,其他元素均为0。例如,假设我们有一个包含三个类别的离散变量,如['red', 'green', 'blue'],我们可以使用one hot编码将其转换为以下三个向量:
- [1, 0, 0]:表示'red'
- [0, 1, 0]:表示'green'
- [0, 0, 1]:表示'blue'
Python中可以使用sklearn.preprocessing库中的OneHotEncoder类来进行one hot编码。具体使用方法可以参考以下示例代码:
```python
from sklearn.preprocessing import OneHotEncoder
import numpy as np
# 假设我们有一个包含5个类别的离散变量
data = np.array(['A', 'B', 'C', 'D', 'E']).reshape(-1, 1)
# 创建一个OneHotEncoder对象
encoder = OneHotEncoder()
# 对变量进行one hot编码
one_hot_data = encoder.fit_transform(data).toarray()
# 输出编码结果
print(one_hot_data)
```
运行以上代码,输出的结果为:
```
array([[1., 0., 0., 0., 0.],
[0., 1., 0., 0., 0.],
[0., 0., 1., 0., 0.],
[0., 0., 0., 1., 0.],
[0., 0., 0., 0., 1.]])
```
其中每一行表示一个样本的编码结果,每列表示一个类别的编码结果。
阅读全文