如何在“中加载CSV文件而不是内置数据集”;“惊喜”;Python推荐系统?

如何在“中加载CSV文件而不是内置数据集”;“惊喜”;Python推荐系统?,python,python-3.x,recommender-systems,recommenderlab,Python,Python 3.x,Recommender Systems,Recommenderlab,我不知道如何编写代码来加载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).

我不知道如何编写代码来加载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)

在我只需要输入数据路径和文件名的地方,整行代码会是什么样子?我试过这个网站,想给你一个惊喜,但什么也没找到。因此,我不希望示例中使用movielens代码,而是希望使用一行来加载数据路径和文件。

首先,您需要创建
Reader()的实例。

请注意,
line\u format
参数只能是
'rating user item'
(可以选择添加
'timestamp'
),并且这些参数与
自定义\u rating.csv
中的列名称无关。这就是为什么定义了
skip_lines=1
prameter(它跳过csv文件中通常定义列名的第一行)。 另一方面,
line\u format
参数决定列的顺序。因此,为了清楚起见,我的
自定义_ratings.csv
如下所示:

分级、用户ID、电影ID
4,1,1
6,1,2
1,1,3
. . .
. . .
. . .

现在,您可以创建
数据
实例:

data = Dataset.load_from_file("custom_rating.csv", reader=reader)
最后,您可以继续创建SVD模型,如所示:

另外,别忘了在代码开头导入库:)

根据数据集,
ml-100k
是内置的数据集。肯定
Dataset
会知道在哪里可以找到它。
data = Dataset.load_from_file("custom_rating.csv", reader=reader)
# 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)
from surprise import SVD
from surprise import Dataset
from surprise import accuracy
from surprise import Reader
from surprise.model_selection import train_test_split