sklearn model.fit "установка элемента массива с помощью последовательности." - PullRequest
3 голосов
/ 03 июля 2019

В настоящее время я пытаюсь вызвать функцию train () моей модели, передавая данные X и Y и получая эту ошибку 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)

1 Ответ

1 голос
/ 03 июля 2019

Решение в сообщении об ошибке. Ваша модель ожидает массив во время отправки последовательности / списка. Преобразуйте ваши тренировочные данные из последовательности в массив, используя numpy перед добавлением.

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

или

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