Я написал следующий код, который работает:
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. Если нет, то как правильно провести тренировочный тест, разделить весь набор данных и проверить перекрестную проверку?