基础算法¶
这些是基本算法,虽然不做太多工作,但对于比较准确性仍然有用。
- 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。