https://github.com/adilshamim8/study_abroad
A comprehensive dataset and interactive notebook detailing tuition, living, visa, and insurance costs for global study programs—across countries, cities, and universities—to help prospective students compare and plan their abroad expenses.
https://github.com/adilshamim8/study_abroad
data-analysis data-visualization eda education educational study study-guide study-project studying
Last synced: about 14 hours ago
JSON representation
A comprehensive dataset and interactive notebook detailing tuition, living, visa, and insurance costs for global study programs—across countries, cities, and universities—to help prospective students compare and plan their abroad expenses.
- Host: GitHub
- URL: https://github.com/adilshamim8/study_abroad
- Owner: AdilShamim8
- License: other
- Created: 2025-05-06T14:31:31.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-11-14T04:50:26.000Z (8 months ago)
- Last Synced: 2025-11-14T05:34:26.286Z (8 months ago)
- Topics: data-analysis, data-visualization, eda, education, educational, study, study-guide, study-project, studying
- Language: Jupyter Notebook
- Homepage: https://study-abroad.streamlit.app/
- Size: 4.19 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: License
Awesome Lists containing this project
README
# Study Abroad Cost Explorer 🎓
A comprehensive analysis toolkit and interactive web application for exploring the **Cost of International Education** across major study-abroad destinations worldwide.
> streamlit website: https://study-abroad.streamlit.app/
>
## Features
### Interactive Streamlit Web Application
- **Data Exploration Dashboard**: Interactive filters, visualizations, and statistics
- **ML-Powered Cost Prediction**: AI model predicting annual study costs
- **User-Friendly Interface**: Intuitive controls with preset buttons and helpful tooltips
- **Real-time Analysis**: Dynamic charts and cost breakdowns
### Jupyter Notebooks
- **Cost Analysis Notebook**: Comprehensive EDA with visualizations
- **Model Training Notebook**: Machine learning pipeline for cost prediction
### Dataset
- **International_Education_Costs.csv**: Curated data on tuition, living expenses, visa fees, and more
- **50+ countries** with detailed cost breakdowns
---
## Quick Start
### Option 1: Run the Streamlit Web App (Recommended)
1. **Clone the repository**
```powershell
git clone https://github.com/AdilShamim8/Study_Abroad.git
cd Study_Abroad-main
```
2. **Create virtual environment**
```powershell
python -m venv venv
.\venv\Scripts\Activate.ps1
```
3. **Install dependencies**
```powershell
pip install -r requirements.txt
```
4. **Run the app**
```powershell
streamlit run app.py
```
5. **Open in browser**
- Local: http://localhost:8501
- Network: http://192.168.0.101:8501
### Option 2: Run Jupyter Notebooks
```powershell
pip install jupyter pandas matplotlib seaborn
jupyter notebook
```
Then open:
- `Cost-of-studying-abroad.ipynb` for exploratory analysis
- `train_model.ipynb` for model training details
---
## Dataset Overview
The dataset (`International_Education_Costs.csv`) includes:
| Column | Description |
|--------|-------------|
| **Country** | Destination country |
| **City** | Specific city location |
| **University** | Institution name |
| **Program** | Academic program/major |
| **Level** | Degree level (Bachelor's, Master's, PhD) |
| **Duration_Years** | Program length in years |
| **Tuition_USD** | Annual tuition fee in USD |
| **Living_Cost_Index** | Cost of living score (100 = baseline) |
| **Rent_USD** | Average monthly rent in USD |
| **Visa_Fee_USD** | Student visa application fee |
| **Insurance_USD** | Annual health insurance cost |
| **Exchange_Rate** | Local currency to USD rate |
**Target Variable**: `Estimated_Annual_Cost` = Tuition + Living Costs + Rent×12 + Visa + Insurance
---
## Web App Features
### 1. Overview Section
- Quick statistics: countries, universities, programs
- Data quality metrics
- Missing values analysis
### 2. Data Exploration
- **Interactive Filters**: Country, Level, Program, Duration
- **Visualizations**:
- Tuition and living cost distributions
- Country-wise cost comparisons (Top 25)
- Living cost vs. rent scatter plot with trendline
- Global choropleth map of average costs
- **Statistics**: Descriptive stats for filtered data
### 3. Model Demonstration
- **User-Friendly Inputs**:
- Living Cost presets (Low/Medium/High)
- Currency quick-select buttons (USD, EUR, GBP, CAD, AUD, INR)
- Visual indicators for cost levels
- Helpful tooltips and examples
- **Predictions**:
- AI-powered annual cost estimation
- Cost breakdown with monthly estimates
- Model performance metrics (MAE, R²)
- **Real-time Validation**: Input error checking
### 4. About Section
- Dataset documentation
- Model architecture details
- Feature explanations
---
## Machine Learning Model
### Model Details
- **Algorithm**: Random Forest Regressor (best performer)
- **Preprocessing**:
- One-Hot Encoding for categorical features
- Standard Scaling for numerical features
- **Features Used**: Country, Level, Program, Duration_Years, Living_Cost_Index, Exchange_Rate
- **Performance**: High R² score with low MAE
### Model Pipeline
The trained model (`model.pkl`) includes:
1. Preprocessing transformers (ColumnTransformer)
2. Trained Random Forest Regressor
3. Full end-to-end prediction pipeline
---
## Technology Stack
### Web Application
- **Streamlit**: Interactive web framework
- **Plotly**: Interactive visualizations
- **Pandas & NumPy**: Data manipulation
- **scikit-learn**: Machine learning
### Analysis & Training
- **Jupyter**: Interactive notebooks
- **Matplotlib & Seaborn**: Static visualizations
- **scipy & statsmodels**: Statistical analysis
---
## Project Structure
```
Study_Abroad-main/
├── app.py # Main Streamlit application
├── International_Education_Costs.csv # Dataset
├── model.pkl # Trained ML model
├── requirements.txt # Python dependencies
├── train_model.ipynb # Model training notebook
├── Cost-of-studying-abroad.ipynb # EDA notebook
├── utils/
│ └── data_model.py # Helper functions
├── tests/
│ └── test_app.py # Unit tests
├── venv/ # Virtual environment
└── README.md # Documentation
```
---
## Testing
Run tests to verify functionality:
```powershell
.\venv\Scripts\Activate.ps1
pip install pytest
pytest -q
```
Tests cover:
- Data loading and cleaning
- Model loading and prediction
- Metrics computation
---
## Usage Examples
### Example 1: USA Master's Program
- **Country**: USA
- **Level**: Master
- **Program**: Computer Science
- **Duration**: 2 years
- **Living Cost**: 100 (Moderate)
- **Exchange Rate**: 1.0 (USD)
### Example 2: UK Graduate Program
- **Country**: United Kingdom
- **Level**: Master
- **Program**: Business Administration
- **Duration**: 1 year
- **Living Cost**: 140 (Expensive - London)
- **Exchange Rate**: 0.79 (GBP)
### Example 3: Germany Undergraduate
- **Country**: Germany
- **Level**: Bachelor
- **Program**: Engineering
- **Duration**: 3 years
- **Living Cost**: 75 (Affordable - Berlin)
- **Exchange Rate**: 0.92 (EUR)
---
## Troubleshooting
### scikit-learn Version Mismatch
If you see version warnings:
```powershell
pip install --upgrade scikit-learn==1.6.1
```
### Port Already in Use
If port 8501 is busy:
```powershell
streamlit run app.py --server.port 8502
```
### Module Import Errors
Ensure virtual environment is activated:
```powershell
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
```
---
## Key Insights from Analysis
### Cost Patterns
- **Tuition vs. Living Costs**: Inverse relationship in some regions
- **Regional Variations**: Europe offers lower tuition, USA has higher costs
- **Program Impact**: STEM programs generally cost more than humanities
### Budget Planning
- **Low Budget**: Germany, France, Norway (€800-1,200/month)
- **Medium Budget**: Canada, Australia, Netherlands (€1,200-1,800/month)
- **High Budget**: USA, UK, Switzerland (€1,800-3,000/month)
### Hidden Costs
- Visa fees range from $50-500
- Health insurance: $500-3,000/year
- Exchange rate fluctuations can impact budgets by 10-20%
---
## Contributing
Contributions are welcome! Here's how:
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/AmazingFeature`)
3. Commit changes (`git commit -m 'Add AmazingFeature'`)
4. Push to branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request
### Ideas for Contribution
- Add more countries/universities
- Improve ML model accuracy
- Add scholarship data integration
- Implement cost comparison tools
- Add currency conversion API
---
## Acknowledgments
- UNESCO & OECD for education statistics
- Numbeo & Mercer for cost of living data
- scikit-learn & Streamlit communities
- All contributors and users
---
## License
Licensed under the [License](License) file in the repository.
---
**⭐ Star this repo if you find it helpful!**
Last Updated: November 2025
---
Developed by [Adil Shamim](https://adilshamim.me/)
[](https://www.kaggle.com/adilshamim8)
[](https://www.linkedin.com/in/adilshamim8)
[](https://x.com/adil_shamim8)