我在下面写了下面的代码,
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.如果不是,那么对整个数据集进行训练测试并交叉验证的正确方法是什么?
答案 0 :(得分:0)
如果您想要一个简单的训练/测试集,请参阅this example from the docs。