日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【机器学习】为什么在信用风险建模中首选树模型?

發(fā)布時間:2025/3/12 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【机器学习】为什么在信用风险建模中首选树模型? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

信用風(fēng)險建模是一個可以使用機器學(xué)習(xí)來提供解決方案的領(lǐng)域,因為它能夠從大量異構(gòu)數(shù)據(jù)中找到答案。在信用風(fēng)險建模中,還需要推斷特征,因為它們在數(shù)據(jù)驅(qū)動的決策中非常重要。

在這篇文章中,我們來研究什么是信用風(fēng)險以及如何使用各種機器學(xué)習(xí)算法來表示它。以下是要討論的要點:

  • 什么是信用風(fēng)險

  • 什么是信用風(fēng)險建模

  • 如何在信用風(fēng)險建模中使用機器學(xué)習(xí)?

  • 實施信用風(fēng)險建模

  • 基于樹的模型的出色表現(xiàn)

什么是信用風(fēng)險

信用風(fēng)險是指借款人無法定期還款并違約的可能性。它是指貸款人無法按時支付利息或款項的可能性。貸方現(xiàn)金流中斷,回收成本上升。在最壞的情況下,貸方可能不得不注銷部分或全部貸款,從而導(dǎo)致?lián)p失。

預(yù)測一個人拖欠債務(wù)的可能性是非常困難和復(fù)雜的。同時,適當(dāng)評估信用風(fēng)險有助于限制因違約和逾期付款而造成損失。如果信用風(fēng)險較高,貸方或投資者要么收取較高的利率,要么拒絕提供貸款。

什么是信用風(fēng)險建模

一個人的信用風(fēng)險受多種因素的影響,確定借款人的信用風(fēng)險是一項艱巨的任務(wù)。信用風(fēng)險建模是應(yīng)用數(shù)據(jù)模型來確定兩個關(guān)鍵因素的實踐。首先是借款人拖欠貸款的可能性。第二個因素是如果發(fā)生違約,貸方的財務(wù)影響。

金融機構(gòu)使用信用風(fēng)險模型來評估潛在借款人的信用風(fēng)險。根據(jù)信用風(fēng)險模型驗證,他們決定是否批準(zhǔn)貸款以及貸款利率。

如何在風(fēng)險建模中使用機器學(xué)習(xí)?

機器學(xué)習(xí)可以使用更高級的建模方法,如決策樹和神經(jīng)網(wǎng)絡(luò),這將非線性引入模型,允許發(fā)現(xiàn)變量之間更復(fù)雜的聯(lián)系。我們選擇使用 XGBoost 模型,該模型使用使用置換顯著性技術(shù)挑選的特征。

另一方面,機器模型通常非常復(fù)雜,以至于難以理解。我們選擇結(jié)合 XGBoost 和邏輯回歸,是因為可解釋性在信用風(fēng)險評估中至關(guān)重要。

實施信用風(fēng)險建模

Python 中的信用風(fēng)險建模可以幫助銀行和其他金融機構(gòu)降低風(fēng)險并防止社會發(fā)生金融災(zāi)難。

本文的目標(biāo)是創(chuàng)建一個模型來預(yù)測一個人拖欠貸款的可能性。讓我們從加載數(shù)據(jù)集開始。

import?pandas?as?pd import?matplotlib.pyplot?as?plt import?seaborn?as?sns import?numpy?as?npfrom?sklearn.model_selection?import?train_test_split,?cross_val_score,?KFold from?sklearn.preprocessing?import?LabelEncoderfrom?sklearn.ensemble?import?RandomForestClassifier from?sklearn.naive_bayes?import?GaussianNB from?sklearn.neighbors?import?KNeighborsClassifier from?sklearn.linear_model?import?LogisticRegression from?sklearn.tree?import?DecisionTreeClassifier#?load?the?data loan_data?=?pd.read_csv('/content/drive/MyDrive/data/loan_data_2007_2014.csv')

你會發(fā)現(xiàn)許多列都是標(biāo)識符,不包含任何用于創(chuàng)建機器學(xué)習(xí)模型的有意義的信息。

我們想要建立一個模型來預(yù)測借款人拖欠貸款的可能性,與一個人拖欠后發(fā)生的事件的數(shù)據(jù)我們是不需要的。我們做如下處理:

#dropping?irrelevant?columns columns_to_?=?['id',?'member_id',?'sub_grade',?'emp_title',?'url',?'desc',?'title',?'zip_code',?'next_pymnt_d','recoveries',?'collection_recovery_fee',?'total_rec_prncp',?'total_rec_late_fee',?'desc',?'mths_since_last_record','mths_since_last_major_derog',?'annual_inc_joint',?'dti_joint',?'verification_status_joint',?'open_acc_6m',?'open_il_6m','open_il_12m',?'open_il_24m',?'mths_since_rcnt_il',?'total_bal_il',?'il_util',?'open_rv_12m',?'open_rv_24m','max_bal_bc',?'all_util',?'inq_fi',?'total_cu_tl',?'inq_last_12m','policy_code',] loan_data.drop(columns=columns_to_,?inplace=True,?axis=1) #?drop?na?values loan_data.dropna(inplace=True)

