【问题标题】:'svd' has no "split" attribute'svd' 没有“拆分”属性
【发布时间】:2020-05-18 20:23:29
【问题描述】:

我正在尝试使用 SVD python 包制作推荐系统。我正在导入 csv 文件,然后执行以下操作,但它显示错误。如何解决?

from surprise import SVD,Reader,Dataset
ratings =  pd.read_csv("/content/ratings_small.csv")
data = Dataset.load_from_df(ratings[['userId','movieId','rating']],reader)
data.split(n_folds=5)
---------------------------------------------------------------------------

AttributeError                            Traceback (most recent call last)

<ipython-input-29-f3bf344cf3e2> in <module>()
----> 1 data.split(n_folds=5)

AttributeError: 'DatasetAutoFolds' object has no attribute 'split'

它说它没有拆分属性,但通过question 他们使用了它。

【问题讨论】:

  • 1) 问题与svd 无关(已删除)-而且您的标题具有误导性 2) Dataset.load_from_df 来自哪里(错误显然与此有关)?请明确包括您的(仅相关的)导入(我猜它来自surprise,但这不应该是读者的猜测)。

标签: python


【解决方案1】:

您需要从 model_selection 导入 KFold 以拆分数据并执行交叉验证。 这行得通。

from surprise import SVD,Reader,Dataset
from surprise.model_selection import KFold
ratings =  pd.read_csv("/content/ratings_small.csv")
data = Dataset.load_from_df(ratings[['userId','movieId','rating']],reader)
kf = KFold(n_splits=5)
kf.split(data)

【讨论】:

  • 这个link 有另一种方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2015-01-12
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多