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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

R语言第九讲 验证集法

發(fā)布時(shí)間:2024/7/5 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 R语言第九讲 验证集法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目的? ? ??

? ? ? ?為了更好的熟悉分析定性變量的邏輯斯諦回歸分析的應(yīng)用和驗(yàn)證集法(評估擬合擬合模型的一種方法),用一個(gè)簡單的示例來介紹一下它們在分析數(shù)據(jù)中的應(yīng)用。

題目

? ? ? ?在 Default 數(shù)據(jù)集上用income 和 balance 做邏輯斯諦回歸來預(yù)測 default的概率。現(xiàn)在要用驗(yàn)證集方法來估計(jì)這個(gè)邏輯斯諦回歸模型的測試錯(cuò)誤率。在分析之前不要忘記設(shè)置一個(gè)隨機(jī)種子。

? ? ? ?(a) 擬合一個(gè)用income和 balance 來預(yù)測 default 的邏輯斯諦回歸模型。

? ? ? ?(b) 用驗(yàn)證集方法,估計(jì)這個(gè)模型的測試錯(cuò)誤率。步驟如下:

? ? ? ? ? ? i .把樣本集分為一個(gè)訓(xùn)練集和一個(gè)驗(yàn)證袋。

? ? ? ? ? ? ii. 只用訓(xùn)練集的觀測來擬合一個(gè)多元邏輯斯諦回歸模型。

? ? ? ? ? ? iii. 計(jì)算每個(gè)個(gè)體違約的后驗(yàn)概率,如果后驗(yàn)概率大于 0.5 ,就將這個(gè)個(gè)體分到 default類,通過這種方法得到驗(yàn)證集中每? ? ? ? ? ? ? ? ? 個(gè)個(gè)體是否違約的一個(gè)預(yù)測。

? ? ? ? ? ? iV. 計(jì)算驗(yàn)證集錯(cuò)誤率, 即驗(yàn)證集中被錯(cuò)誤分類的觀測所占的比例。

? ? ? ?(c) 重復(fù)步驟 (b) 三次,用三種不同的分割把觀測分為一個(gè)訓(xùn)練集和一個(gè)驗(yàn)證集。討論得到的結(jié)果。

? ? ? ?(d) 現(xiàn)在考慮一個(gè)用 income,?balance 和一個(gè)啞變量?student 來預(yù)測 default 的概率的邏輯斯蒂回歸模型。用驗(yàn)證集方法來估? ? ? ? ? ? ? 計(jì)算這個(gè)模型的測試錯(cuò)誤率。討論包括啞變量 student 對于減小測試錯(cuò)誤率是否有影響。?

擴(kuò)展資料:

? ? ? ? 關(guān)于邏輯斯諦回歸分析的原理以及運(yùn)用,讀者可以參考博文??https://www.cnblogs.com/sench/p/9905752.html

? ? ? ? 驗(yàn)證集法,這種方法首先隨機(jī)地 把可獲得的觀測集分為兩部分:一個(gè)訓(xùn)練集和一個(gè)驗(yàn)證集 或者說保留集 。模型在訓(xùn)練集上擬合,然后用擬合的模型來預(yù)測驗(yàn)證集中觀測的響應(yīng)變量。最后得到的驗(yàn)證集錯(cuò)誤率--通常用均方誤差作為定量響應(yīng)變量的誤差度量 —— 提供了對于測試錯(cuò)誤率的一個(gè)估計(jì)。

訓(xùn)練

library(ISLR) summary(Default) attach(Default)default student balance income No :9667 No :7056 Min. : 0.0 Min. : 772 Yes: 333 Yes:2944 1st Qu.: 481.7 1st Qu.:21340 Median : 823.6 Median :34553 Mean : 835.4 Mean :33517 3rd Qu.:1166.3 3rd Qu.:43808 Max. :2654.3 Max. :73554

