Как разделить набор данных и выполнить перекрестную проверку в Surprise? - PullRequest
0 голосов
/ 05 мая 2020

Я написал следующий код, который работает:

from surprise.model_selection import cross_validate

cross_validate(algo,dataset,measures=['RMSE', 'MAE'],cv=5, verbose=False, n_jobs=-1)

Однако, когда я это сделаю: (обратите внимание, что trainset передается здесь в cross_validate вместо всего набора данных)

from surprise.model_selection import train_test_split
trainset, testset = train_test_split(dataset, test_size=test_size)
cross_validate(algo, trainset, measures=['RMSE', 'MAE'],cv=5, verbose=False, n_jobs=-1)

Это дает следующую ошибку:

AttributeError: 'Trainset' object has no attribute 'raw_ratings'

Я просмотрел его, и Сюрприз документация говорит, что объекты Trainset не то же самое, что объекты набора данных, что имеет смысл.

Однако в документации не сказано, как преобразовать набор поездов в набор данных.

Мой вопрос: 1. Можно ли преобразовать набор поездов-сюрпризов в набор данных-сюрприз? 2. Если нет, то как правильно провести тренировочный тест, разделить весь набор данных и проверить перекрестную проверку?

...