0

在这个将数据集评估为推荐系统的示例中,我不知道如何编写代码来加载 CSV 文件或 .inter 文件而不是内置数据集:

from surprise import SVD
from surprise import KNNBasic
from surprise import Dataset
from surprise.model_selection import cross_validate

# Load the movielens-100k dataset (download it if needed).
data = Dataset.load_builtin('ml-100k')

# Use the famous SVD algorithm.
algo = KNNBasic()

# Run 5-fold cross-validation and print results.
cross_validate(algo, data, measures=['RMSE', 'MAE'], cv=5, verbose=True)

我只需要输入数据路径和文件名的完整代码行如何?我已经尝试了 Surprise 的网站,但我没有找到任何东西。所以我不想要示例中的 movielens 代码,而是加载数据路径和文件的行。

4

1 回答 1

0

首先,您需要创建以下实例Reader()

reader = Reader(line_format=u'rating user item', sep=',', rating_scale=(1, 6), skip_lines=1)

请注意,line_format参数只能是'rating user item''timestamp'可以添加),并且这些参数与您的custom_rating.csv. skip_lines=1这就是定义 prameter 的原因(它会跳过通常定义列名的csv 文件中的第一行)。另一方面,line_format参数决定了列的顺序。所以为了清楚我的custom_ratings.csv样子是这样的:

评分,用户 ID,电影ID 4,1,1
6,1,2 1,1,3 。. . . . . . . .




现在您可以创建您的data实例:

data = Dataset.load_from_file("custom_rating.csv", reader=reader)

最后,您可以继续创建 SVD 模型,如示例所示:

# sample random trainset and testset
# test set is made of 20% of the ratings.
trainset, testset = train_test_split(data, test_size=.2)

# We'll use the famous SVD algorithm.
algo = SVD()

# Train the algorithm on the trainset, and predict ratings for the testset
algo.fit(trainset)
predictions = algo.test(testset)

# Then compute RMSE
accuracy.rmse(predictions)

PS:也不要忘记在代码开头导入库:)

from surprise import SVD
from surprise import Dataset
from surprise import accuracy
from surprise import Reader
from surprise.model_selection import train_test_split
于 2021-05-18T11:53:17.457 回答