基础算法

这些是基本算法,虽然不做太多工作,但对于比较准确性仍然有用。

class surprise.prediction_algorithms.random_pred.NormalPredictor[source]

基础类:AlgoBase

算法基于训练集的分布预测随机评分,假设训练集是正态分布的。

预测值 \(\hat{r}_{ui}\) 是从正态分布 \(\mathcal{N}(\hat{\mu}, \hat{\sigma}^2)\) 生成的,其中 \(\hat{\mu}\)\(\hat{\sigma}\) 是通过最大似然估计从训练数据中估计得出的:

\[\begin{split}\hat{\mu} &= \frac{1}{|R_{train}|} \sum_{r_{ui} \in R_{train}} r_{ui}\\\\ \hat{\sigma} &= \sqrt{\sum_{r_{ui} \in R_{train}} \frac{(r_{ui} - \hat{\mu})^2}{|R_{train}|}}\end{split}\]
class surprise.prediction_algorithms.baseline_only.BaselineOnly(bsl_options={}, verbose=True)[source]

基础类:AlgoBase

算法预测给定用户和项目的基线估计。

\(\hat{r}_{ui} = b_{ui} = \mu + b_u + b_i\)

如果用户 \(u\) 未知,则假设偏差 \(b_u\) 为零。同样适用于项目 \(i\)\(b_i\)

详情请参见[Kor10]的第2.1节。

Parameters:
  • bsl_options (dict) – 用于基线估计计算的选项字典。有关接受的选项,请参见基线估计配置

  • verbose (bool) – 是否打印偏差估计、相似性等的跟踪消息。默认值为 True。