sklearn model.fit“使用序列设置数组元素”。

时间:2019-07-03 19:15:54

标签: python scikit-learn knn

我目前正在尝试通过传递X和Y数据并收到此错误setting an array element with a sequence.

来调用模型的train()函数

我尝试创建假数据并通过它,它工作得很好。 伪造数据:

X = [[1,2,3], [2,1,3]]
Y = [0,1]
knn_model.train(X,Y)

但是当传递真实数据时,我得到了错误。 实际数据是从图像中提取的像素值。我得到的数据结构与上面的伪造数据相同,但是由于某种原因我得到了错误。

通过实例化变量images = [],然后附加每个图像的每个像素数组来创建数据。

在调试控制台中,这是假数据和真实数据:

real data: array dtype('O') of list containing array dtype('uint8')
fake data: array dtype('int32') of list containing array dtype('int32')

收到的错误是当函数fit()被调用并且错误为

“使用序列设置数组元素。”

火车功能:

def train(self, X, Y): self.model.fit(X, Y)

1 个答案:

答案 0 :(得分:1)

解决方案在错误消息中。您的模型在发送序列/列表时需要一个数组。在附加数据之前,请使用numpy将训练数据从序列转换为数组。

numpy.array([1.2, "abc"], dtype=float)

numpy.array([1.2, 1, 42, 46])