An open API service indexing awesome lists of open source software.

https://github.com/mukeshthenraj/video-engagement-prediction

ML project to predict video engagement using Random Forest & XGBoost
https://github.com/mukeshthenraj/video-engagement-prediction

gridsearchcv matplotlib numpy pandas random-forest-classifier roc-auc-curve scikit-learn video-analytics xgboost

Last synced: 5 months ago
JSON representation

ML project to predict video engagement using Random Forest & XGBoost

Awesome Lists containing this project

README

          

# ๐ŸŽฏ Video Engagement Prediction

This project uses machine learning to predict how engaging an educational video will be based on transcript, audio, and metadata features.

## ๐Ÿ“Š Problem Statement

Engagement is critical for learning. We use features like `easiness`, `document_entropy`, and `speaker_speed` to predict if viewers will watch at least 30% of the video.

## ๐Ÿง  Models Used

- Random Forest Classifier
- XGBoost Classifier
- GridSearchCV for hyperparameter tuning
- ROC AUC for evaluation

## ๐Ÿ“ Project Structure

```
video-engagement-prediction/
โ”œโ”€โ”€ data/
โ”‚ โ”œโ”€โ”€ train.csv
โ”‚ โ””โ”€โ”€ test.csv
โ”œโ”€โ”€ scripts/
โ”‚ โ””โ”€โ”€ Video-engagement-prediction.py
โ”œโ”€โ”€ notebooks/
โ”œโ”€โ”€ visuals/
โ”‚ โ”œโ”€โ”€ roc_curve.png
โ”‚ โ””โ”€โ”€ feature_importance.png
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ requirements.txt
```

## ๐Ÿ“Œ Features

- `title_word_count`
- `document_entropy`
- `freshness`
- `easiness`
- `fraction_stopword_presence`
- `speaker_speed`
- `silent_period_rate`

## ๐Ÿงช Evaluation Metric

- ROC AUC Score (โ‰ฅ 0.85 = high performance)
- Feature importance comparison (RandomForest vs. XGBoost)

## ๐Ÿ–ผ๏ธ Sample Visuals

### ROC Curve

![ROC Curve](visuals/roc_curve.png)

### Feature Importance Comparison

![Feature Importance Comparison](visuals/feature_importance.png)

## ๐Ÿ”ง Run Locally

```bash
pip install -r requirements.txt
python scripts/assignment4.py
```

## ๐Ÿ‘จโ€๐Ÿ’ป Author

Mukesh Thenraj

## ๐Ÿ“„ License

This project is licensed under the [MIT License](LICENSE).