{"id":16391156,"url":"https://github.com/queirozfcom/recommender-systems","last_synced_at":"2025-10-26T13:31:44.852Z","repository":{"id":4580172,"uuid":"43234536","full_name":"queirozfcom/recommender-systems","owner":"queirozfcom","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-21T21:08:13.000Z","size":23622,"stargazers_count":6,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-16T03:20:45.476Z","etag":null,"topics":["recommender-system"],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/queirozfcom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-27T04:39:29.000Z","updated_at":"2024-04-16T03:20:45.478Z","dependencies_parsed_at":"2022-09-12T01:41:50.413Z","dependency_job_id":null,"html_url":"https://github.com/queirozfcom/recommender-systems","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queirozfcom%2Frecommender-systems","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queirozfcom%2Frecommender-systems/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queirozfcom%2Frecommender-systems/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/queirozfcom%2Frecommender-systems/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/queirozfcom","download_url":"https://codeload.github.com/queirozfcom/recommender-systems/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219862856,"owners_count":16555951,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["recommender-system"],"created_at":"2024-10-11T04:45:11.883Z","updated_at":"2025-10-26T13:31:44.234Z","avatar_url":"https://github.com/queirozfcom.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Recommender systems\n\nCode for COS836 - Topics in Database Systems - Recommender Systems at COPPE/UFRJ\n\n### List 1\n\n- Located under `code/julia/list-1/`\n\n### List 2\n\n- Located under `code/julia/list-2/` \n\n- ex 3,4:\n\n - It seems that the average of the rating of one ITEM over all users that rated it performs slightly better (i.e. is a slightly better predictor for the actual rating) than the average of the rating of one USER over all items he/she rated:\n\n - 5 runs of `ex3.jl` (using user average) averaged **0.833** error.\n - 5 runs of `ex4.jl` (using item average) averaged **0.813** error.\n\n- ex 5\n\n - For exercise 5, I've experimented using *both* the average rating by the user *and* the average rating given for the item  when predicting a rating given by a user for an item. Each \"guess\" was given equal weight\n\n - 5 runs of `ex5.jl` averaged **0.795** error\n\n### Item-based K-Nearest Neighbours Algorithm\n\n- Located under `code/python/item-based-knn/`\n\n \u003e Based upon [Andre Ng's CS 229 notes](http://cs229.stanford.edu/proj2008/Wen-RecommendationSystemBasedOnCollaborativeFiltering.pdf)\n\n`item-based-knn.py` is a naïve implementation of the k-nearest neighbours algorithm applied for recommending items.\n\nThe general idea is to find items that are similar to a movie *m* so that we can determine what rating a user *u* would give for movie *m*, given that user *u* has not yet seen movie *m*. I have used the **adjusted cosine similarity** between movies a and b.\n\nSample results can be found in file `results.csv`, which is of the form: \n\n    USER_ID,ITEM_ID,ORIGINAL_RATING,PREDICTED_RATING,ROOT_SQUARED_ERROR\n\n### SVD Algorithm\n\n- Located under `code/python/svd/`\n\nThis algorithm tries to decompose and discover a *low-dimensional* approximation of the **user-movie** matrix (**A**), where each row represents a user and each column represents a movie, and element **Aij** represents the *rating* user *i* gave to movie *j*.\n\nEach user *u* and movie *m* have a **feature vector**, modelled in the same feature-space. Unknown ratings can be inferred by performing the dot product between the feature vectors for user *u* and movie *m*.\n\n### Adding Temporal Features to COFILS method\n\nAdd temporal features to the method created by [Braida et al. (2015)](http://www.sciencedirect.com/science/article/pii/S095741741500038X). The COFILS method basically transforms a preference matrix (users X items) into a dataset that can be used for regular supervised learning, using matrix factorization techniques such as SVD (Singular-value decomposition).\n\nWe experiment with several ways of adding temporal features to the dataset obtained from the previous step, and explain results obtained after applying each strategy.\n\n- Located under [code/python/tcofils/](https://github.com/queirozfcom/recommender-systems/tree/master/code/python)\n\n - Executable file (entry point): `code/python/tcofils`\n\n- [Link to presentation (in Portuguese)](https://docs.google.com/presentation/d/1quFFebU2GBVY23mU6wxP6WHqpQ8Ho5uuXnYpa2B5958/edit?usp=sharing)\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueirozfcom%2Frecommender-systems","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fqueirozfcom%2Frecommender-systems","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fqueirozfcom%2Frecommender-systems/lists"}