-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
33 lines (24 loc) · 1.81 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from rec_rank import aggregator, generator
import rec_rank.parameters_tuning.recommendation_algorithms_tuning as rec_tuner
import rec_rank.parameters_tuning.fusion_algorithms_tuning as fusion_tuner
from rec_rank.helpers import helpers
from rec_rank.dataset import train_test_split
from parameters import ParametersForMovieLens100k, ParametersForMovieLens1M
if __name__ == '__main__':
# Stage 1: Load parameters for experiment.
parameters = ParametersForMovieLens100k()
# Stage 2: Split dataset into train and test sets (can be cached).
training_set, test_set = train_test_split(parameters)
# Stage 3: Tune the parameters of recommendation algorithms (can be cached).
best_parameters_rec_algorithms = rec_tuner.tune_recommendations_algorithms(parameters, training_set)
# Stage 4: Initialize recommendation algorithms with the best set of parameters found in stage 3.
recommendation_algorithms = generator.init_recommendation_algorithms(parameters, best_parameters_rec_algorithms)
# Stage 5: Generate recommendations in the form of rankings (can be cached).
recommendations = generator.generate_recommendations(parameters, training_set, recommendation_algorithms)
# Stage 6: Tune supervised aggregation methods on the training set (can be cached).
fusion_methods_parameters = fusion_tuner.tune_fusion_methods(parameters, training_set, recommendation_algorithms)
# Stage 7: Final aggregation, using supervised and unsupervised aggregation methods.
aggregated_results = aggregator.aggregate_recommendations(parameters, recommendations, fusion_methods_parameters)
# Stage 8: Evaluate results (using test set).
helpers.evaluate_and_save_results(parameters.name, aggregated_results, best_parameters_rec_algorithms, test_set)
# helpers.get_results_from_lenskit(recommendations, test_set)