我目前正在尝试通过传递我的 X 和 Y 数据来调用模型的 train() 函数,但收到此错误setting an array element with a sequence.
我尝试创建假数据并传递它,但效果很好。 假数据:
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)
最佳答案
解决方案在错误消息中。当您发送序列/列表时,您的模型需要一个数组。在追加之前,使用 numpy
将训练数据从序列转换为数组。
numpy.array([1.2, "abc"], dtype=float)
或
numpy.array([1.2, 1, 42, 46])
关于python - sklearn 模型.fit "setting an array element with a sequence.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56876671/