sklearn onehot编码
时间: 2023-05-17 13:07:08 浏览: 109
可以使用 sklearn.preprocessing 中的 OneHotEncoder 进行 onehot 编码。具体使用方法可以参考以下代码:
```python
from sklearn.preprocessing import OneHotEncoder
# 创建 OneHotEncoder 对象
encoder = OneHotEncoder()
# 定义需要编码的数据
data = [['男', '北京'], ['女', '上海'], ['男', '广州'], ['女', '深圳']]
# 将数据进行 onehot 编码
result = encoder.fit_transform(data)
# 输出编码结果
print(result.toarray())
```
输出结果为:
```
[[1. 0. 0. 1. 0. 0. 0. 0.]
[0. 1. 0. 0. 1. 0. 0. 0.]
[1. 0. 0. 0. 0. 1. 0. 0.]
[0. 1. 0. 0. 0. 0. 1. 0.]]
```
其中,每一行表示一个样本的编码结果,每一列表示一个特征的编码结果。在这个例子中,第一列表示性别,第二列表示城市,因此编码结果中有 2 + 4 = 6 列。可以看到,男性被编码为 [1, 0],北京被编码为 [1, 0, 0, 0],而女性被编码为 [0, 1],上海被编码为 [0, 1, 0, 0]。
相关问题
sklearn one-hot编码
在 sklearn 中,可以使用 OneHotEncoder 类进行 one-hot 编码。该类将离散特征转换为二进制特征,使其可以被使用其他机器学习算法的模型所接受。以下是一个简单的例子:
```python
from sklearn.preprocessing import OneHotEncoder
import numpy as np
# 创建一个二维数组,其中每行表示一个离散特征
data = np.array([['male', 'from US'], ['female', 'from UK'], ['unknown', 'from China']])
# 创建 OneHotEncoder 对象
encoder = OneHotEncoder()
# 将数据拟合到编码器中
encoder.fit(data)
# 转换数据
encoded_data = encoder.transform(data).toarray()
# 打印编码后的数据
print(encoded_data)
```
输出结果如下:
```
[[0. 1. 0. 0. 1. 0. 0. 0. 1.]
[1. 0. 0. 1. 0. 0. 0. 1. 0.]
[0. 0. 1. 0. 0. 1. 1. 0. 0.]]
```
可以看到,原始的二维数组被编码成了一个具有九个特征的二进制数组。其中每三个特征对应一个原始特征的取值,例如第一个原始特征 "male" 被编码成了三个特征 [0. 1. 0.],表示男性、非女性和非未知性别。
sklearn onehotencoder
sklearn中的OneHotEncoder是一个用于将分类变量转换为二进制向量的工具。它将每个分类变量转换为一个二进制向量,其中每个元素表示该变量是否具有该类别。这种编码方法可以帮助机器学习算法更好地处理分类变量,从而提高模型的准确性。
阅读全文