Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Kredi Skoru Modellemesi ile Temerrüt Tahmini Projesi

Bu proje, GaziFintech'in makine öğrenmesi bootcamp'i kapsamında gerçekleştirilmiş olup, "Give Me Some Credit" Kaggle yarışması verilerini kullanarak bir müşterinin kredi temerrüt riskini tahmin etmeyi amaçlamaktadır. Proje, birincilikle tamamlanmıştır.

Projenin Amacı

Projenin temel hedefi, müşterilerin demografik ve finansal verilerini kullanarak, önümüzdeki iki yıl içinde 90 günden fazla gecikme yaşama olasılığını tahmin eden bir makine öğrenmesi modeli geliştirmektir. Bu, finans kuruluşlarının kredi verme süreçlerinde daha doğru ve veri odaklı kararlar almasına yardımcı olabilir.

Uygulanan Metodoloji ve Adımlar

Proje süresince baştan sona bir makine öğrenmesi iş akışı takip edilmiştir:

  1. Veri Analizi ve Temizleme:

    • Veri seti incelenerek eksik değerler (NaN) median ile dolduruldu.
    • age, MonthlyIncome gibi değişkenlerdeki aykırı değerler (outliers) incelenerek mantıksal sınırlar dahilinde (clip) düzeltildi.
  2. Özellik Mühendisliği (Feature Engineering):

    • Modelin doğrusal olmayan ilişkileri daha iyi yakalaması için age ve MonthlyIncome gibi sürekli değişkenler pd.cut ile kategorik gruplara ayrıldı (AgeGroup, IncomeBin).
    • NumberOfTime... gibi benzer anlama gelen gecikme günleri özellikleri, tek bir çatı altında birleştirilerek daha anlamlı bir özellik seti oluşturuldu.
    • Oluşturulan metin bazlı kategorik özellikler (AgeGroup vb.) pd.get_dummies ile One-Hot Encoding tekniği kullanılarak sayısallaştırıldı.
  3. Model Geliştirme ve Optimizasyon:

    • Veri setindeki ciddi sınıf dengesizliği, azınlık sınıfı sentetik verilerle çoğaltan SMOTE tekniği ile giderildi.
    • Başlangıç (baseline) modeli olarak Lojistik Regresyon kuruldu ve %18 gibi düşük bir Precision skoru elde edildi.
    • Daha yüksek performans için Random Forest modeline geçildi ve Precision skoru %30'ların üzerine çıkarıldı.
    • Model performansını daha da artırmak için RandomizedSearchCV ile saatler süren bir hiperparametre optimizasyonu gerçekleştirildi ve en iyi model ayarları bulundu.

Sonuçlar

Yapılan çalışmalar sonucunda optimize edilmiş Random Forest modeli, başlangıç modeline kıyasla temerrüt tahminlerindeki isabet oranını (Precision for class '1') %18'den %35'e çıkararak %94'lük bir iyileşme sağlamıştır. Modelin en önemli bulduğu özellikler arasında kredi kartı kullanım oranı (RevolvingUtilizationOfUnsecuredLines) ve borç yükü (DebtBurden) yer almaktadır.

Kullanılan Kütüphaneler

  • Python
  • Pandas & NumPy
  • Matplotlib & Seaborn
  • Scikit-learn (LogisticRegression, RandomForestClassifier, RandomizedSearchCV)
  • Imbalanced-learn (SMOTE)
  • Jupyter Notebook & Kaggle

Nasıl Çalıştırılır?

  1. Bu repoyu bilgisayarınıza yükleyin.
  2. Notebookunuzdaki ilk satırlarında bulunan kod ile gerekli kütüphaneler ve gerekli dosyalar otomatik olarak yüklenir.
  3. Tüm notebook'u tek seferde çalıştırmamanız önerilir, RandomizedSearchCV fonksiyonunun çalışması 1 saati alabiliyor.

About

This Machine Learning project developed for a summer bootcamp as a final project.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages