最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【視頻】從決策樹到隨機森林:R語言信用卡違約分析信貸數(shù)據(jù)實例|數(shù)據(jù)分享

2022-06-02 16:27 作者:拓端tecdat  | 我要投稿

原文鏈接:http://tecdat.cn/?p=23344

原文出處:拓端數(shù)據(jù)部落公眾號

本文中我們介紹了決策樹和隨機森林的概念,并在R語言中用邏輯回歸、回歸決策樹、隨機森林進行信用卡違約數(shù)據(jù)分析查看文末了解數(shù)據(jù)獲取方式。

決策樹是由節(jié)點和分支組成的簡單樹狀結(jié)構(gòu)。根據(jù)每個節(jié)點的任何輸入特征拆分?jǐn)?shù)據(jù),生成兩個或多個分支作為輸出。這個迭代過程增加了生成的分支的數(shù)量并對原始數(shù)據(jù)進行了分區(qū)。這種情況一直持續(xù)到生成一個節(jié)點,其中所有或幾乎所有數(shù)據(jù)都屬于同一類,并且不再可能進一步拆分或分支。

視頻:從決策樹到隨機森林:R語言信用卡違約分析信貸數(shù)據(jù)實例

從決策樹到隨機森林:R語言信用卡違約分析信貸數(shù)據(jù)實例

,時長10:11

這整個過程生成了一個樹狀結(jié)構(gòu)。第一個分裂節(jié)點稱為根節(jié)點。末端節(jié)點稱為葉子并與類標(biāo)簽相關(guān)聯(lián)。從根到葉的路徑產(chǎn)生分類規(guī)則。

假設(shè)你是一名員工,你想吃食物。

您的行動方案將取決于多種情況。

如果你不餓,你就不會花錢。但是如果你餓了,那么選擇就會改變。你的下一步行動取決于你的下一個情況,即你有沒有買午餐?

現(xiàn)在,如果你不吃午飯,你的行動將完全取決于你的下一個選擇,即是不是月底?如果是月底最后幾天,可以考慮不吃飯;否則,您不會將其視為偏好。

當(dāng)涉及多個選擇來做出任何決定時,決策樹就會發(fā)揮作用?,F(xiàn)在你必須做出相應(yīng)的選擇以獲得有利的結(jié)果。

決策樹如何工作?

決策樹有兩個組成部分:熵和信息增益

熵是一個用來衡量信息或無序的概念。我們可以用它來衡量數(shù)據(jù)集的純度。

為了更好地理解熵,讓我們研究兩個不同的示例數(shù)據(jù)集,它們都有兩個類,分別表示為藍點和紅叉。在左側(cè)的示例數(shù)據(jù)集中,我們混合了藍點和紅叉。在右側(cè)數(shù)據(jù)集的示例中,我們只有紅十字。第二種情況——一個只有一個類樣本的數(shù)據(jù)集——是我們的目標(biāo):一個“純”數(shù)據(jù)子集。

熵可以是純度、無序或信息的量度。由于混合類,左邊的數(shù)據(jù)集不那么純凈,更混亂(更無序,即更高的熵)。然而,更多的混亂也意味著更多的信息。實際上,如果數(shù)據(jù)集只有一類的點,那么無論您嘗試多長時間,都無法從中提取太多信息。相比之下,如果數(shù)據(jù)集具有來自兩個類的點,則它也具有更高的信息提取潛力。所以,左邊數(shù)據(jù)集的熵值越高,也可以看作是潛在信息量越大。

信息增益為了評估一個特征對分裂的好壞,計算分裂前后的熵差。

決策樹中每個拆分的目標(biāo)是從混淆的數(shù)據(jù)集移動到兩個(或更多)更純的子集。理想情況下,分裂應(yīng)該導(dǎo)致熵為 0.0 的子集。然而,在實踐中,如果拆分導(dǎo)致子集的總熵低于原始數(shù)據(jù)集就足夠了。

也就是說,我們首先計算分割前數(shù)據(jù)集的熵,然后計算分割后每個子集的熵。最后,在拆分之前從數(shù)據(jù)集的熵中減去由子集大小加權(quán)的輸出熵之和。這種差異衡量了信息的增益或熵的減少。如果信息增益是一個正數(shù),這意味著我們從一個混亂的數(shù)據(jù)集轉(zhuǎn)移到了一些更純粹的子集。

然后,在每一步,我們將選擇在信息增益值最高的特征上分割數(shù)據(jù),因為這會產(chǎn)生最純粹的子集。

我們將首先分割信息增益最高的特征。這是一個遞歸過程,直到所有子節(jié)點都是純的或直到信息增益為零。

隨機森林

隨機森林是另一種強大且最常用的監(jiān)督學(xué)習(xí)算法。

許多比一個好。簡單來說,這就是隨機森林算法背后的概念。也就是說,許多決策樹可以產(chǎn)生比僅僅一棵決策樹本身更準(zhǔn)確的預(yù)測。事實上,隨機森林算法是一種有監(jiān)督的分類算法,它構(gòu)建了 N 個經(jīng)過稍微不同訓(xùn)練的決策樹,并將它們合并在一起以獲得更準(zhǔn)確和穩(wěn)定的預(yù)測.

讓我們再次強調(diào)這個概念。整個想法依賴于多個決策樹,這些決策樹都經(jīng)過略微不同的訓(xùn)練,并且所有這些決策樹都被考慮到最終決策中。

在一個隨機森林中,N 棵決策樹在通過獲得的原始訓(xùn)練集的一個子集上進行訓(xùn)練自舉原始數(shù)據(jù)集,即通過帶放回的隨機抽樣。

此外,輸入特征也可能因樹而異,作為原始特征集的隨機子集。

N 個稍有不同訓(xùn)練的樹將對相同的輸入向量產(chǎn)生 N 個稍有不同的預(yù)測。通常,多數(shù)規(guī)則適用于做出最終決定。N棵樹中的大多數(shù)提供的預(yù)測被用作最后一棵。

這種策略的優(yōu)勢是顯而易見的。雖然來自單個樹的預(yù)測對訓(xùn)練集中的噪聲高度敏感,但來自大多數(shù)樹的預(yù)測卻不是——前提是這些樹不相關(guān)。Bootstrap 采樣是通過在不同的訓(xùn)練集上訓(xùn)練樹來去相關(guān)樹的方法。

接下來,我們在R語言中用邏輯回歸、回歸決策樹、隨機森林進行信用卡違約分析。

信貸數(shù)據(jù)集,其中包含了銀行貸款申請人的信息。該文件包含1000名申請人的20條信息。

下面的代碼可以用來確定申請人是否有信用,以及他(或她)是否對貸款人有良好的信用風(fēng)險。有幾種方法被應(yīng)用到數(shù)據(jù)上,幫助做出這種判斷。在這個案例中,我們將看一下這些方法。

請注意,本例可能需要進行一些數(shù)據(jù)處理,以便為分析做準(zhǔn)備。

我們首先將數(shù)據(jù)加載到R中。

credit?<-?read.csv(credit,?header?=?TRUE,?sep?=?',')

這段代碼在數(shù)據(jù)上做了一個小的處理,為分析做準(zhǔn)備。否則,就會出現(xiàn)錯誤,因為在某些文件的某一列中發(fā)現(xiàn)有四類因素。

基本上,任何4類因變量都被覆蓋為3類。繼續(xù)進行分析。

No.of.Credits\[No.of.Credits?==?4\]?<-?3

快速瀏覽一下數(shù)據(jù),了解一下我們的工作內(nèi)容。

str(credit)

你可能會立即注意到有幾個變量很顯眼。我們要排除它們。"信貸期限(月)"、"信貸金額 "和 "年齡"。

為什么?

我們在這個模型中試圖把重點放在作為信用價值指標(biāo)的數(shù)據(jù)分類或類別上。這些是分類變量,而不是數(shù)字變量。申請人有電話嗎?申請人是否已婚?是否有共同簽署人?申請人在同一地址住了多長時間?這類事情。

關(guān)于這些因素,重要的是我們知道它們與貸款決定的關(guān)系。良好的信用與某些因素的組合有關(guān),從而使我們可以用概率將新的申請人按其特征進行分類。

在數(shù)據(jù)中,這些問題的答案不是 "是 "或 "不是 "或 "十年"。答案被分組為更廣泛的分類。

