Skip to content

Cardiovaskular Detection using machine learning pipeline TensorFlow Extended (TFX). Deployment through Railway App and monitoring the model with Prometheus.

Notifications You must be signed in to change notification settings

faizahmp/Cardiovaskular-Detection-MLOps

Repository files navigation

Submission 2: Cardiovaskular Detection

Nama: Faizah Mappanyompa

Username dicoding: faizahmp

(vatrushka67/iStock via Getty Images)

Deskripsi
Dataset Cardiovaskular Disease
Masalah

Cardiovascular diseases (CVDs) atau penyakit cardiovaskular merupakan penyakit sekelompok gangguan pada jantung dan pembuluh darah dan termasuk penyakit jantung koroner, penyakit serebrovaskular, penyakit jantung rematik, dan kondisi lainnya. Penyakit ini penyebab utama kematian dunia dengan estimasi 17.9 juta nyawa per tahun. Resiko utama dari penyakit hati adalah struk, pola makan yang tidak sehat, kadar kolestrol, aktivitas fisik, penggunaan alkohol, dan faktor lainnya.

Solusi machine learning

Identifikasi dan penanganan yang tepat risiko penyakit CVDs dapat mencegah kematian dini. Cardiovaskular Disease menyediakan dua informasi utama terkait pasien yang memiliki gejala terkait penyakit cardiovaskular. Dengan bantuan sistem machine learning, deteksi penyakit ini merupakan tindakan awal untuk mengetahui apakah seseorang terkena penyakit cardiovaskular.

Metode pengolahan Metode pengolahan data pada penelitian ini diawali dengan menghapus dua kolom yang tidak memiliki makna untuk diproses lebih lanjut. Adapun tahapan selanjutnya sebagai berikut:
1. Data Ingestion
Proses mengambil data dan mentransformasi data ke dalam format tertentu agar dapat diolah oleh mesin. Membagi data latih dan uji dengan skala 80:20.
2.Data Validation
Proses memeriksa summary statistic data, membuat skema data, dan identifikasi anomali.
3. Data Pre-Processing
Membuat sebuah module transform untuk melakukan pre-processing pada data seperti transformed_name, preprocessing_fn, dan convert_num_to_one_hot encoder.
4. Data Training dan Tuner
Membuat sebuah module trainer untuk menyimpan seluruh fungsi dan arsitektur model yang akan digunakan termasuk memberikan input, prediksi dan juga hyperparameter yang digunakan. Membuat sebuah module Tuner untuk melakukan hyperparameter tuning.
5. Data Analysis & Validation
Di tahap ini digunakan komponen Resolver sebagai pembanding dalam evaluasi model baru dengan model sebelumnya. Evaluator akan menjalankan proses evaluasi model. Terakhir, Pusher digunakan untuk mendorong (push) model ke lingkungan produksi jika sudah dilatih memenuhi kriteria (statistik, data skema) terentu.
6. Model Deployment
Model dideploy menggunakan TensorFlow Serving dan menyimpan seluruh dependensi menggunakan Docker.
7. Model Monitoring
Menggunakan prometheus untuk monitoring model yang digunakan.
Arsitektur model

Arsitektur model ini diawali dengan concatenate input layers yang menerima categorical dan numerical features. Input features ini kemudian diubah menjadi single tensor. Selanjutnya, fully connected layer dengan activation function ReLu. for loop digunakan unuk membuat layer dense tambahan yang telah dispesifikkan pada fungsi get_tuner_model. Terakhir, yaitu layer output dengan unit 1 dan activation function sigmoid yang umum digunakan untuk binary classification.

Metrik evaluasi Metrics evaluation yang digunakan untuk mengukur performa model sebagai berikut:
1. AUC: menghitung nilai Area Under Curver terhadap performa model.
2. Precision: mengukur akurasi dari prediksi positif.
3. Recall: mengukur kemampuan menemukan sample yang positif.
4. ExampleCount : untuk menghitung berapa examples pada data evaluation.
5. False Positives, True Positives, False Negatives, True Negatives : menghitung masing-masing hasil prediksi.
6. Binary Accuracy: menghitung akurasi dari klasifikasi biner menggunakan kondisi threshold.Deksripsi metrik yang digunakan untuk mengevaluasi performa model
Performa model

Performa model menunjukkan val_binary_accuracy sebesar 73.57% pada trial 15 dari 20. Hyperparameters yang digunakan yaitu num_layers: 2, dense_units: 80, dropout_rate: 0.1, dan learning_rate: 0.001 (optimization Adam).

Opsi deployment Cardiovaskular detection ini telah diunggah menggunakan Railway App sebagai platform deployment cloud.
Web app Railway app yang digunakan untuk mengakses model serving dapat diakses melalui tautan berikut.
Monitoring

Monitoring performa model pada penelitian ini menggunakan Prometheus, yaitu platform open-source untuk sistem monitoring dan alerting. Proses monitoring yang dapat dilihat berupa perubahan jumlah request, status, jam, dan informasi request. Pada query execution lakukan :tensorflow:serving:request_count.

About

Cardiovaskular Detection using machine learning pipeline TensorFlow Extended (TFX). Deployment through Railway App and monitoring the model with Prometheus.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published