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).
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).
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.
- 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ı.
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.) |
- 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
Projeyi kendi bilgisayarınızda çalıştırmak için:
- Repoyu bilgisayarınıza klonlayın:
git clone https://github.com/halilibrahim04/fetal-health-classification.git
cd fetal-health-classification- Repoyu bilgisayarınıza klonlayın:
python -m venv venv
# Windows için:
venv\Scripts\activate
# Mac/Linux için:
source venv/bin/activate- Gerekli kütüphaneleri yükleyin:
pip install -r requirements.txt- Uygulamayı çalıştırın:
python fetal_health_app.pyBu proje MIT Lisansı altında lisanslanmıştır.