Kod ayrıntıları: inanılmaz doğruluk! Kredi R ile bir kredi riski puanlama modeli oluşturun

Makine öğrenimi birçok farklı sektörü etkiliyor ve finans sektörü bundan en çok etkilenen sektörlerden biri.

Dolandırıcılık tespiti, müşteri segmentasyonu, çalışan veya müşteriyi elde tutma gibi işlevler makine öğreniminin ana hedefleridir. Bu makalenin odak noktası kredi riski puanlamadır.

Kredi puanı, kredi verenler ve finans kurumları tarafından kişisel kredi itibarını elde etmek için yapılan istatistiksel bir analizdir. Tüm değerlendirme kriterlerinde, borç veren nihayetinde krediyi kredi puanı aracılığıyla uzatmaya veya reddetmeye karar verir. Investopedia

Bu alandaki profesyonellerin işle ilgilenmesini nasıl kolaylaştırabiliriz? Credit R yazılım paketi doğdu! Makine öğrenimi uygulamalarından önce temel kredi riski puanlama modellerini kolayca oluşturmanıza olanak tanır. Ek olarak, puanlama sürecini doğrulamak için kullanılabilecek bazı işlevler içerir.

Yazılım paketi, değişken analizi, değişken seçimi, model geliştirme, model kalibrasyonu, değerlendirme ölçeği geliştirme ve model doğrulama gibi yöntemlerin uygulanmasını teşvik etmeyi amaçlamaktadır. Tanımlanmış fonksiyonlarla, bu yöntemler tüm modelleme verilerine veya belirli değişkenlere hızlı bir şekilde uygulanabilir.

Bu yazımızda öncelikle Credit R paketinin detaylarını anlayacağız. Ardından, R yazılım paketi hakkında daha fazla bilgi edinmek için Credit R yazılım paketini kullanmanın eksiksiz bir örneğini sıralayacağız.

Bu paket, kredi riski uzmanları içindir. Bu paketi kullanmak için temel kredi riski puanlama yöntemleri bilgisi gereklidir.

içindekiler

1. Neden Kredi R kullanılıyor?

2. Kredi R kullanmaya başlayın

3. Kredi R'deki işlevlerin listesi

4. Kredi R paketi uygulaması

1. Neden Kredi R kullanılıyor?

Kredi alanında makine öğrenimi modellerine olan talep artmaya devam ettikçe, insanların kredi riski modellerine ilişkin anlayışları da hızla değişiyor. Ancak birçok yönetici, makine öğrenimi teknolojisine geçiş konusunda hala çok temkinli davranıyor. Bu nedenle, olası bir spekülasyon, bu geçiş aşamasında, makine öğrenimi algoritmalarının geleneksel yöntemlerle paralel olacağı yönündedir.

Makine öğrenmesi algoritması belirlendikten sonra, bu alandaki geleneksel yöntemlere meydan okurken, geleneksel yöntemlere göre daha etkili sonuçlar üretmekte ve böylece düzenleyicilerin güvenini kazanabilmektedir. Ek olarak, makine öğrenimi algoritmalarını açıklamanın yeni yöntemleri, daha şeffaf bir öğrenme süreci oluşturmaya yardımcı olabilir.

Credit R yazılım paketi, geleneksel yöntemlerin otomatik olarak kullanılmasının yanı sıra geleneksel ve makine öğrenimi modellerinin doğrulanma olasılığını sağlar.

2. Kredi R kullanmaya başlayın

Kredi R paketini kurmak için önce devtools paketini kurmanız gerekir. Devtools paketi aşağıdaki kod çalıştırılarak kurulabilir:

install.packages ("devtools", bağımlılıklar = DOĞRU)

CreditR paketini devtools paketindeki "install_github" işlevini kullanarak yükleyebilirsiniz:

kütüphane (devtools)

