R语言第九讲 验证集法
目的? ? ??
? ? ? ?為了更好的熟悉分析定性變量的邏輯斯諦回歸分析的應(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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java自定义标签简单_JSP 自定义标
- 下一篇: libsvm回归参数寻优cgp_【lig