算法基类¶
surprise.prediction_algorithms.algo_base
模块定义了基类 AlgoBase
,所有预测算法都必须继承自该基类。
- class surprise.prediction_algorithms.algo_base.AlgoBase(**kwargs)[source]¶
定义预测算法基本行为的抽象类。
- 关键字参数:
baseline_options (dict, optional) – 如果算法需要计算基准估计值,则使用
baseline_options
参数配置它们的计算方式。有关用法,请参见基准估计配置。
- compute_baselines()[source]¶
计算用户和项目的基准。
基准的计算方式取决于算法创建时传递的
bsl_options
参数(参见基准估计配置)。此方法仅与使用
Pearson baseline similarity
或BaselineOnly
算法相关。- 返回:
一个元组
(bu, bi)
,即用户和项目的基准。
- compute_similarities()[source]¶
构建相似度矩阵。
相似度矩阵的计算方式取决于算法创建时传递的
sim_options
参数(参见相似度测量配置)。此方法仅与使用相似度测量算法相关,例如k-NN 算法。
- 返回:
相似度矩阵。
- default_prediction()[source]¶
在调用
predict()
期间抛出PredictionImpossible
异常时使用。默认情况下,返回所有评分的全局平均值(可在子类中覆盖)。- 返回:
训练集中所有评分的平均值。
- 返回类型:
(float)
- fit(trainset)[source]¶
在给定的训练集上训练算法。
此方法被每个派生类调用,作为训练算法的第一个基本步骤。它主要只是初始化一些内部结构并设置 self.trainset 属性。
- 参数:
trainset (
Trainset
) – 训练集,由folds
方法返回。- 返回:
self
- get_neighbors(iid, k)[source]¶
返回
iid
的k
个最近邻居,iid
是用户或项目的内部 ID,具体取决于sim_options
的user_based
字段(参见相似度测量配置)。由于相似度是基于相似度测量计算的,因此此方法仅与使用相似度测量算法相关,例如k-NN 算法。
有关用法示例,请参见常见问题。
- 参数:
iid (int) – 我们想要最近邻居的用户(或项目)的(内部)ID。参见此说明。
k (int) – 要检索的邻居数量。
- 返回:
与
iid
最接近的k
个用户(或项目)的(内部)ID 列表。
- predict(uid, iid, r_ui=None, clip=True, verbose=False)[source]¶
计算给定用户和项目的评分预测值。
predict
方法将原始 ID 转换为内部 ID,然后调用在每个派生类中定义的estimate
方法。如果预测不可能(例如,因为用户和/或项目未知),则根据default_prediction()
设置预测值。- 参数:
- 返回:
一个
Prediction
对象,包含(原始)用户 ID
uid
。(原始)项目 ID
iid
。真实评分
r_ui
(\(r_{ui}\))。估计评分 (\(\hat{r}_{ui}\))。
关于预测的一些额外细节,可能对后续分析有用。
- test(testset, verbose=False)[source]¶
在给定的测试集上测试算法,即估计给定测试集中的所有评分。
- 参数:
testset – 测试集,由交叉验证迭代器或
build_testset()
方法返回。verbose (bool) – 是否打印每个预测的详情。默认值为 False。
- 返回:
一个
Prediction
对象列表,包含所有估计的评分。