我正在尝试将一些分类特性转换成一个热编码,以便在Keras中使用。但是,当我试图映射这些特征时,我最终收到一个错误,指示形状不兼容。这是我的代码:
import numpy
import pandas
from keras.models import Sequential
from keras.layers import Dense
from sklearn.preprocessing import LabelEncoder
from keras.utils import np_utils
# load dataset
dataframe = pandas.read_csv("data/development.csv")
dataset = dataframe.values
X = dataset[:,0:7].astype(int)
encoder = LabelEncoder()
for i in [3,4,5,6]:
col = X[i]
encoder.fit(col)
encoded_col = encoder.transform(col)
X[i] = np_utils.to_categorical(encoded_col) # Error is here
Y = dataset[:,7].astype(int)
下面是我收到的错误:
ValueError: could not broadcast input array from shape (7,5) into shape (7)
我在这里有什么需要改变的吗?我使用的是python3.6和keras2.2.2。在
根据你在上述评论中提出的问题,我提出了一个可行的解决办法。但是,我仍然不确定您要实现什么目标,因为我缺少您使用此操作的上下文。但不管怎样,还是让我试试吧。在
因此,迭代的每个
X
行都有它自己的标签矩阵,由to_categorical
操作给出。因此,我将Y
(我认为这是您想要的)作为一个列表。然后在迭代过程中,我将新创建的矩阵分配给Y
列表的相应元素。在相关问题 更多 >
编程相关推荐