PCOS XGBoost Sınıflandırıcı
Polikistik Over Sendromu (PCOS) teşhisini desteklemek amacıyla eğitilmiş XGBoost tabanlı sınıflandırma modelidir.
Model Detayları
| Parametre | Değer |
|---|---|
| Algoritma | XGBoost |
| n_estimators | 300 |
| learning_rate | 0.05 |
| max_depth | 5 |
| scale_pos_weight | 2 (sınıf dengesi) |
| Ön işleme | MinMaxScaler |
Dosyalar
| Dosya | Açıklama |
|---|---|
xgboost_model.pkl |
Eğitilmiş XGBoost modeli (joblib) |
scaler.pkl |
Fit edilmiş MinMaxScaler (joblib) |
feature_names.json |
Giriş özelliklerinin sıralı listesi |
Eğitim Verisi
- Kaynak: PCOS_data.csv (Kaggle PCOS Dataset)
- Ön işlem adımları:
- LH, FSH, FSH/LH sütunlarında IQR yöntemiyle aykırı değer temizliği
- Yüksek korelasyonlu sütunlar çıkarıldı (
Hip,BMI,Avg. F size (R)) II beta-HCGsütunundaki bozuk değerler (1.99.gibi) train median'ıyla dolduruldu- Train/test ayrımı: %80 / %20, stratify=True
Performans
Notebook çıktılarından elde edilen değerleri buraya ekle:
Accuracy : ~0.XX
Precision: ~0.XX (PCOS sınıfı)
Recall : ~0.XX (PCOS sınıfı)
F1-Score : ~0.XX (PCOS sınıfı)
Kullanım
import joblib, json, numpy as np
from huggingface_hub import hf_hub_download
REPO = "KubraParmak/pcos-xgboost-model"
model = joblib.load(hf_hub_download(REPO, "xgboost_model.pkl"))
scaler = joblib.load(hf_hub_download(REPO, "scaler.pkl"))
with open(hf_hub_download(REPO, "feature_names.json")) as f:
features = json.load(f)
# Örnek tahmin (özellik sırası feature_names.json ile aynı olmalı)
X = np.array([[25, 65, 162, 75, 16, 13, 1, 5, ...]])
X_scaled = scaler.transform(X)
pred = model.predict(X_scaled) # 0: Sağlıklı, 1: PCOS
prob = model.predict_proba(X_scaled) # [P(sağlıklı), P(PCOS)]
Sınırlamalar
- Bu model klinik karar desteği amaçlıdır; tıbbi tanı yerine geçmez.
- Model yalnızca eğitildiği veri dağılımı için geçerlidir.
- LIME açıklanabilirlik çıktıları model repo'suna dahil değildir.
Yazar
Kübra Parmak GitHub: KbrPrmk | HuggingFace: KubraParmak