This repository hosts a high-performance machine learning pipeline for predicting the Remaining Useful Life (RUL) of turbofan engines using the NASA C-MAPSS dataset.
The core contribution is an HPC-aware feature engineering framework that prioritizes both predictive precision and computational throughput. By moving beyond standard rolling statistics and implementing parallelized extraction, this pipeline achieves state-of-the-art efficiency for sensor-stream data.
- Accuracy: 23.1% Reduction in RMSE compared to standard statistical baselines.
- Efficiency: 88% Reduction in Wall-Clock Time for feature extraction via multi-core parallelization.
- Architecture: Optimized for high-throughput I/O using Apache Parquet and memory-efficient
float32precision.
We introduce two novel window-based features designed to capture non-linear engine degradation patterns:
-
$f_{slope}$ (Normalized Trend Slope): A robust estimator of the local degradation rate, normalized to account for varying engine lifespans. -
$LF-ER$ (Low-Frequency Spectral Energy Ratio): Utilizes Fast Fourier Transform (FFT) to quantify the energy shift in the low-frequency spectrum, identifying early-stage mechanical fatigue.
- Per-Run Parallelism: Leverages
joblibto process independent engine trajectories across all available CPU cores. - Columnar Caching: Replaced traditional CSV-based I/O with Parquet storage, significantly reducing latency for high-dimensional feature matrices.
| Pipeline | Test RMSE | Test MAE | Preprocessing (Serial) | Preprocessing (Parallel) |
|---|---|---|---|---|
| Baseline (Rolling Stats) | 29.01 | 21.45 | 1.0x | N/A |
| Proposed (HPC-Aware) | 22.35 | 15.92 | 1.2x | 8.3x Speedup |
The methodology, rigorous validation using GroupKFold, and experimental findings are detailed in the published paper:
"HPC-Aware Feature Engineering for Predictive Maintenance Using NASA C-MAPSS FD001"
Harsh Rastogi et al. (2025)
Published at IEEE MEDCOM 2025
🔗 DOI: https://doi.org/10.1109/MEDCOM67532.2025.11405422
- Python 3.8+
- Conda or Virtualenv (recommended)
The NASA C-MAPSS Dataset is publicly available. You can download it from either of the following sources:
Place the raw .txt files into the data/ directory as follows:
nasa-cmapss-hpc-feature-eng/
├── data/
│ ├── train_FD001.txt
│ ├── test_FD001.txt
│ └── RUL_FD001.txt
├── notebooks/
│ ├── 01_Baseline_model.ipynb
│ └── 02_Proposed_Ablation_study.ipynb
├── requirements.txt
└── README.md
**Clone the repository:**
```bash
git clone [https://github.com/HarshRastogi-git/nasa-cmapss-hpc-feature-eng.git](https://github.com/HarshRastogi-git/nasa-cmapss-hpc-feature-eng.git)
cd nasa-cmapss-hpc-feature-eng
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Note: To reproduce the results in this repository, you must manually update the data loading paths within the Jupyter Notebooks to match your local environment.
- Open the Notebooks: Navigate to the
notebooks/01_Baseline_model.ipynbandnotebooks/02_Proposed_Ablation_study.ipynbfiles. - Locate Data Loading Cells: Find the initial cells where the NASA C-MAPSS
.txtfiles are loaded (typically usingpd.read_csv). - Update Absolute Paths: Replace the existing hardcoded local paths with the absolute path to where you stored the dataset on your machine.
- Example: Change
C:/Users/Harsh/.../train_FD001.txtto/your/local/path/data/train_FD001.txt.
- Example: Change
- Parquet I/O Optimization: In
02_Proposed_Ablation_study.ipynb, ensure theto_parquetandread_parquetpaths are also updated to a valid directory on your system. This is required to enable the HPC-aware speedup discussed in the paper.