Recommending the right courses to students helps them improve skills, explore new areas, and achieve their career goals. This project analyzes student profiles and course data to provide personalized course recommendations using machine learning techniques and a Streamlit interactive interface.
- Preprocess student and course data using TF-IDF vectorization
- Recommend top N courses based on student profile (skills + interests)
- Save and load pretrained models & matrices for fast recommendations
- Display student info alongside recommended courses
- Interactive UI with Streamlit: sliders, dropdowns, progress bars
Two datasets are used:
| Dataset | Description |
|---|---|
students.csv |
Student details: ID, name, background, skills, interests |
courses.csv |
Course details: ID, name, category, difficulty, skills required |
Tip: Sample datasets for ~1000 students and ~50 courses are provided. Replace with your own datasets for larger experiments.
- Profile Text: Combine student skills + interests into a single text field
- Vectorization: TF-IDF vectorization for student profiles and course descriptions
- Similarity Computation: Cosine similarity between student profiles and courses
- Saved Models: Vectorizers and matrices stored as
.pklfiles for reuse
- Compute cosine similarity between a student vector and all course vectors
- Sort and select top N courses for recommendation
- Display student details (name, background, skills, interests) along with recommended courses
- Python – Core programming language
- Pandas & NumPy – Data manipulation and analysis
- Scikit-learn – TF-IDF vectorization, cosine similarity, and ML utilities
- Joblib – Save/load models and matrices
- Streamlit – Interactive web interface
- Clone the repository:
git clone https://github.com/username/Learning-Recommendation-System.git
cd Learning-Recommendation-System-
Install dependencies:
pip install -r requirements.txt -
Run the Streamlit app:
streamlit run app.py
The app will open in your default browser. Select a student ID and choose the number of recommendations using the slider to see personalized courses.
LRS_Project/
├── notebook/
│ └── LRS_Notebook.ipynb # Training, preprocessing, and testing
├── models/
│ ├── vectorizer.pkl
│ └── course_matrix.pkl
├── students.csv
├── courses.csv
├── app.py # Streamlit interactive app
└── requirements.txt # Python dependencies
- Add a logo/banner to app.py for better UI
- Color-code course difficulty (Beginner: green, Intermediate: orange, Advanced: red)
- Show similarity scores as progress bars for more visual appeal
- Add download button to export recommended courses as CSV
- Ensure paths in app.py are relative so Streamlit works locally and on GitHub/Streamlit Cloud.
- Replace sample datasets with your own for larger experiments.
- Streamlit interactive features (sliders, buttons, progress bars) require running via streamlit run app.py.
- Streamlit Documentation: https://docs.streamlit.io/
- Scikit-learn TF-IDF: https://scikit-learn.org/stable/modules/feature_extraction.html#text-feature-extraction
- Joblib Documentation: https://joblib.readthedocs.io/en/latest/ """