Makine Öğrenimi ile Kredili Puanlama

Kredi notu, insanların kredibilitesini ölçen sayısal bir ifadedir. Bankacılık genellikle kredi uygulamaları ile ilgili karar vermeyi destekleyen bir yöntem olarak kullanır. Bu blogda, müşterilerin kredibilitesini ölçmek için kredi puanlamanın en popüler ve en basit şekli olan Python (Pandas, Sklearn) ile standart bir puan kartının nasıl geliştirileceğinden bahsedeceğim.

Proje Motivasyonu

Günümüzde, bireyin ne kadar güvenilir olduğuna dair bir gösterge olarak kabul edildiğinden, kredibilite herkes için çok önemlidir. Çeşitli durumlarda, hizmet sağlayıcıların önce müşterilerin kredi geçmişini değerlendirmeleri ve sonra da hizmeti sağlayıp sağlamayacaklarına karar vermeleri gerekir. Ancak, tüm kişisel portföyleri kontrol etmek ve manuel olarak bir kredi raporu oluşturmak zaman alıcıdır. Böylece, kredi puanı bu amaç için geliştirilir ve uygulanır, çünkü zaman kazanır ve kolayca anlaşılabilirdir.

Kredi puanı oluşturma sürecine kredi puanlama denir. Özellikle bankacılık sektöründe birçok sektörde yaygın olarak uygulanmaktadır. Bankalar genellikle kredi almaları, ne kadar kredi almaları ve kredi riskini azaltmak için hangi operasyonel stratejilerin alınabileceğini belirlemek için kullanırlar. Genellikle iki ana bölümden oluşur:

  • İstatistiksel model oluşturma
  • Bir kredi başvurusu veya mevcut bir kredi hesabına bir puan vermek için istatistiksel bir model uygulamak

Burada, puan kartı adı verilen en popüler kredi puanlama yöntemini tanıtacağım. Puan kartının kredi puanlamanın en yaygın şekli olmasının iki ana nedeni vardır. İlk olarak, müşterileri gibi ilgili bir geçmişe ve deneyime sahip olmayan insanlara yorum yapmak kolaydır. İkincisi, puan kartının gelişim süreci standart ve yaygın olarak anlaşılmıştır; bu, şirketlerin buna fazla para harcamak zorunda kalmayacağı anlamına gelir. Örnek bir puan kartı aşağıda gösterilmiştir. Daha sonra nasıl kullanılacağı hakkında konuşacağım.

Şekil-1 Örnek Skor Kartı

Veri Arama ve Özellik Mühendisliği

Şimdi bir puan kartının nasıl geliştirileceğine dair bazı detaylar vereceğim. Burada kullandığım veri seti Kaggle yarışmasından. Ayrıntılı bilgi Şekil-2'de listelenmiştir. İlk değişken, ikili kategorik bir değişken olan hedef değişkendir. Değişkenlerin geri kalanı da özelliklerdir.

Şekil-2 Veri Sözlüğü

Veri setine ilişkin bir içgörü kazandıktan sonra, bazı özellik mühendisliği yöntemlerini uygulamaya başlıyorum. İlk önce, her bir özelliğin eksik değerler içerip içermediğini kontrol ediyorum ve ardından eksik değerleri medyan ile çarpıştırıyorum.

Sonra, outlier tedavisi yapıyorum. Genellikle, aykırı değerler için kullanılan yöntemler, aykırı değerin türüne bağlıdır. Örneğin, aygıta mekanik hata veya ölçüm sırasındaki sorunlardan kaynaklanıyorsa, eksik veri olarak kabul edilebilir. Bu veri setinde, son derece büyük bir değer vardır, ancak bunların hepsi makul değerlerdir. Böylece, onlarla başa çıkmak için üst ve alt kodlama uygularım. Şekil 3'te üst kodlamayı uyguladıktan sonra özelliğin dağılımı daha normaldir.

Şekil-3 Üst Kodlama ile Aykırı Tedavi

Şekil 1'de gösterilen örnek puan kartına göre, her bir özelliğin çeşitli özelliklere (veya gruplara) göre gruplandırılması gerektiği açıktır. Özellikleri gruplandırmanın bazı nedenleri var.

  • Bir özellik ve performansın ilişkilerindeki özellikler hakkında bilgi edinin.
  • Doğrusal olmayan doğrusallık bağımlılıklarına doğrusal modeller uygular.
  • Portföy yönetimi için daha iyi stratejiler geliştirilmesinde yardımcı olabilecek risk belirleyicilerin davranışlarını daha derinden anlayın.

Bindirme, bu amaç için kullanılan uygun bir yöntemdir. Tedaviden sonra her değeri olması gereken özelliğe atayım, bu da tüm sayısal değerlerin kategorik olarak dönüştürüldüğü anlamına gelir. İşte binning sonucu için bir örnek.

Şekil-4 Gruplandırma Özelliği “Yaşlanma” (Binning)

Tüm özellikleri grupladıktan sonra, özellik mühendisliği tamamlanmıştır. Sonraki adım, her bir özellik için kanıtların ağırlığını ve her özellik (veya özellik) için bilgi değerini hesaplamaktır. Daha önce de belirtildiği gibi, tüm sayısal değerleri kategorilere dönüştürmek için binning kullandım. Ancak, bu kategorik değerlerle modele uyamayız, bu yüzden bu gruplara bazı sayısal değerler atamalıyız. Kanıt Ağırlığının (WoE) amacı, her bir kategorik değişken grubuna benzersiz bir değer vermektir. Bilgi Değeri (IV), özellik seçiminde kullanılan özelliklerin prediktif gücünü ölçer. WoE ve IV'ün formülü aşağıda verilmiştir. Burada “İyi”, müşterinin ciddi bir suçluluğa sahip olmayacağı veya hedef değişkeninin 0'a eşit olduğu anlamına gelir ve “Kötü”, müşterinin ciddi suçluluk veya hedef değişkeninin 1'e eşit olacağı anlamına gelir.

