The project is organized into the following key components:
### Configuration and Constants
1.***configs.py***
- Defines an `EvalConfig` class for storing configurations for evaluating multiple recommendation models.
- Specifies a list of models, each with its name, class, and parameters.
- Defines metrics to evaluate model performance under different scenarios: split evaluation, Leave-One-Out, and on the entire dataset.
- Other parameters include test set size and the number of recommendations to consider.
2.***constants.py***
- This code defines a Constant class that stores paths to datasets and column names for content and evidence data. Paths to content, evidence, and evaluation directories are defined based on the data directory path. File names and column names for article and rating data are specified, along with the rating scale.
### Data Loaders
3.***loaders.py***
- Loads rating and item data from specified CSV files in the Constant class of the constants module.
- The `load_ratings` function loads rating data.
- The `load_items` function loads item data.
- The `export_evaluation_report` function merges rating and item data, then exports the evaluation report to a CSV file.
- The data is loaded into pandas DataFrames, with an option available to load rating data in the format expected by the Surprise library if needed.
### Recommender Models
4.***models.py***
- Defines several basic recommendation algorithms for the Surprise library.
- The `get_top n` function takes a list of predictions and returns the top recommendations for each user.
- Recommendation algorithms are defined as classes inheriting from Surprise's `AlgoBase` class, each implementing an `estimate` method to predict user ratings for items.
### Features and Models
1.***Feature Extraction Methods***
...
...
@@ -53,7 +90,6 @@ The system supports the following regression models for predicting user ratings:
-`lightgbm`
### Dataset
Organized under the data/test/ directory, which contains three subdirectories:
- content: Contains movies.csv & tags.csv files.
...
...
@@ -61,3 +97,33 @@ Organized under the data/test/ directory, which contains three subdirectories:
- evaluations: Directory reserved for evaluation results
## Contact
For questions or collaboration requests, please contact: