A comprehensive recommendation system for Steam games built using Python and Streamlit, based on data from the Game Recommendations on Steam Kaggle dataset.
This system provides game recommendations using multiple approaches:
- Collaborative Filtering: Recommends games based on user behavior patterns and similarities between users' preferences
- Content-Based Filtering: Recommends games similar to a selected game based on game features and characteristics
- Hybrid Recommender: Combines collaborative and content-based approaches for better recommendations
- Popularity-Based: Recommends top-rated and widely reviewed games
- Interactive Web Interface: Built with Streamlit for an easy-to-use experience
- Multiple Recommendation Algorithms: Collaborative filtering, content-based, hybrid, and popularity-based
- Game Explorer: Search and browse games by title, popularity, release date, or price range
- Visualization Tools: Visual representations of recommendations and dataset distributions
- Model Evaluation: Compare performance of different recommendation algorithms
steam-game-recommender/
├── app.py # Main Streamlit application
├── utils/
│ └── data_loader.py # Data loading and preprocessing
├── models/
│ ├── recommendation_models.py # Implementation of recommendation algorithms
│ └── model_evaluation.py # Evaluation of recommendation algorithms
├── dataset/ # Dataset files
│ ├── games.csv # Game information
│ ├── users.csv # User information
│ ├── recommendations.csv # User game interactions and recommendations
│ └── games_metadata.json # Additional game metadata
└── README.md # Project documentation
- Clone this repository
- Install required dependencies:
pip install -r requirements.txt- Place the dataset files in the
dataset/directory (games.csv, users.csv, recommendations.csv, games_metadata.json)
Run the Streamlit application:
streamlit run app.pyThe application will be accessible in your web browser. The first run may take some time as the system needs to train the recommendation models.
Uses K-Nearest Neighbors to find similar games based on user interactions. The system analyzes patterns in user interactions to recommend games that users with similar preferences have enjoyed.
Recommends games based on game features such as tags, platforms, price category, and other attributes. This approach finds games that are similar to a selected game based on their characteristics.
Combines collaborative and content-based approaches by weighting the recommendations from both methods to provide more robust recommendations that leverage the strengths of both approaches.
Simple recommendation approach that suggests the most popular games based on user reviews and positive rating ratios.
The system includes a comprehensive evaluation module that allows comparing different recommendation approaches using:
- Hit Rate: How many recommended games match a user's positively rated games
- Top-N Analysis: How performance varies with different numbers of recommendations
- User-specific evaluation: Analyzing recommendation quality for individual users
The dataset includes:
- Game information (title, rating, price, platforms, etc.)
- User information
- User-game interactions (recommendations, hours played)
- Additional game metadata
- Implement matrix factorization algorithms (SVD, ALS)
- Add personalized recommendations based on user profiles
- Improve model training time with efficient algorithms
- Add more visualization options
- Implement real-time recommendation updates
This project is for educational purposes. Dataset provided by Anton Kozyriev on Kaggle.