我們需要做的是刪除真正的數(shù)字?jǐn)?shù)據(jù)(時間、金額和年齡),保留分類因素。我們排除選定列。

然后我們創(chuàng)建一個簡短的函數(shù),將整數(shù)轉(zhuǎn)換成因子。

for(i?in?S)?credit\[,?i\]?<-?as.factor(credit\[,?i\])

現(xiàn)在我們有了有用的數(shù)據(jù),我們可以開始應(yīng)用不同的分析方法。

方法一:_邏輯回歸_(Logistic Regression)

第一步是創(chuàng)建我們的訓(xùn)練數(shù)據(jù)集和測試數(shù)據(jù)集。訓(xùn)練集用于訓(xùn)練模型。測試集則用于評估模型的準(zhǔn)確性。

我們把數(shù)據(jù)集分成任何我們喜歡的大小,在這里我們使用三分之一,三分之二的分割。

(1:nrow(credit))\[-sample(1:nrow(credit),?size?=?333)\]

在這個階段,我們將使用glm()函數(shù)進行Logistic回歸。在這里,我們有選擇地使用模型中的變量。但現(xiàn)在只是用五個變量來確定信用度的值。

LogisticModel<-?glm(Credit?~?Account?+?Payment?+?Purp?+?Length.of.current?+?Sex,?family?=?binomial,?data?=?credit)

完成后,我們繼續(xù)將我們剛剛創(chuàng)建的模型擬合到測試集i_test1上,并準(zhǔn)備進行第一次預(yù)測。

我們已經(jīng)擬合了模型?,F(xiàn)在我們將使用ROCR包來創(chuàng)建預(yù)測,并以曲線下面積(AUC)來衡量性能。AUC越大,說明我們的模型表現(xiàn)越好。

perf1?<-?performance(pred1,?'tpr',?'fpr')

讓我們描繪一下結(jié)果。

我們將通過尋找AUC來結(jié)束這一部分。

AUCLog1

??

這不是一個糟糕的結(jié)果,但讓我們看看是否可以用不同的方法做得更好。

方法二:另一種Logistic模型

在這種方法中,我們將建立第二個Logistic邏輯模型來利用我們數(shù)據(jù)集中的所有變量。其步驟與上述第一個模型相同。

  1. perf2?<-?performance(pred2,?'tpr',?'fpr')

  2. plot(perf2)

AUCLog2

包括所有的變量,我們并沒有得到多少改善。一個好的規(guī)則是盡可能保持模型的簡單。增加更多的變量會帶來很少的改善,所以堅持使用更簡單的模型。

方法三:回歸樹

接下來,讓我們試著用回歸樹的方法來分析數(shù)據(jù)。我們的大部分代碼與上述邏輯模型中使用的代碼相似,但我們需要做一些調(diào)整。

請再次注意,我們正在研究我們模型中的所有變量,找到它們對我們感興趣的變量--信用度的影響。

  1. TreeModel?<-?rpart(Creditability?~?.,?data?=?credit\[i_calibration1,?\])

  2. library(rpart.plot)

  3. prp(TreeModel,?type?=?2,?extra?=?1)

  1. perf3?<-?performance(pred3,?'tpr',?'fpr')

  2. plot(perf3)

考慮到我們的樹狀模型的復(fù)雜性,這些結(jié)果并不令人滿意,所以我們不得不再次懷疑第一個例子中更簡單的Logistic Regression模型是否更好。

方法四:隨機森林

與其建立一棵決策樹,我們可以使用隨機森林方法來創(chuàng)建一個決策樹 "森林"。在這種方法中,最終結(jié)果是類的模式(如果我們正在研究分類模型)或預(yù)測的平均值(如果我們正在研究回歸)。

隨機森林背后的想法是,決策樹很容易過度擬合,所以找到森林中的 "平均 "樹可以幫助避免這個問題。

你可以想象,這比創(chuàng)建一棵決策樹在計算上要求更高,但R可以很好地處理這一工作。

randomForest(Credit?~?)

通過努力,我們得到了一個有點改進的結(jié)果。隨機森林模型是我們所嘗試的四個模型中表現(xiàn)最好的。但是,這需要判斷結(jié)果是否值得付出額外的努力。

