【发布时间】:2020-08-19 21:07:21
【问题描述】:
我在下面写了以下代码:
from surprise.model_selection import cross_validate
cross_validate(algo,dataset,measures=['RMSE', 'MAE'],cv=5, verbose=False, n_jobs=-1)
但是当我这样做时:(注意训练集是在 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'
我查了一下 Surprise documentation 表示 Trainset 对象与数据集对象不同,这是有道理的。
但是,文档没有说明如何将训练集转换为数据集。
我的问题是: 1. 是否可以将 Surprise Trainset 转换为 Surprise Dataset? 2. 如果不是,训练测试分割整个数据集并交叉验证的正确方法是什么?
【问题讨论】:
标签: python-3.x dataset cross-validation recommendation-engine train-test-split