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

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

拓端tecdat|R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機森林信用卡違約分

2021-08-12 10:19 作者:拓端tecdat  | 我要投稿

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

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

在許多網(wǎng)站上都可以找到一個流行的德國信貸數(shù)據(jù)集german_credit,其中包含了銀行貸款申請人的信息。該文件包含1000名申請人的20條信息。

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

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

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


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

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

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

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

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

str(credit)

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

為什么?

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

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

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

我們需要做的是刪除真正的數(shù)字數(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)建我們的訓練數(shù)據(jù)集和測試數(shù)據(jù)集。訓練集用于訓練模型。測試集則用于評估模型的準確性。

我們把數(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上,并準備進行第一次預測。

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


  1. 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)

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

方法四:隨機森林

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

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

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

randomForest(Credit ~ )

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

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

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

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

下面的代碼創(chuàng)建了一個圖表,描述了我們的隨機森林中每棵樹的AUC分數(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ū)域。?


  1. with(AA, boxplot(V1, V2))

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

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

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

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

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

最受歡迎的見解

1.從決策樹模型看員工為什么離職

2.R語言基于樹的方法:決策樹,隨機森林

3.python中使用scikit-learn和pandas決策樹

4.機器學習:在SAS中運行隨機森林數(shù)據(jù)分析報告

5.R語言用隨機森林和文本挖掘提高航空公司客戶滿意度

6.機器學習助推快時尚精準銷售時間序列

7.用機器學習識別不斷變化的股市狀況——隱馬爾可夫模型的應(yīng)用

8.python機器學習:推薦系統(tǒng)實現(xiàn)(以矩陣分解來協(xié)同過濾)

9.python中用pytorch機器學習分類預測銀行客戶流失


拓端tecdat|R語言邏輯回歸(Logistic Regression)、回歸決策樹、隨機森林信用卡違約分的評論 (共 條)

分享到微博請遵守國家法律
北川| 英山县| 海口市| 黑河市| 普陀区| 新巴尔虎右旗| 葵青区| 深泽县| 门源| 琼结县| 洪雅县| 大兴区| 景泰县| 翁牛特旗| 左云县| 贵定县| 怀远县| 江城| 冷水江市| 喀喇沁旗| 淮北市| 石嘴山市| 惠来县| 寻甸| 西青区| 越西县| 瓦房店市| 武定县| 乌拉特后旗| 临洮县| 宜兰市| 广德县| 理塘县| 额济纳旗| 麻城市| 芷江| 光泽县| 崇左市| 南郑县| 探索| 安平县|