Skip to content

GiorgosTsal/Recomendation_System

Repository files navigation

Recomendation_System

*Based on User-User & Product-Product similarity: Predicts user's reviews and recommends suitable products and vice versa

For my course Information Retrieval and Search Engines at my university

Θα υλοποιήσετε ένα σύστημα συστάσεων (recommender system). Η υλοποίηση μπορεί να γίνει σε όποια γλώσσα προγραμματισμού προτιμάτε. Συγκεκριμένα, το πρόγραμμα σας θα πρέπει να παρέχει τις παρακάτω λειτουργίες.

A. Τυχαία παραγωγή πίνακα οφέλους, με διαστάσεις Ν×Μ (Ν χρήστες × Μ αντικείμενα). Ο πίνακας θα πρέπει να είναι κατά Χ% γεμάτος με βαθμολογίες ακεραίων από 1 έως 5. Θεωρείστε ομοιόμορφη κατανομή για την κατανομή των βαθμών στον πίνακα.

B. Θα υλοποιεί σύστημα συστάσεων χρήστη-χρήστη και αντικειμένου-αντικειμένου .

C. Συνάρτηση ομοιότητας Jaccard.

D. Συνάρτηση ομοιότητας συνημιτόνου (cosine).

E. Συνάρτηση ομοιότητας Pearson.

F. Υλοποίηση πρόβλεψης βαθμού με βάση Κ κοντινότερους γείτονες(K nearest neighbors) και χρήση ζυγισμένου αθροίσματος(στον παρονομαστή το άθροισμα των ομοιοτήτων). G. Υπολογισμός μέσου απόλυτου λάθους.

Το πρόγραμμα θα πρέπει να διαβάζει από ένα configuration αρχείο τις παραμέτρους εκτέλεσης, οι οποίες θα περιλαμβάνουν (με τη σειρά): Τ: ο αριθμός επαναλήψεων της εκτέλεσης Ν: το πλήθος των χρηστών του συστήματος Μ: το πλήθος των αντικειμένων του συστήματος Χ: το ποσοστό που δείχνει πόσο γεμάτος είναι ο πίνακας Κ: το πλήθος των κοντινότερων γειτόνων για την πρόβλεψη βαθμολογίας Στη συνέχεια, επαναληπτικά για Τ επαναλήψεις:

  1. Θα παράγει έναν νέο τυχαίο πίνακα οφέλους σύμφωνα με τις παραμέτρους εισόδου.
  2. Θα υλοποιεί ένα σύστημα χρήστη-χρήστη, χρησιμοποιώντας μία από τις ομοιότητες κάθε φορά (άρα τρείς φορές) και θα γεμίζει τον πίνακα οφέλους με προβλέψεις για όλες τις βαθμολογίες που λείπουν λαμβάνοντας υπόψη Κ κοντινότερους γείτονες.
  3. Θα αποτιμά το μέσο απόλυτο λάθος ανά χρήστη, αλλά και συνολικά για τον πίνακα για κάθε μέτρο ομοιότητας.
  4. Θα γράφει τον πίνακα αλλά και τις μετρήσεις λάθους σε ξεχωριστά αρχεία (με χαρακτηριστικά ονόματα).
  5. Θα επαναλαμβάνει τα βήματα 2 έως 4 για ένα σύστημα που χρησιμοποιεί ομοιότητα αντικειμένου-αντικειμένου. Στο βήμα 3 σε αυτήν την περίπτωση βγάλτε το λάθος ανά αντικείμενο και φυσικά το συνολικό όπως και πριν.

Εκτέλεση των παρακάτω πειραμάτων:

Με Τ=10, Ν=50, Μ=50.

Α) Με σταθερό ποσοστό Χ=75% γεμάτο πίνακα, τρέξτε το πρόγραμμα σας για Κ=3, Κ=5 και Κ=10 και σχεδιάστε γραφική παράσταση που δείχνει το μέσο απόλυτο λάθος (πάρτε το μέσο όρο λάθους από τις 10 επαναλήψεις για κάθε διαμόρφωση) για κάθε διαφορετική ομοιότητα τόσο για σύστημα με ομοιότητα χρήστη-χρήστη, όσο και αντικειμένουαντικειμένου. Δηλαδή συνολικά έχετε 6 συνδυασμούς για κάθε τιμή του Κ. Β) Με σταθερό Κ=5, τρέξτε το πρόγραμμα σας για Χ=80%, Χ=70%, Χ=50% και Χ=30%, και σχεδιάστε γραφική παράσταση που δείχνει το μέσο απόλυτο λάθος (πάρτε το μέσο όρο λάθους από τις 10 επαναλήψεις για κάθε διαμόρφωση) για κάθε διαφορετική ομοιότητα τόσο για σύστημα με ομοιότητα χρήστη-χρήστη, όσο και αντικειμένου-αντικειμένου. Δηλαδή συνολικά έχετε 6 συνδυασμούς για κάθε τιμή του Χ.

About

Based on User-User & Product-Product similarity: Predicts user's reviews and recommends suitable products and vice versa

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages