Try it "Here's looking at you, kid." - Rick Blaine, Casablanca (1942)
In the ever-expanding world of entertainment, finding the perfect movie can be a daunting task. Our project, FilmCraze Recommender, is designed to simplify this process by leveraging cutting-edge recommendation algorithms. This not only enhances the viewing experience for users but also provides higher revenue and user engagement for content creators and streaming platforms.
- End Users (Viewers): Enjoy tailored recommendations.
- Streaming Platforms: Boost user engagement and subscription rates.
- Content Creators: Gain insights for content and marketing strategies.
The dataset utilized for this project is the MovieLens dataset, a well-established and widely recognized dataset in the field of movie recommendations. MovieLens is acclaimed for its extensive collection of user interactions and comprehensive movie metadata.find it here here
- Size: The dataset consists of 100,836 records.
- Features: It contains 4 features.
- Quality: The data contains missing values and duplicates, which need to be addressed during preprocessing.
- Suitability: Rich user interactions: Ratings, tags, user profiles. Proven in academia and industry for recommendation systems.
-
Handle Missing Values: Removed rows with missing values in the 'tmdbId' column.
-
Data Type Conversion: Changed the data type of the 'tmdbId' column from float to int for compatibility with the 'fetch_poster' function.
-
Remove Duplicates: Dropped duplicate rows, keeping the first occurrence.
-
Column Name Standardization: Renamed column names to lowercase for alignment with PostgreSQL columns.
The data is now ready for use.
- Overview: Simple, popularity-driven model.
- How it Works: Recommends popular movies to all users.
- Pros: Easy to implement.
- Cons: Lacks personalization.
I used this model as baseline model and improved from it
- Overview: Focuses on user-item similarity.
- How it Works: Recommends items similar to a user's preferences.
- Pros: Provides personalized recommendations.
- Cons: Needs user-item interaction data.
I have used this model in my recommendation part of my website
- Overview: Collaborative filtering with latent factors.
- Pros: Strong personalization, effective for sparse data.
- Cons: Requires sufficient interaction data.
I used this model as the final model and used it in For You part of my website
We rigorously evaluate the performance of our recommendation system using various metrics to ensure its effectiveness and reliability in delivering personalized movie recommendations.
-
Novelty: We assess the novelty of our recommendations to provide users with unique and engaging content.
-
Personalization: We prioritize personalization to tailor recommendations to individual user tastes and preferences.
-
Coverage: Our system aims to cover a broad range of movies to cater to diverse user preferences.
-
Mean Average Recall at K (MAR@K): This metric measures the effectiveness of our recommendations at different values of K, ensuring we are delivering relevant items to users.
-
Novelty: Our recommendations exhibit a novelty score of 2.74, striking a balance between uniqueness and user engagement.
-
Personalization: "We achieve a moderate level of personalization, with a personalization score of 0.05.".
- Coverage: Our system achieves an impressive catalog coverage of 44%, offering a wide variety of movies to our users.
- MAR@K: Our model achieves a lower MAR@K score, which can be influenced by the prevalence of popular items. While this may lead to seemingly strong performance, it may not fully reflect the model's ability to provide personalized and useful recommendations.
Our evaluation results underscore the effectiveness of our recommendation system in delivering a superior movie-watching experience for end-users while providing value to streaming platforms and content creators. For detailed analysis, data exploration, and modeling code, please refer to the provided student notebook available in the student notebook.
Link:presentation.
-
Installation
git clone https://github.com/yourusername/filmcraze-recommender.git
-
Getting Started
pip install -r requirements.txt
cd filmcraze-recommender
-
Setting Up a Local PostgreSQL Database
To use FilmCraze Recommender, you'll need a PostgreSQL database to store and retrieve movie data. Here's how to set it up:
-
Install PostgreSQL: If you haven't already, download and install PostgreSQL from the official website: PostgreSQL Downloads.
-
Database Configuration: Update the database configuration in your project. Open the
app.py
and fill in your database credentials:DB_HOST = 'localhost' DB_NAME = 'filmcraze_db' DB_USER = 'your_postgres_username' DB_PASSWORD = 'your_postgres_password'
-
-
Running the Recommender
python app.py
-
Feedback and Support
If you have any questions, feedback, or need support, please feel free to contact us or open an issue on this repository.