An interactive web app that visualizes jet engine health and remaining useful life (RUL) predictions from a gradient boosting model trained on the NASA C-MAPSS dataset along with XGBoost models across all 4 subsets. Exploratory data analysis and feature engineering notebooks are present here, the dataset and models or public on Hugging Face.
For the modeling work behind it, see the technical report: JetBoost | PCA For Latent Feature Modeling. Here I explore the use of PCA for latent feature modeling and engineering for use in gradient boosting models using this dataset.
.
├── api/src/api/ # FastAPI inference service (inference.py)
├── web/src/ # Web app
│ └── scripts/ # prepare_fleet_data.py
├── ml/models/ # Trained models (e.g. FD004GBM)
└── data/
├── cleaned_data/ # Cleaned test sets used to build the fleet
└── FE_data/ # Feature-engineered test sets used by the API
The datasets and machine learning models are public on hugging face.
Original dataset, its documentation and the feature engineered training data available at: https://huggingface.co/datasets/ZephyrNTempest/C-MAPSS
Machine learning models available at: https://huggingface.co/ZephyrNTempest/JetBoost-GBM
The API and the web app run separately, so use two terminals.
cd api/src/api
fastapi dev inference.pycd web/src
npm install # first time only
npm run devThe project is set up for one subset at a time (FD001 to FD004). Switching subsets takes two changes, and both must point to the same subset.
In api/src/api/inference.py, change model_uri to the model for the subset and data_uri to its test data. For example, for FD004:
model_uri = "../../../ml/models/FD004GBM"
data_uri = "../../../data/FE_data/test_FD004"From web/src/scripts, run prepare_fleet_data.py with the cleaned test set for the new subset, the output path, and the number of engines to render:
cd web/src/scripts
python3 prepare_fleet_data.py ../../../data/cleaned_data/test_FD004 ../../public/data/fleet.json 100 --contiguous| Argument | Description |
|---|---|
../../../data/cleaned_data/test_FD004 |
Cleaned test set for the subset |
../../public/data/fleet.json |
Output file the web app reads |
100 |
Number of engines to render |
--contiguous |
Use engines 1 to N in order instead of a random sample of N |
Restart the API and the web app after switching.
Note: These steps are only relevant for running JetBoost locally. The API used for the public web application is hosted as a Hugging Face space at: https://huggingface.co/spaces/ZephyrNTempest/jetboost-api
NASA C-MAPSS is a synthetic run-to-failure turbofan dataset generated with MATLAB and Simulink. The dataset files are not included in this repository.
| Model | JetBoost GBM (S-score) | RMSE |
|---|---|---|
| FD001 | 193 | 11.45 |
| FD002 | 3894 | 22.94 |
| FD003 | 202 | 11.19 |
| FD004 | 3145 | 23.17 |
Released under the MIT License.

