Proyek ini merupakan implementasi Machine Learning Operations (MLOps) untuk membangun sistem prediksi kerusakan mesin berbasis data sensor. Sistem ini dirancang untuk memprediksi kapan mesin akan mengalami kegagalan (failure cycle) serta persentase probabilitas kerusakan, kemudian menampilkannya melalui sebuah website interaktif.
Proyek dikembangkan sebagai bagian dari Tugas Besar Mata Kuliah Machine Learning Operations, dengan fokus pada penerapan pipeline end-to-end mulai dari pengolahan data, training model, experiment tracking, hingga deployment.
- Membangun model machine learning untuk mendeteksi potensi kerusakan mesin berdasarkan data sensor
- Mengimplementasikan pipeline MLOps yang terstruktur dan reproducible
- Melakukan tracking eksperimen dan pemilihan model terbaik menggunakan MLflow
- Menyediakan antarmuka website untuk inference model menggunakan Streamlit
Dataset yang digunakan berasal dari Kaggle:
π NASA Turbofan Jet Engine Data Set (C-MAPSS)
https://www.kaggle.com/datasets/behrad3d/nasa-cmaps
Dataset ini merupakan dataset simulasi degradasi mesin jet turbofan (C-MAPSS) yang dikembangkan oleh NASA dan banyak digunakan untuk kasus predictive maintenance dan Remaining Useful Life (RUL) prediction.
Karakteristik dataset:
- Data sensor mesin jet turbofan (run-to-failure)
- Data berbentuk tabular (dalam bentuk .txt yang sudah di ekstrak)
- Memuat beberapa sensor dan kondisi operasi mesin
- Digunakan untuk memprediksi kegagalan mesin berdasarkan cycle
β οΈ Pada tahap ini, sistem masih menggunakan dataset awal dan belum menerapkan mekanisme penambahan dataset baru maupun retraining incremental.
-
Data Ingestion
Dataset sensor dibaca dan diproses untuk menghasilkan label kerusakan mesin. -
Exploratory Data Analysis (EDA)
Analisis pola degradasi sensor, korelasi fitur, dan distribusi label untuk memahami karakteristik data. -
Preprocessing Data
Pemilihan fitur dan normalisasi data agar siap digunakan oleh model. -
Model Training & Evaluation
Model machine learning dilatih dan dievaluasi menggunakan data training dan testing (80:20). -
Experiment Tracking (MLflow)
Seluruh eksperimen dicatat untuk membandingkan performa model dan memilih model terbaik. -
Deployment (Streamlit)
Model terbaik dideploy ke aplikasi web untuk melakukan prediksi dan simulasi data sensor secara interaktif.
EDA menunjukkan adanya pola degradasi mesin yang jelas sebelum memasuki kondisi CRITICAL. Beberapa hasil utama yang diperoleh:
- Pola penurunan dan peningkatan nilai sensor tertentu seiring bertambahnya cycle
- Hubungan signifikan antara beberapa sensor dengan Remaining Useful Life (RUL)
- Distribusi label tidak seimbang, dengan kondisi NORMAL lebih dominan dibandingkan CRITICAL
Berdasarkan hasil eksplorasi data, sensor 11 dan sensor 12 memperlihatkan tren degradasi yang paling stabil dan memiliki keterkaitan yang jelas dengan kondisi kesehatan mesin, sehingga dipilih sebagai representasi visual dalam analisis degradasi. Engine 1 (Pressure), Engine 2 (Temp), dan Engine 3 (Speed).
Heatmap ini menampilkan hubungan antar sensor dan Remaining Useful Life (RUL), digunakan untuk mengidentifikasi sensor yang paling relevan terhadap kondisi kesehatan mesin.
Distribusi label memperlihatkan ketidakseimbangan kelas antara kondisi NORMAL dan CRITICAL, yang menjadi dasar pemilihan metrik evaluasi seperti F1-score.
Model yang digunakan dalam project ini adalah Random Forest Classifier, yang dipilih karena kemampuannya menangani data tabular dengan hubungan non-linear serta ketahanannya terhadap noise pada data sensor. Random Forest bekerja dengan membangun banyak decision tree dan menggabungkan hasil prediksinya untuk menghasilkan keputusan yang lebih stabil dan akurat.
Optimasi hyperparameter dilakukan menggunakan Optuna untuk mendapatkan konfigurasi Random Forest terbaik. Hyperparameter yang dioptimasi meliputi:
n_estimatorsβ jumlah decision tree dalam ensemblemax_depthβ kedalaman maksimum pohonmin_samples_splitβ jumlah minimum sampel untuk melakukan splitmin_samples_leafβ jumlah minimum sampel pada node daunmax_featuresβ jumlah fitur yang dipertimbangkan pada setiap split Konfigurasi terbaik dipilih berdasarkan performa pada data validasi dan disimpan sebagai model finalbest_model.pkluntuk tahap inference.
valuasi model dilakukan menggunakan metrik:
- Accuracy
- Recall
- F1-score
F1-score digunakan sebagai metrik utama karena distribusi label tidak seimbang dan kesalahan prediksi pada kondisi CRITICAL memiliki risiko tinggi.
tests/test_app.pyTesting dilakukan untuk memastikan pipeline dan konfigurasi berjalan dengan baik. Basic testing disediakan pada folder tests/ dan dapat dijalankan menggunakan pytest.
- Simulasi data sensor mesin secara real-time
- Prediksi status mesin (NORMAL / CRITICAL)
- Estimasi risiko kerusakan dalam bentuk probabilitas
- Visualisasi telemetry sensor (tekanan, temperatur, dan RPM)
- Riwayat hasil prediksi selama simulasi berjalan
- Python
Bahasa pemrograman utama yang digunakan untuk pengembangan pipeline machine learning dan MLOps. - Scikit-learn / Machine Learning Library
Digunakan untuk membangun, melatih, dan mengevaluasi model machine learning berbasis data sensor. - MLflow
Digunakan sebagai alat experiment tracking dan model management untuk mencatat parameter, metric, serta menyimpan model terbaik. - Streamlit
Digunakan untuk membangun dan mendeploy aplikasi web interaktif sebagai antarmuka inferensi model. - Pandas & NumPy
Digunakan untuk manipulasi, analisis, dan pengolahan data sensor dalam bentuk tabular. - joblib
Digunakan untuk menyimpan dan memuat model machine learning atau objek Python secara efisien. - PyYAML
Digunakan untuk membaca dan mengelola file konfigurasi (YAML), seperti pengaturan parameter model dan pipeline. - Matplotlib
Digunakan untuk visualisasi data dan hasil evaluasi model dalam bentuk grafik statis. - Seaborn
Digunakan untuk visualisasi data statistik yang lebih informatif dan eksploratif berbasis Matplotlib. - Plotly
Digunakan untuk visualisasi data interaktif yang ditampilkan pada aplikasi web.
- Input data sensor mesin
- Prediksi:
- Estimasi cycle mesin akan berhenti atau rusak
- Persentase probabilitas kerusakan
- Tampilan hasil prediksi secara real-time melalui website.
MLflow digunakan untuk mencatat parameter, metrik evaluasi, serta artifact model sehingga proses training dapat direproduksi dan dibandingkan dengan mudah.
pip install -r requirements.txtpython src/data_ingest.pypython src/eda.pypython src/preprocessing.pypython src/train.pymlflow uistreamlit run app.py- Mekanisme penambahan dataset baru dan retraining otomatis belum diterapkan
- Pipeline dirancang agar dapat dikembangkan menjadi continuous training pada tahap selanjutnya
- Akmal Faiz Abdillah (122450114)
- Elok Fiola (122450051)
- Rut Junita Sari Siburian (122450103)
- Syalaisha Andini Putriansyah (122450111)
Proyek ini dibuat untuk keperluan akademik dan pembelajaran.
.png)