方法五:比較隨機森林和Logistic模型

好了,我們已經(jīng)看了使用兩種基本分析方法的各種結(jié)果--邏輯回歸和決策樹。我們只看到了以AUC表示的單一結(jié)果。

隨機森林方法要求我們創(chuàng)建一個決策樹的森林,并取其模式或平均值。為什么不利用所有這些數(shù)據(jù)呢?它們會是什么樣子呢?

下面的代碼創(chuàng)建了一個圖表,描述了我們的隨機森林中每棵樹的AUC分?jǐn)?shù)和邏輯模型的數(shù)百種組合。

首先我們需要一個函數(shù)來進行分析。

  1. function(i){

  2. ????????i_test2?<-?sample(1:nrow(credit),?size?=?333)


  3. ????????summary(LogisticModel.3)

  4. ????????fitLog3?<-?predict(LogisticModel.3,?type?=?'response',?newdata?=?credit\[i_test2,

這部分代碼的運行需要一段時間,因為我們要對數(shù)百個單獨的結(jié)果進行列表和記錄。你可以通過改變VAUC對象中的計數(shù)來調(diào)整模型中的結(jié)果數(shù)量。在這里,我們選擇計算200個x-y對,或400個單獨的結(jié)果。

plot(t(VC))

你可以看到,我們從前四個模型中得到的結(jié)果正好處于分布的中間。

這為我們證實了這些模型都是有可比性的。我們所希望的最好結(jié)果是AUC達到0.84,而且大多數(shù)人給我們的結(jié)果與我們已經(jīng)計算的結(jié)果相似。

但是,讓我們試著更好地可視化。

首先,我們將對象轉(zhuǎn)換成一個數(shù)據(jù)框架。

我們創(chuàng)建幾個新圖。第一個是密度等高線圖。

plot(AA,?aes(x?=?V1,?y?=?V2)

第二張是高密度等高線圖,給我們提供了數(shù)據(jù)的概率區(qū)域。

with(AA,?boxplot(V1,?V2))

無論我們以何種方式描述我們的結(jié)果,都必須使用數(shù)據(jù)來做出合理的貸款決定。這里有一個問題?

這些可能是我們使用這些模型所能得出的最佳分?jǐn)?shù),但這些結(jié)果對于確定貸款申請人的信用價值是否可以接受?這取決于貸款機構(gòu)所使用的信用標(biāo)準(zhǔn)。

在最好的情況下,看起來我們的模型給了82%的機會向良好的信用風(fēng)險提供貸款。對于每100萬元的貸款,我們最多可能期望得到82萬元的償還。平均而言,我們預(yù)計會收回大約78萬元的本金。換句話說,根據(jù)我們的分析,有75%到80%的機會重新獲得100萬元的貸款,這取決于我們使用的建模方法。

當(dāng)我們把貸款申請人加入我們的數(shù)據(jù)庫時,如果我們要把他們視為良好的信貸風(fēng)險,我們希望他們聚集在高密度圖的最暗區(qū)域。

除非我們收取大量的利息來彌補我們的損失,否則我們可能需要更好的模型。

數(shù)據(jù)獲取

在下面公眾號后臺回復(fù)“信貸數(shù)據(jù)”,可獲取完整數(shù)據(jù)。

點擊文末“閱讀原文”

獲取全文完整資料。

本文選自《R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機森林信用卡違約分析信貸數(shù)據(jù)集》。


【視頻】從決策樹到隨機森林:R語言信用卡違約分析信貸數(shù)據(jù)實例|數(shù)據(jù)分享的評論 (共 條)

分享到微博請遵守國家法律
彰武县| 寿宁县| 永新县| 沙田区| 四川省| 博白县| 酒泉市| 巩义市| 敖汉旗| 深水埗区| 武宁县| 尼勒克县| 贵港市| 呼图壁县| 搜索| 大连市| 花莲市| 梅州市| 华池县| 台安县| 汶上县| 南溪县| 宜宾县| 浮梁县| 原阳县| 黑龙江省| 临城县| 石家庄市| 会泽县| 邢台县| 姜堰市| 辽阳市| 祁连县| 顺平县| 仁化县| 富川| 晋城| 台山市| 巴塘县| 柘城县| 沁水县|