python - sklearn OneHotEncoder 形状错误
问题描述
我有一个数组
y_train: array([ 0, 0, 0, -1, 1, 0, -1, 0, ..., -1, 0, 1], dtype=int64)
我这样做了:
enc = OneHotEncoder()
y_train = enc.fit_transform(y_train.reshape(1,-1))
结果是
(0, 0) 1.0
(0, 1) 1.0
(0, 2) 1.0
(0, 3) 1.0
(0, 4) 1.0
(0, 5) 1.0
但我真正想要的是它是 onehot 编码,如下所示:
[1,0,0]
[1,0,0]
[0,1,0]
[0,0,1]
.....
如何解决?
解决方案
toarray()
将编码应用于变量后,您必须使用函数y_train
:
from sklearn import preprocessing
import numpy as np
y_train = np.array([0, 0, 0, -1, 1, 0, -1, 0, -1, 0, 1]).reshape(-1, 1)
enc = preprocessing.OneHotEncoder()
y_train = enc.fit_transform(y_train).toarray()
print(y_train)
你会得到这个输出:
[[0. 1. 0.]
[0. 1. 0.]
[0. 1. 0.]
[1. 0. 0.]
[0. 0. 1.]
[0. 1. 0.]
[1. 0. 0.]
[0. 1. 0.]
[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
推荐阅读
- openshift - IBM MQ 在 Openshift 4 上不作为 mqm 运行
- odata - 通过 OData 或 API 按位置查询 Business Central/NAV 项目可用性
- string - 在“get 方法”中转换字符串的正确函数
- php - 学习板,我做错了什么?
- google-api - Google Ads API:请求缺少身份验证凭据
- mysql - SQL - 在子查询中传递列
- javascript - Service Worker 没有停止初始请求,并且似乎只使用了一次
- flutter - 由于 IDP.GENERIC,Dart.exe 已移至病毒库
- java - 无法从其他模块工件中找到符号
- pine-script - Pine Script:脚本 SMA 与主图表上的等价物不匹配