Genellikle, WoE ve IV'ü elde etmek için karakteristik analiz raporları üretilir. Burada Python'da raporları otomatik olarak oluşturmak için bir işlev tanımlarım. Örnek olarak, “Yaş” için özellik analizi raporu Şekil-5'de gösterilmektedir.

Şekil-5 “Yaş” için Karakteristik Analiz Raporu

Sonra tüm özelliklerin IV'ünü karşılaştırmak için bir çubuk grafik hazırlıyorum. Çubuk grafikte, “NumberOfOpenCreditLinesAndLoans” ve “NumberRealEstateLoansOrLines” son iki özelliğini görebilirsiniz. IV, bu yüzden burada model uyumu için diğer sekiz özelliği seçiyorum.

Şekil-6 Her Karakteristiğin Tahmini Gücü

Model Uydurma ve Puan Kartı Puanı Hesabı

Özellik seçiminden sonra özellikleri WoE ile değiştiriyorum. Şimdiye kadar, model eğitimi için uygun veri setini alıyorum. Puan kartını geliştirmek için kullanılan model, ikili sınıflandırma için popüler bir model olan lojistik regresyondur. Parametreleri ayarlamak için çapraz doğrulama ve ızgara arama uygularım. Ardından, modelin tahmin doğruluğunu kontrol etmek için ayarlanan test verilerini kullanıyorum. Kaggle hedef değişken için değerler vermeyeceğinden, doğruluğu elde etmek için sonucumu çevrimiçi olarak göndermem gerekiyor. Veri işlemenin etkisini göstermek için modeli ham verilerle ve işlenmiş verilerle eğitiyorum. Kaggle tarafından verilen sonuca göre, verilerin işlenmesinden sonra doğruluk 0.693956'dan 0.800946'ya yükseltilmiştir.

Son adım, her bir özellik için puan kartı puanını hesaplamak ve son puan kartını oluşturmaktır. Her bir özniteliğin puanı şu formülle hesaplanabilir:

Puan = (β × WoE + α / n) × Faktör + Ofset / n

Nerede:
β - Verilen niteliği içeren özellikler için lojistik regresyon katsayısı
α - lojistik regresyon kesişimi
WoE - Verilen özellik için Kanıt Ağırlığı değeri
n - modele dahil edilen özelliklerin sayısı
Faktör, Ofset - ölçeklendirme parametresi

İlk dört parametre zaten hesaplanmış, önceki bölüm. Faktör ve ofsetin hesaplanmasında aşağıdaki formüller kullanılır.

  • Faktör = pdo / Ln (2)
  • Ofset = Puan - (Faktör × ln (Oran))

Burada, pdo, olasılıkları iki katına çıkarmak anlamına gelir ve yukarıdaki oran analiz raporlarında kötü oran zaten hesaplanmıştır. Bir puan kartı, 600 puanda 50: 1 taban oranına ve 20 puanda (her 20 puanda iki katına çıkma oranına) sahipse, faktör ve ofset:
Faktör = 20 / Ln (2) = 28,85
Ofset = 600 - 28.85 × Ln (50) = 487,14

Tüm hesaplamaları bitirirken, puan kartını geliştirme işlemi yapılır. Puan kartının bir kısmı Şekil 7'de gösterilmektedir.

Figür-7 Karakteristik Parçası ile Nihai Puan Kartı

Yeni müşterileriniz olduğunda, verilere göre her bir özellik için doğru özelliği bulmanız ve puanı almanız yeterlidir. Nihai kredi puanı, her bir özelliğin puanının toplamı olarak hesaplanabilir. Örneğin, bankanın kredi kartı için 45 yaşında, borç oranı 0.5 ve aylık 5000 dolar gelirle yeni bir başvuru sahibi var. Kredi notu 53 + 55 + 57 = 165 olmalıdır.

Daha kesin bir puan kartı geliştirmek için, insanlar genellikle daha fazla durumu göz önünde bulundurmalıdır. Örneğin, popülasyonda “Kötü” olarak tanımlanan bazı kişiler var, ancak başvuruları onaylanmışken, bazı “İyi” kişiler reddedilmiş olacak. Bu nedenle, reddetme çıkarımının geliştirme sürecine dahil olduğu düşünülmektedir. Bu kısmı yapmıyorum, çünkü verilerimde bulunmayan reddedilen davaların veri kümesini gerektiriyor. Bu bölüm hakkında daha fazla bilgi edinmek istiyorsanız, Naeem Siddiqi tarafından yazılmış Kredili Kredi Puanlama Kartları - Akıllı Kredili Puanlama Geliştirme ve Uygulama bölümünü okumanızı önemle tavsiye ederim.

İşimle ilgileniyorsanız veya bu konuda bazı problemleriniz varsa, lütfen benimle iletişime geçmekten çekinmeyin. Bu arada, öğrencilerin WeCloudData’nın veri bilimi kurslarından öğrendikleri hakkında daha fazla bilgi edinmek istiyorsanız, bu web sitesine göz atın:

www.weclouddata.com