src.fairreckitlib.model.algorithms.surprise.surprise_factory

This module contains functionality to create the surprise predictor/recommender factory.

Functions:

create_predictor_factory: create factory with surprise predictors.
create_recommender_factory: create factory with surprise recommenders.

This program has been developed by students from the bachelor Computer Science at Utrecht University within the Software Project course. © Copyright Utrecht University (Department of Information and Computing Sciences)

  1"""This module contains functionality to create the surprise predictor/recommender factory.
  2
  3Functions:
  4
  5    create_predictor_factory: create factory with surprise predictors.
  6    create_recommender_factory: create factory with surprise recommenders.
  7
  8This program has been developed by students from the bachelor Computer Science at
  9Utrecht University within the Software Project course.
 10© Copyright Utrecht University (Department of Information and Computing Sciences)
 11"""
 12
 13from ....core.config.config_factories import Factory, create_factory_from_list
 14from ....core.core_constants import SURPRISE_API
 15from . import surprise_params
 16from . import surprise_predictor
 17from . import surprise_recommender
 18from . import surprise_algorithms
 19
 20
 21def create_predictor_factory() -> Factory:
 22    """Create the factory with Surprise predictors.
 23
 24    Returns:
 25        the factory with all available predictors.
 26    """
 27    return create_factory_from_list(SURPRISE_API, [
 28        (surprise_algorithms.BASELINE_ONLY_ALS,
 29         surprise_predictor.create_baseline_only_als,
 30         surprise_params.create_params_baseline_only_als
 31         ),
 32        (surprise_algorithms.BASELINE_ONLY_SGD,
 33         surprise_predictor.create_baseline_only_sgd,
 34         surprise_params.create_params_baseline_only_sgd
 35         ),
 36        (surprise_algorithms.CO_CLUSTERING,
 37         surprise_predictor.create_co_clustering,
 38         surprise_params.create_params_co_clustering
 39         ),
 40        (surprise_algorithms.KNN_BASIC,
 41         surprise_predictor.create_knn_basic,
 42         surprise_params.create_params_knn_similarities
 43         ),
 44        (surprise_algorithms.KNN_BASELINE_ALS,
 45         surprise_predictor.create_knn_baseline_als,
 46         surprise_params.create_params_knn_baseline_als
 47         ),
 48        (surprise_algorithms.KNN_BASELINE_SGD,
 49         surprise_predictor.create_knn_baseline_sgd,
 50         surprise_params.create_params_knn_baseline_sgd
 51         ),
 52        (surprise_algorithms.KNN_WITH_MEANS,
 53         surprise_predictor.create_knn_with_means,
 54         surprise_params.create_params_knn_similarities
 55         ),
 56        (surprise_algorithms.KNN_WITH_ZSCORE,
 57         surprise_predictor.create_knn_with_zscore,
 58         surprise_params.create_params_knn_similarities
 59         ),
 60        (surprise_algorithms.NMF,
 61         surprise_predictor.create_nmf,
 62         surprise_params.create_params_nmf
 63         ),
 64        (surprise_algorithms.NORMAL_PREDICTOR,
 65         surprise_predictor.create_normal_predictor,
 66         None
 67         ),
 68        (surprise_algorithms.SLOPE_ONE,
 69         surprise_predictor.create_slope_one,
 70         None
 71         ),
 72        (surprise_algorithms.SVD,
 73         surprise_predictor.create_svd,
 74         surprise_params.create_params_svd
 75         ),
 76        (surprise_algorithms.SVD_PP,
 77         surprise_predictor.create_svd_pp,
 78         surprise_params.create_params_svd_pp
 79         )
 80    ])
 81
 82
 83def create_recommender_factory() -> Factory:
 84    """Create the factory with Surprise recommenders.
 85
 86    Returns:
 87        the factory with all available recommenders.
 88    """
 89    return create_factory_from_list(SURPRISE_API, [
 90        (surprise_algorithms.BASELINE_ONLY_ALS,
 91         surprise_recommender.create_baseline_only_als,
 92         surprise_params.create_params_baseline_only_als
 93         ),
 94        (surprise_algorithms.BASELINE_ONLY_SGD,
 95         surprise_recommender.create_baseline_only_sgd,
 96         surprise_params.create_params_baseline_only_sgd
 97         ),
 98        (surprise_algorithms.CO_CLUSTERING,
 99         surprise_recommender.create_co_clustering,
100         surprise_params.create_params_co_clustering
101         ),
102        (surprise_algorithms.KNN_BASIC,
103         surprise_recommender.create_knn_basic,
104         surprise_params.create_params_knn_similarities
105         ),
106        (surprise_algorithms.KNN_BASELINE_ALS,
107         surprise_recommender.create_knn_baseline_als,
108         surprise_params.create_params_knn_baseline_als
109         ),
110        (surprise_algorithms.KNN_BASELINE_SGD,
111         surprise_recommender.create_knn_baseline_sgd,
112         surprise_params.create_params_knn_baseline_sgd
113         ),
114        (surprise_algorithms.KNN_WITH_MEANS,
115         surprise_recommender.create_knn_with_means,
116         surprise_params.create_params_knn_similarities
117         ),
118        (surprise_algorithms.KNN_WITH_ZSCORE,
119         surprise_recommender.create_knn_with_zscore,
120         surprise_params.create_params_knn_similarities
121         ),
122        (surprise_algorithms.NMF,
123         surprise_recommender.create_nmf,
124         surprise_params.create_params_nmf
125         ),
126        (surprise_algorithms.NORMAL_PREDICTOR,
127         surprise_recommender.create_normal_predictor,
128         None
129         ),
130        (surprise_algorithms.SLOPE_ONE,
131         surprise_recommender.create_slope_one,
132         None
133         ),
134        (surprise_algorithms.SVD,
135         surprise_recommender.create_svd,
136         surprise_params.create_params_svd
137         ),
138        (surprise_algorithms.SVD_PP,
139         surprise_recommender.create_svd_pp,
140         surprise_params.create_params_svd_pp
141         )
142    ])
def create_predictor_factory() -> src.fairreckitlib.core.config.config_factories.Factory:
22def create_predictor_factory() -> Factory:
23    """Create the factory with Surprise predictors.
24
25    Returns:
26        the factory with all available predictors.
27    """
28    return create_factory_from_list(SURPRISE_API, [
29        (surprise_algorithms.BASELINE_ONLY_ALS,
30         surprise_predictor.create_baseline_only_als,
31         surprise_params.create_params_baseline_only_als
32         ),
33        (surprise_algorithms.BASELINE_ONLY_SGD,
34         surprise_predictor.create_baseline_only_sgd,
35         surprise_params.create_params_baseline_only_sgd
36         ),
37        (surprise_algorithms.CO_CLUSTERING,
38         surprise_predictor.create_co_clustering,
39         surprise_params.create_params_co_clustering
40         ),
41        (surprise_algorithms.KNN_BASIC,
42         surprise_predictor.create_knn_basic,
43         surprise_params.create_params_knn_similarities
44         ),
45        (surprise_algorithms.KNN_BASELINE_ALS,
46         surprise_predictor.create_knn_baseline_als,
47         surprise_params.create_params_knn_baseline_als
48         ),
49        (surprise_algorithms.KNN_BASELINE_SGD,
50         surprise_predictor.create_knn_baseline_sgd,
51         surprise_params.create_params_knn_baseline_sgd
52         ),
53        (surprise_algorithms.KNN_WITH_MEANS,
54         surprise_predictor.create_knn_with_means,
55         surprise_params.create_params_knn_similarities
56         ),
57        (surprise_algorithms.KNN_WITH_ZSCORE,
58         surprise_predictor.create_knn_with_zscore,
59         surprise_params.create_params_knn_similarities
60         ),
61        (surprise_algorithms.NMF,
62         surprise_predictor.create_nmf,
63         surprise_params.create_params_nmf
64         ),
65        (surprise_algorithms.NORMAL_PREDICTOR,
66         surprise_predictor.create_normal_predictor,
67         None
68         ),
69        (surprise_algorithms.SLOPE_ONE,
70         surprise_predictor.create_slope_one,
71         None
72         ),
73        (surprise_algorithms.SVD,
74         surprise_predictor.create_svd,
75         surprise_params.create_params_svd
76         ),
77        (surprise_algorithms.SVD_PP,
78         surprise_predictor.create_svd_pp,
79         surprise_params.create_params_svd_pp
80         )
81    ])