? ? ? ? 上面列出了Default數(shù)據(jù)集中的一些統(tǒng)計(jì)信息。數(shù)據(jù)集中default(是否違約) 違約人:9667,未違約人:333人。上面的default變量也是響應(yīng)變量,其余變量均為預(yù)測變量。學(xué)生和非學(xué)生人數(shù)統(tǒng)計(jì)、balance(信貸余額)[最大、最小、均值、中位數(shù)]、income(收入)[最大、最小、均值、中位數(shù)].

?

#用數(shù)據(jù)集Default擬合邏輯斯諦回歸模型 set.seed(1) glm.fit = glm(default ~ income + balance, data = Default, family = binomial)

?

glm函數(shù)介紹:glm(formula, family=family.generator, data,control = list(...))family:每一種響應(yīng)分布(指數(shù)分布族)允許各種關(guān)聯(lián)函數(shù)將均值和線性預(yù)測器關(guān)聯(lián)起來。常用的family:binomal(link='logit') ----響應(yīng)變量服從二項(xiàng)分布,連接函數(shù)為logit,即logistic回歸binomal(link='probit') ----響應(yīng)變量服從二項(xiàng)分布,連接函數(shù)為probitpoisson(link='identity') ----響應(yīng)變量服從泊松分布,即泊松回歸control:控制算法誤差和最大迭代次數(shù)glm.control(epsilon = 1e-8, maxit = 25, trace = FALSE) -----maxit:算法最大迭代次數(shù),改變最大迭代次數(shù):control=list(maxit=100) FiveB = function() {# .把樣本集分為一個(gè)訓(xùn)練集和一個(gè)驗(yàn)證袋。 train = sample(dim(Default)[1], dim(Default)[1]/2)# 只用訓(xùn)練集的觀測來擬合一個(gè)多元邏輯斯諦回歸模型。 glm.fit = glm(default~income+balance, data=Default, family=binomial,subset=train)# 計(jì)算每個(gè)個(gè)體違約的后驗(yàn)概率,如果后驗(yàn)概率大于 0.5 ,就將這個(gè)個(gè)體分到 default類,通過這種方法得 # 到驗(yàn)證集中每個(gè)個(gè)體是否違約的一個(gè)預(yù)測。 glm.pred = rep("No", dim(Default)[1]/2) glm.probs = predict(glm.fit, Default[-train,], type="response") glm.pred[glm.probs>.5] = "Yes"# 計(jì)算驗(yàn)證集錯(cuò)誤率, 即驗(yàn)證集中被錯(cuò)誤分類的觀測所占的比例。 return(mean(glm.pred != Default[-train,]$default)) }FiveB()

?

2.64% test error rate, with student dummy variable. Using the validation set approach, it doesn't appear adding the student dummy variable leads to a reduction in the test error rate. 測試誤差率為2.64%,帶有虛擬變量student。 使用驗(yàn)證集這種方法,似乎不添加Student虛擬變量會(huì)導(dǎo)致測試錯(cuò)誤率降低。 FiveB() FiveB() FiveB()[1] 0.0274 [1] 0.0244 [1] 0.0244

?從以上結(jié)果,分析得到這個(gè)擬合出的模型平均測試錯(cuò)誤率約為2.6%。

#用income,?balance 和一個(gè)啞變量?student 來預(yù)測 default 的概率的邏輯斯蒂回歸模型。用驗(yàn)證集方法來#估計(jì)算這個(gè)模型的測試錯(cuò)誤率。討論包括啞變量 student 對于減小測試錯(cuò)誤率是否有影響。? train = sample(dim(Default)[1], dim(Default)[1]/2) glm.fit = glm(default~income+balance+student, data=Default, family=binomial,subset=train) glm.pred = rep("No", dim(Default)[1]/2) glm.probs = predict(glm.fit, Default[-train,], type="response") glm.pred[glm.probs>.5] = "Yes" mean(glm.pred != Default[-train,]$default)#[1] 0.0278

從以上可以看出帶有虛擬變量student,測試誤差率為2.64%,而且似乎不添加student虛擬變量會(huì)導(dǎo)致測試錯(cuò)誤率降低。

總結(jié)

以上是生活随笔為你收集整理的R语言第九讲 验证集法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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