Quality of Experience (QoE) measured as MOS (1-5) directly predicts customer satisfaction and churn risk. Proactively predicting QoE from network KPIs enables real-time service quality management.
Regression using LightGBM.
- Target:
mos_score - Primary Metric: RMSE
- Challenges:
- Non-linear MOS curve (diminishing returns at high quality)
- App-specific sensitivity (gaming vs browsing)
- Device capability effects on perceived quality
Session-level data (10K sessions) combining:
- Network KPIs -- SINR, throughput, latency, packet loss
- Device class -- high-end, mid-range, low-end capability tiers
- App type -- gaming, video streaming, browsing, VoIP
Domain physics: MOS computed using an ITU-T inspired formula with app-specific adjustments. Gaming sessions are highly sensitive to latency, video to throughput and packet loss, browsing to page load time proxies.
- LightGBM regression with early stopping on validation RMSE
- Feature groups:
- Network quality index (composite SINR + throughput + latency score)
- Service degradation indicators (packet loss rate, jitter)
- Bandwidth utilization (throughput vs expected capacity)
- App sensitivity score (app-specific quality weight)
- Hyperparameter tuning with cross-validation
- RMSE: 0.45, R²: 0.58 on held-out test set (MOS scale 1-5)
- Top predictors:
service_degradation,throughput_mbps, andlatency_msdominate SHAP importance - Gaming sessions show highest RMSE (0.47) due to latency sensitivity; browsing and VoIP are most predictable
- Unobserved factors (user expectations, content quality, environmental context) limit R² -- realistic for QoE prediction where subjective perception adds irreducible noise
# Clone the repository
git clone https://github.com/adityonugrohoid/telecom-ml-portfolio.git
cd telecom-ml-portfolio/04-qoe-prediction
# Install dependencies
uv sync
# Generate synthetic data
uv run python -m qoe_prediction.data_generator
# Run the notebook
uv run jupyter lab notebooks/04-qoe-prediction/
├── README.md
├── pyproject.toml
├── notebooks/
│ └── 04_qoe_prediction.ipynb
├── src/
│ └── qoe_prediction/
│ ├── __init__.py
│ ├── data_generator.py
│ ├── features.py
│ ├── model.py
│ └── evaluate.py
├── data/
│ └── .gitkeep
├── models/
│ └── .gitkeep
└── tests/
└── .gitkeep
| # | Project | Description |
|---|---|---|
| 1 | Churn Prediction | Binary classification to predict customer churn |
| 2 | Root Cause Analysis | Multi-class classification for network alarm RCA |
| 3 | Anomaly Detection | Unsupervised detection of network anomalies |
| 4 | QoE Prediction (this repo) | Regression to predict quality of experience |
| 5 | Capacity Forecasting | Time-series forecasting for network capacity planning |
| 6 | Network Optimization | Optimization of network resource allocation |
This project is licensed under the MIT License. See LICENSE for details.
Adityo Nugroho