Create the factory with Surprise predictors.

Returns: the factory with all available predictors.

def create_recommender_factory() -> src.fairreckitlib.core.config.config_factories.Factory:
 84def create_recommender_factory() -> Factory:
 85    """Create the factory with Surprise recommenders.
 86
 87    Returns:
 88        the factory with all available recommenders.
 89    """
 90    return create_factory_from_list(SURPRISE_API, [
 91        (surprise_algorithms.BASELINE_ONLY_ALS,
 92         surprise_recommender.create_baseline_only_als,
 93         surprise_params.create_params_baseline_only_als
 94         ),
 95        (surprise_algorithms.BASELINE_ONLY_SGD,
 96         surprise_recommender.create_baseline_only_sgd,
 97         surprise_params.create_params_baseline_only_sgd
 98         ),
 99        (surprise_algorithms.CO_CLUSTERING,
100         surprise_recommender.create_co_clustering,
101         surprise_params.create_params_co_clustering
102         ),
103        (surprise_algorithms.KNN_BASIC,
104         surprise_recommender.create_knn_basic,
105         surprise_params.create_params_knn_similarities
106         ),
107        (surprise_algorithms.KNN_BASELINE_ALS,
108         surprise_recommender.create_knn_baseline_als,
109         surprise_params.create_params_knn_baseline_als
110         ),
111        (surprise_algorithms.KNN_BASELINE_SGD,
112         surprise_recommender.create_knn_baseline_sgd,
113         surprise_params.create_params_knn_baseline_sgd
114         ),
115        (surprise_algorithms.KNN_WITH_MEANS,
116         surprise_recommender.create_knn_with_means,
117         surprise_params.create_params_knn_similarities
118         ),
119        (surprise_algorithms.KNN_WITH_ZSCORE,
120         surprise_recommender.create_knn_with_zscore,
121         surprise_params.create_params_knn_similarities
122         ),
123        (surprise_algorithms.NMF,
124         surprise_recommender.create_nmf,
125         surprise_params.create_params_nmf
126         ),
127        (surprise_algorithms.NORMAL_PREDICTOR,
128         surprise_recommender.create_normal_predictor,
129         None
130         ),
131        (surprise_algorithms.SLOPE_ONE,
132         surprise_recommender.create_slope_one,
133         None
134         ),
135        (surprise_algorithms.SVD,
136         surprise_recommender.create_svd,
137         surprise_params.create_params_svd
138         ),
139        (surprise_algorithms.SVD_PP,
140         surprise_recommender.create_svd_pp,
141         surprise_params.create_params_svd_pp
142         )
143    ])

Create the factory with Surprise recommenders.

Returns: the factory with all available recommenders.