Skip to content

halilibrahim04/fetal-health-classification

Repository files navigation

Fetal Health Classification: Advanced Machine Learning & Deep Learning Approach

A data-driven decision support system detecting fetal health conditions (Normal, Suspect, Pathological) through advanced classification algorithms, cross-validation techniques, and a custom Graphical User Interface (GUI).

Abstract

In this study, a machine learning and deep learning-based decision support system was developed to detect and classify fetal health status. The research utilized the Fetal Health dataset from the UCI Machine Learning Repository, which consists of 2,126 records. Class imbalance within the data was addressed using the Synthetic Minority Over-sampling Technique (SMOTE). The performance of various algorithms, including XGBoost, Random Forest, and Artificial Neural Networks (ANN), was evaluated and compared using both Hold-Out and 10-Fold Cross-Validation methods. Experimental results demonstrated that the XGBoost and Random Forest models achieved the highest performance, each reaching an F1-Score exceeding 94%. To support practical clinical application, the most successful models were integrated into a user-friendly graphical user interface (GUI).


🇹🇷 Proje Özeti (Turkish)

Bu proje, Kardiyotokografi (CTG) verilerini kullanarak fetal (cenin) sağlık durumunu 3 farklı sınıfta tahmin eden kapsamlı bir yapay zeka çalışmasıdır.

Sınıf dengesizliği (class imbalance) problemini çözmek için bilimsel standartlara uygun bir yaklaşım benimsenmiş ve veri sızıntısını (data leakage) önlemek adına SMOTE işlemi K-Fold çapraz doğrulama süreçlerine (Pipeline) entegre edilmiştir.

Öne Çıkan Özellikler

  • Bilimsel Veri Hazırlığı: Tekrarlayan verilerin (duplicates) temizlenmesi ve sızıntısız SMOTE entegrasyonu.
  • Kapsamlı Model Kıyaslaması: 5 Klasik ML Modeli ve 2 Topluluk Modeli (Random Forest, Gradient Boosting).
  • Hiperparametre Optimizasyonu: GridSearchCV (XGBoost) ve Keras Tuner / Hyperband (Yapay Sinir Ağları).
  • Özellik Seçimi (Feature Selection): Yüksek boyutlu veriyi en kritik 5 özelliğe düşürerek klinik pratikte uygulanabilirliği artırma. İncelendi ama uygulanmadı.
  • İstatistiksel Doğrulama: Modeller arasındaki performans farkının şans eseri olmadığını kanıtlayan McNemar Testi.
  • Kullanıcı Arayüzü (GUI): Tkinter ile geliştirilmiş, olasılıksal tahmin (predict_proba) sunan masaüstü uygulaması.

Deneysel Sonuçlar

Yapılan testler sonucunda en iyi performans, hiperparametreleri optimize edilmiş XGBoost ve Random Forest modellerinden elde edilmiştir.

Model Doğruluk (Accuracy) F1-Score Özgüllük (Specificity)
Optimize XGBoost ~%94 ~%93 Yüksek
Random Forest ~%93 ~%92 Yüksek
Keras Tuner YSA ~%91 ~%91 Yüksek
(Tablodaki değerler test setinden elde edilen ortalama skorlardır.)

Kullanılan Teknolojiler

  • Diller & Kütüphaneler: Python, Pandas, NumPy, Scikit-learn, XGBoost, Imbalanced-learn
  • Derin Öğrenme: TensorFlow, Keras, Keras Tuner
  • Görselleştirme: Matplotlib, Seaborn
  • Arayüz (GUI): Tkinter

Kurulum ve Kullanım

Projeyi kendi bilgisayarınızda çalıştırmak için:

  1. Repoyu bilgisayarınıza klonlayın:
git clone https://github.com/halilibrahim04/fetal-health-classification.git
cd fetal-health-classification
  1. Repoyu bilgisayarınıza klonlayın:
python -m venv venv
# Windows için:
venv\Scripts\activate
# Mac/Linux için:
source venv/bin/activate
  1. Gerekli kütüphaneleri yükleyin:
pip install -r requirements.txt
  1. Uygulamayı çalıştırın:
python fetal_health_app.py

Lisans

Bu proje MIT Lisansı altında lisanslanmıştır.

About

A machine learning and deep learning decision support system (XGBoost, RF, ANN) for classifying fetal health status using CTG data.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors