Trainset 类¶
- class surprise.Trainset(ur, ir, n_users, n_items, n_ratings, rating_scale, raw2inner_id_users, raw2inner_id_items)[source]¶
训练集包含构成训练集的所有有用数据。
每个预测算法的
fit()
方法都使用它。您不应该尝试自己构建此类对象,而是使用Dataset.folds()
方法或DatasetAutoFolds.build_full_trainset()
方法。训练集与
数据集
不同。您可以将数据集
视为原始数据,而训练集则是在其中定义了有用方法的高级数据。此外,一个数据集
可能包含多个训练集(例如,进行交叉验证时)。- ur¶
用户的评分。这是一个字典,其中包含形如
(item_inner_id, rating)
的元组列表。键是用户的内部 ID。- 类型:
defaultdict
oflist
- ir¶
物品的评分。这是一个字典,其中包含形如
(user_inner_id, rating)
的元组列表。键是物品的内部 ID。- 类型:
defaultdict
oflist
- n_users¶
用户总数 \(|U|\)。
- n_items¶
物品总数 \(|I|\)。
- n_ratings¶
评分总数 \(|R_{train}|\)。
- rating_scale¶
评分范围的最小值和最大值。
- 类型:
元组
- global_mean¶
所有评分的均值 \(\mu\)。
- build_anti_testset(fill=None)[source]¶
返回一个评分列表,该列表可在
test()
方法中用作测试集。这些评分是不在训练集中的所有评分,即用户\(u\)已知,物品\(i\)已知,但评分\(r_{ui}\)不在训练集中的所有评分\(r_{ui}\)。由于\(r_{ui}\)未知,它要么被替换为
fill
值,要么假定等于所有评分的均值global_mean
。- 参数:
fill (float) – 用于填充未知评分的值。如果为
None
,将使用所有评分的全局均值global_mean
。- 返回:
形如
(uid, iid, fill)
的元组列表,其中 ID 是原始 ID。
- build_testset()[source]¶
返回一个评分列表,该列表可在
test()
方法中用作测试集。这些评分是训练集中的所有评分,即
all_ratings()
生成器返回的所有评分。这在您想要在训练集上测试算法的情况下非常有用。
- knows_item(iid)[source]¶
指示物品是否属于训练集。
如果物品至少被评分一次,则认为该物品属于训练集。
- 参数:
iid (int) – (内部)物品 ID。请参阅此说明。
- 返回:
如果物品属于训练集,则为
True
,否则为False
。
- knows_user(uid)[source]¶
指示用户是否属于训练集。
如果用户至少有一个评分,则认为该用户属于训练集。
- 参数:
uid (int) – (内部)用户 ID。请参阅此说明。
- 返回:
如果用户属于训练集,则为
True
,否则为False
。
- to_inner_iid(riid)[source]¶
将物品原始 ID 转换为内部 ID。
请参阅此说明。
- 参数:
riid (str) – 物品原始 ID。
- 返回:
物品内部 ID。
- 返回类型:
int
- 抛出异常:
ValueError – 当物品不属于训练集时。
- to_inner_uid(ruid)[source]¶
将用户原始 ID 转换为内部 ID。
请参阅此说明。
- 参数:
ruid (str) – 用户原始 ID。
- 返回:
用户内部 ID。
- 返回类型:
int
- 抛出异常:
ValueError – 当用户不属于训练集时。