devtools :: install_github ("ayhandis / krediR)

kütüphane (krediR)

3. Kredi R'deki işlevlerin listesi

Bu pakette bulunan işlevler aşağıda listelenmiştir.

ls ("paket: krediR")

Çıktı:

4. Kredi R paketi uygulaması

Zaten çok fazla teorik bilgi söyledik, şimdi R paketi hakkında daha fazla şey öğrenelim!

Aşağıda, kredi riski puanlamasında bazı genel adımları gerçekleştirmek için yazılım paketinde sağlanan işlevlerin nasıl kullanılacağını inceleyen bir Kredi R uygulama örneği verilmiştir.

Bu örneği tamamlarken biraz pratik yaptık.

Genel uygulama, modelleme ve model doğrulama olmak üzere iki ana başlık altında oluşturulmuş olup, ilgili kodun detaylı bilgileri yorum satırında görülebilir.

Bu makale yalnızca önemli çıktıları listeler.

Bu R betiği, Credit R paketinin anlaşılmasını kolaylaştırmak için tasarlanmıştır. Yüksek hassasiyetli modellerin elde edilmesi bu araştırma kapsamında değildir.

# Kitaplığı eklemek kütüphane (krediR) #Model veri ve veri yapısı veriler ("almancredit") str (alman kredisi) # Örnek bir veri kümesi hazırlama örnek veri < -Alman kredisi # "Kredibilite" (varsayılan işaret) değişkenini sayısal türe dönüştürme sample_data $ kredibilite < -ifelse (sample_data $ kredibilite == "kötü", 1,0) # Eksik oranları hesaplama eksik_ratio (örnek_veriler)

Çıktı:

# Verileri tren ve test setlerine bölme en son < -train_test_split (örnek_veri, 123,0.70) tren < -traintest $ tren Ölçek < -traintest $ testi

WOE dönüşümü, değişkenler ve hedef değişkenler arasındaki ilişki aracılığıyla değişkenleri kategorik değişkenlere dönüştürme yöntemidir. Aşağıdaki "woerules" nesnesi WOE kurallarını içerir.

Woe.binning.deploy işlevinin yardımıyla, WOE kuralları veri kümesi üzerinde çalıştırılabilir. İhtiyacımız olan değişkenler "woe.get.clear.data" fonksiyonu yardımıyla "train_woe" nesnesine atanır.

# Değişkenlere WOE dönüşümü uygulama Woerules < -woe.binning (df = tren, target.var = "kredibilite", pred.var = tren, event.class = 1) train_woe < -woe.binning.deploy (tren, woerules, add.woe.or.dum.var = 'woe') # Dönüştürülmüş değişkenler ve varsayılan bayrakla bir veri kümesi oluşturma train_woe < -woe.get.clear.data (train_woe, default_flag = "kredibilite", prefix = "üzüntü") # Tren verilerinde kullanılan WOE kurallarını test verilerine uygulama test_woe < -woe.binning.deploy (test, woerules, add.woe.or.dum.var = 'woe') test_woe < -woe.get.clear.data (test_woe, default_flag = "kredibilite", prefix = "woe")

Bilgi değerleri ve tek değişkenli Gini katsayıları, değişkenleri seçmek için yöntemler olarak kullanılabilir. Genel olarak konuşursak, IV'ün eşiği 0.30 ve tek değişkenli Gini'nin eşiği 0.10'dur.

# Tüm veri kümesi için IV ve Gini hesaplamalarını gerçekleştirmek IV.calc.data (train_woe, "güvenilirlik")

Çıktı:

Gini.univariate.data (train_woe, "güvenilirlik")

Çıktı:

# Gini eleme yoluyla yeni bir veri kümesi oluşturmak. IV eleme de mümkündür eliminated_data < -Gini_elimination (train_woe, "kredibilite", 0.10) str (elenen_veriler)

Çıktı:

Gerçek hayatta korelasyon matrisi ile yönetilemeyen çok fazla değişken vardır. Bu nedenle, benzer özelliklere sahip değişkenleri tanımlamak için kümelenebilirler. Burada değişken sayısı az olduğu için, bu özel kümeleme örneği anlamsızdır, ancak bu yöntem genellikle çok sayıda değişken içeren veri kümelerinde çok kullanışlıdır.

# Kümelemenin gerçekleştirilmesinde yararlı olan işlevlerin bir gösterimi clustering_data < -variable.clustering (elimine edilen_veriler, "kredibilite", 2) clustering_data

Çıktı:

# Veri kümesinde maksimum gini değerine sahip değişkenlerin verilerini döndürür seçili_veriler < -variable.clustering.gini (eliminated_data, "kredibilite", 2)

Bazı durumlarda, kümelerin ortalama korelasyonu önemlidir çünkü küme sayısı yanlış ayarlanmış olabilir. Bu nedenle, küme yüksek bir ortalama korelasyona sahipse, ayrıntılı olarak kontrol edilmelidir. Korelasyon değeri (küme 1'de yalnızca bir değişken vardır) NaN'dir.

korelation.cluster (eliminated_data, clustering_data, değişkenler = "değişken", kümeler = "Grup")

Çıktı:

Model, veri setinde yer alan değişkenlerden oluşur. Model özeti değişkenleri incelediğinde, bu değişkenler anlamlı görünmektedir. Daha sonra "woe.glm.feature.importance" fonksiyonu yardımıyla değişkenin ağırlığını hesaplayın. Aslında ağırlık, tek bir birimlik değişimin olasılık üzerindeki etkisine göre hesaplanır.

# Verilerin lojistik regresyon modelini oluşturma model = glm (formül = güvenilirlik ~., aile = iki terimli (link = "logit"), veri = elimine edilen_veriler) özet (model)

Çıktı:

# Değişken ağırlıkları hesaplama woe.glm.feature.importance (eliminated_data, model, "kredibilite")

Çıktı:

# Tren ve test verileri için PD değerlerini oluşturma ms_train_data < -cbind (eliminated_data, model $ donatılmış.values) ms_test_data < -cbind (test_woe, tahmin (model, tür = "yanıt", newdata = test_woe)) colnames (ms_train_data) < -c ("woe.duration.in.month.binned", "woe.age.in.years.binned", "woe.installment.rate.in.percentage.of.disposable.income.binned", "güvenilirlik" , "PD") colnames (ms_test_data) < -c ("woe.duration.in.month.binned", "woe.age.in.years.binned", "woe.installment.rate.in.percentage.of.disposable.income.binned", "güvenilirlik" , "PD")

Gerçek hayatta, ilgili kurumlar sürekli PD değerleri yerine derecelendirme ölçekleri kullanır. Bazı düzenleme sorunları nedeniyle veya değişen pazar / portföy koşullarına uyum sağlamak için, model farklı merkezi eğilimlere göre kalibre edilecektir.

Regresyon ve Bayes düzeltme yöntemleri yazılım paketine dahildir. Kurumsal sisteme gömülerek ve "kalibrasyon nesnesi $ calibration_formula" kodunu kullanarak, kalibrasyonu gerçekleştirebilen sayısal bir işlev çıktı olarak elde edilebilir.

# Regresyon kalibrasyon yönteminin bir örnek uygulaması. Model, test_woe verilerine göre kalibre edilir regression_calibration < -regression.calibration (model, test_woe, "kredibilite") regression_calibration $ calibration_data regression_calibration $ calibration_model regression_calibration $ calibration_formula

Çıktı:

Bayes düzeltme yöntemi derecelendirme ölçeğinde kullanılır. "Master.scale" fonksiyonu ile kolaylıkla bir derecelendirme ölçeği oluşturabiliriz. Ancak gerçek hayatta bir derecelendirme ölçeği ancak birden fazla denemeden sonra oluşturulabilir.

Özeti çıktıya ekleyin. Ayrıntılı bilgileri görmek için R komut dosyasını çalıştırın. Ayrıca bu örneğin amacı sadece bu çalışma kapsamında bir fonksiyonu tanıtmaktır, böylece PD değeri tek başına artmayacaktır.

# Bir ana ölçek oluşturma ana_ölçek < -master.scale (ms_train_data, "güvenilirlik", "PD") ana_ölçek

Çıktı:

Bayes düzeltmesini kullanmak için, veri setinde bir puan değişkeni oluşturduk ve ardından derecelendirme ölçeğinin merkezi eğilimini% 5'e ayarladık.

# Ana ölçek ve modelleme verilerinin, bayes tipi kalibrasyon yöntemini kullanarak varsayılan% 5 oranına kalibre edilmesi ms_train_data $ Puan = günlük (ms_train_data $ PD / (1-ms_train_data $ PD)) ms_test_data $ Puan = günlük (ms_test_data $ PD / (1-ms_test_data $ PD)) bayesian_method < -bayesian.calibration (data = master_scale, average_score = "Score", total_observation = "Total.Observation", PD = "PD", central_tendency = 0.05, calibration_data = ms_train_data, calibration_data_score = "Puan") # Kalibrasyon sonrasında kalibrasyon işlemi ile ilgili bilgi ve veriler aşağıdaki şekilde elde edilebilir bayesian_method $ Calibration.model bayesian_method $ Calibration.formula

Çıktı:

Pratik uygulamalarda, risk yönetimine aşina olmayan çalışanların olasılık kavramını anlaması zordur. Bu nedenle, standart bir puan oluşturulması gerekmektedir. Standart puan, "scalled.score" işlevi kullanılarak oluşturulabilir.

# Ölçekli puan aşağıdaki işlev kullanılarak oluşturulabilir scaled.score (bayesian_method $ calibration_data, "calibrated_pd", 3000, 15)

Modelleme aşamasından sonra, modelin doğruluğu ve kararlılığı gibi farklı beklentileri doğrulamak için model doğrulama yapılır. Gerçek hayatta da nitel bir doğrulama süreci uygulanır.

Not: Model kalibrasyonu yalnızca gösterim amaçlıdır. Model doğrulama testi aşağıdaki orijinal standartlara uygun olarak yapılmıştır.

Lojistik regresyon ile oluşturulan modelde, çoklu bağlantı problemini göz önünde bulundurmalıyız. Farklı eşikler kullanılmasına rağmen, 5'ten büyük vif değerleri bu sorunu gösterir.

# Değişkenlerin Vif değerlerini hesaplama. vif.calc (model)

Çıktı:

Genel olarak, Gini katsayısının kabul edilebilir alt sınırı 0.40'tır. Ancak bu, model tipine göre değişebilir.

# Model için Gini'yi hesaplama Gini (model $ fitting.values, ms_train_data $ kredibilite)

Çıktı:

0,3577422 # 5 Katlı çapraz doğrulamayı gerçekleştirme k.fold.cross.validation.glm (ms_train_data, "kredibilite", 5,1)

Çıktı:

# KS testi, iyi ve kötü gözlemler için tahminlerin dağılımları üzerinde gerçekleştirilir. Kolmogorov.Smirnov (ms_train_data, "kredibilite", "PD") Kolmogorov.Smirnov (ms_test_data, "kredibilite", "PD")

Puan kartlarının revize edilmesi genellikle uzun zaman alır, çünkü revizyon süreci büyük işletme maliyetlerine neden olur. Bu nedenle modelin kararlılığı modifikasyon ihtiyacını azaltır. Ek olarak, ilgili kurumların istikrarlı modellere ihtiyacı vardır çünkü bu modeller değer düşüklüğü, sermaye, risk ağırlıklı varlıklar gibi birçok hesaplamada girdi olarak kullanılır.

Sistem Kararlılık Endeksi (Sistem Kararlılık Endeksi), modellerin ve değişkenlerin kararlılığını ölçmek için kullanılan bir testtir. Ssi değerinin 0.25'ten büyük olması değişkenin kararlılığının bozulduğunu gösterir.

# Değişken kararlılıklar ölçülür SSI.calc.data (train_woe, test_woe, "kredibilite")

Çıktı:

Ana ölçeğin temel amacı riskleri ayırt etmek olduğundan, HHI testi ana ölçeğin konsantrasyonunu ölçmek için kullanılmaktadır. 0.30'u aşan bir HHI değeri, yüksek bir konsantrasyonu gösterir. Bunun nedeni modelleme aşamasında olması veya ana ölçerin yaratılma biçiminin yanlış olması olabilir.

# HHI testi, ana ölçeğin konsantrasyonunu ölçmek için gerçekleştirilir Herfindahl.Hirschman.Index (ana_ölçek, "Toplam Gözlemler")

Çıktı:

0,1463665

"Anchor.point" işlevi aracılığıyla, varsayılan oranın beklenen ortalama PD düzeyiyle uyumlu olup olmadığını test ettik.

# Tespit noktası testini gerçekleştirme Anchor.point (ana_ölçek, "PD", "Toplam Gözlemler", 0,30)

Çıktı:

Ki-kare testi ayrıca bir kalibrasyon testi olarak da kullanılabilir. Bu testi belirli bir güven düzeyinde gerçekleştirmek için "chi square.test" işlevi kullanılabilir.

# Ki-kare testi ana ölçekte uygulanır chisquare.test (master_scale, "PD", "Bad.Count", "Toplam.Obazlar", 0.90)

Çıktı:

Binom testi, kalibrasyon testi olarak da kullanılabilir. Tek kuyruklu binom testleri genellikle IRB modellerinde kullanılırken, iki kuyruklu binom testleri IFRS 9 modellerinde kullanılır. Ancak IRB'ye ek olarak, iki kuyruklu iki terimli test genel kullanım için daha uygundur.

# Binom testi ana ölçekte uygulanır master_scale $ DR < -master_scale $ Bad.Count / master_scale $ Toplam. Binomial.test (ana_ölçek, "Toplam Gözlemler", "PD", "DR", 0.90, "bir")

Çıktı:

Sürekliliği sağlamak için modelleme ve model doğrulamanın yönetilmesi gerekir. R ortamı uygun şekilde yönetildiğinde, kuruluşlar bu yönetilebilir modelleme ve doğrulama ortamını kolayca sağlayabilir.

İlgili kuruluşlar, daha verimli iş süreçleri tasarlamak için açık kaynaklı ortamları (büyük veri teknolojisine sahip R veya Python gibi) kullanıyor. Bu açıdan, Credit R, modelleme ve doğrulama yöntemlerinin uygulanmasına organizasyonel kolaylık getirir.

son sözler

Credit R yazılım paketi, kullanıcılara geleneksel kredi riski puanlamasını gerçekleştirmek için birçok yöntem ve modelin etkinliğini test etmek için bazı yöntemler sağlar.Bu yöntemler, ML algoritmalarına da uygulanabilir. Ayrıca yazılım paketi, geleneksel yöntemlerin uygulanmasında otomasyon sağladığı için, geleneksel süreçlerin işletme maliyetleri azaltılabilmektedir.

Ek olarak, bu modeller makine öğrenimi modelleriyle karşılaştırılarak makine öğrenimi modellerinin düzenleyici gereksinimlere de uyduğunu ve bu gereksinimleri karşılamanın makine öğrenimi modellerini uygulamak için bir ön koşul olduğunu kanıtlayabilir.

Ele.me.com'un birleşme sonrası mücadele etkinliği Hisse fiyatı düşen Meituan gerçekten tutabilir mi?
önceki
İpuçları | Bitiremiyorsanız, karpuzu buzdolabına koymayın! Bu yöntemle iki gün fena değil
Sonraki
10 yıl sonra Android 1.6 ile HTC G1'i yeniden deneyimlemek: utanç özellikli telefona indirgenmiş
Sahte haberleri gizlemek ister misiniz? Test etmek için bu üçlü ilişkiyi kullanın
Toshiba'nın ilk QLC flash belleğinin kullanım ömrü TLC ile karşılaştırılabilir!
Mahathir, Alibaba'nın küreselleşme konseptine övgüde bulundu, Malezyalı netizenler Taobao Alipay'i kullanmak için bağırdı
Çin'de ilk! OnePlus, Android 9.0'ın kararlı sürümünü yayınlayan ilk kişi. Yükseltme yaptınız mı?
Beklenmedik bir şekilde, Sony kendi mobil işlemcisini yapmak zorunda!
Fast Technology 2018 Yıllık Ödülleri: Cep Telefonları ve İşlemciler
Didi lüks otomobil incelemesi: Minimum 108 yuan tüketen araba buna değer mi?
PARL kaynak kodu adım adım yolu-labirent hazine avı problemini çözmek için strateji gradyan algoritmasını kullanın
Bilika, 22 aylık 2G ulusal trafik + yönlü serbest akış gibi büyük bir yükseltme başlattı
Sürücünün deri arka koltuğu yolcular tarafından çiğnendikten sonra, Didi sadece 20 yuan? !
Bilgisayarlar neden insanlar kadar okuyamaz?
To Top