在準(zhǔn)備數(shù)據(jù)時,我們需要解決多重共線性問題,因為高度相關(guān)的變量提供了相同的信息,這些多余的信息將使模型無法估計因變量和自變量之間的關(guān)系。

為了檢查多重共線性,我們使用 Pandas 相關(guān)性矩陣來處理一下:

可以看出,幾個變量高度相關(guān),應(yīng)該消除。"loan amnt"、"funded amnt"、"funded amnt inv"、"installment"、"total pymnt inv"和"out prncp inv"是多重共線變量。

你可能會注意到幾個變量的數(shù)據(jù)類型不正確,需要進(jìn)行預(yù)處理才能將它們轉(zhuǎn)換為正確的格式。我們將定義一些功能來幫助此過程的自動化。用于將變量轉(zhuǎn)換為數(shù)據(jù)的函數(shù)編碼如下。

def?Term_Numeric(data,?col):data[col]?=?pd.to_numeric(data[col].str.replace('?months',?''))Term_Numeric(loan_data,?'term')def?Emp_Length_Convert(data,?col):data[col]?=?data[col].str.replace('\+?years',?'')data[col]?=?data[col].str.replace('<?1?year',?str(0))data[col]?=?data[col].str.replace('?years',?'')data[col]?=?data[col].str.replace('?year',?'')data[col]?=?pd.to_numeric(data[col])data[col].fillna(value?=?0,?inplace?=?True)def?Date_Columns(data,?col):today_date?=?pd.to_datetime('2020-08-01')data[col]?=?pd.to_datetime(data[col],?format?=?"%b-%y")data['mths_since_'?+?col]?=?round(pd.to_numeric((today_date?-?data[col])?/?np.timedelta64(1,?'M')))data['mths_since_'?+?col]?=?data['mths_since_'?+?col].apply(lambda?x:?data['mths_since_'?+?col].max()?if?x?<?0?else?x)data.drop(columns?=?[col],?inplace?=?True)

在我們的數(shù)據(jù)集中,目標(biāo)列是貸款狀態(tài),它具有不同的唯一值。這些值必須轉(zhuǎn)換為二進(jìn)制。對于不良借款人,得分為 0,對于好的借款人,得分為 1。

在我們的情況下,不良借款人為列出的類別之一:沖銷、違約、逾期(31-120 天),剩余人被視為良好借款人。

#?creating?a?new?column?based?on?the?loan_status? loan_data['good_bad']?=?np.where(loan_data.loc[:,?'loan_status'].isin(['Charged?Off',?'Default',?'Late?(31-120?days)', 'Does?not?meet?the?credit?policy.?Status:Charged?Off']),?0,?1) #?Drop?the?original?'loan_status'?column loan_data.drop(columns?=?['loan_status'],?inplace?=?True)

現(xiàn)在我們需要將分類變量轉(zhuǎn)換為數(shù)字以進(jìn)行進(jìn)一步建模,為此我們將使用 sklearn 庫中的 Label Encoder 類,如下所示:

categorical_column?=?loan_data.select_dtypes('object').columns for?i?in?range(len(categorical_column)):le?=?LabelEncoder()loan_data[categorical_column[i]]?=?le.fit_transform(loan_data[categorical_column[i]])

現(xiàn)在,我們已準(zhǔn)備好訓(xùn)練各種算法,并將驗證哪種算法效果最好。我們計劃評估線性模型、KNN模型、兩種樹模型、一種樸素貝葉斯模型等。

我們將使用 KFold 對 10 折交叉驗證,并將檢查他們的平均準(zhǔn)確度。

#?compare?models models?=?[] models.append(('LR',?LogisticRegression())) models.append(('KNN',?KNeighborsClassifier())) models.append((DT,?DecisionTreeClassifier())) models.append(('NB',?GaussianNB())) models.append(('RF',?RandomForestClassifier()))results?=?[] names?=?[]for?name,?model?in?models:kfold?=?KFold(n_splits=10)cv_results?=?cross_val_score(model,?x_train,?y_train,?cv=kfold)results.append(cv_results)names.append(name)msg?=?"%s:?%f?(%f)"?%?(name,?cv_results.mean(),?cv_results.std())print(msg)

基于樹模型的出色表現(xiàn)

正如我們從上面的平均準(zhǔn)確率中可以看到的,樹模型比其他模型的表現(xiàn)要好得多。與線性模型不同,它們很好地映射了非線性相互作用。

信用風(fēng)險建模的特征重要性起著非常重要的作用,下面你可以看到?jīng)Q策樹算法給出的特征重要性圖。

總結(jié)

通過這篇文章,我們詳細(xì)討論了信用風(fēng)險建模、如何使用機器學(xué)習(xí)模型而不是傳統(tǒng)方法來模擬信用風(fēng)險。同時我們測試了各種模型并總結(jié)了基于樹的算法如何表現(xiàn)出色。

往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機器學(xué)習(xí)在線手冊深度學(xué)習(xí)筆記專輯《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載黃海廣老師《機器學(xué)習(xí)課程》視頻課黃海廣老師《機器學(xué)習(xí)課程》711頁完整版課件

本站qq群955171419,加入微信群請掃碼:

總結(jié)

以上是生活随笔為你收集整理的【机器学习】为什么在信用风险建模中首选树模型?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。