首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“DatasetAutoFolds”对象在python意外中没有“”global_mean“”属性

“DatasetAutoFolds”对象在python意外中没有“”global_mean“”属性
EN

Stack Overflow用户
提问于 2018-03-14 03:00:41
回答 1查看 9K关注 0票数 11

我正在使用惊喜来执行交叉验证

代码语言:javascript
复制
def cross_v(data, folds=5):
    algorithms = (SVD, KNNBasic, KNNWithMeans, NormalPredictor)
    measures = ['RMSE', 'MAE']

for a in algorithms:
    data.split(folds);
    algo = a();
    algo.fit(data)

我以这种方式调用函数

代码语言:javascript
复制
data = Dataset.load_builtin('ml-100k')
multiple_cv(data)

我得到了这个错误

代码语言:javascript
复制
Traceback (most recent call last):
  File "/home/user/PycharmProjects/pac1/prueba.py", line 30, in <module>
    multiple_cv(data)
  File "/home/user/PycharmProjects/pac1/prueba.py", line 19, in multiple_cv
    algo.fit(data)
  File "surprise/prediction_algorithms/matrix_factorization.pyx", line 155, in surprise.prediction_algorithms.matrix_factorization.SVD.fit
  File "surprise/prediction_algorithms/matrix_factorization.pyx", line 204, in surprise.prediction_algorithms.matrix_factorization.SVD.sgd
AttributeError: 'DatasetAutoFolds' object has no attribute 'global_mean'

我错过了什么??

EN

回答 1

Stack Overflow用户

发布于 2018-04-17 11:48:35

As per the docs,则fit方法的输入必须是您尝试使用的训练集,它不同于数据集。您可以使用前面提到的here拆分方法的输出将数据集拆分为训练集(和测试集)。

在您的示例中,

代码语言:javascript
复制
data = Dataset.load_builtin('ml-100k')
trainset = data.build_full_trainset()

然后,您可以使用

代码语言:javascript
复制
algo.fit(trainset)

这样得到的训练集和测试集可以分别用作拟合函数和测试函数的输入。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49263964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档