亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn)代碼

 更新時(shí)間:2021年03月11日 09:03:01   作者:bigdata老司機(jī)  
這篇文章主要介紹了R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn),本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

k-折交叉驗(yàn)證

k-折交叉驗(yàn)證(K-fold cross-validation)是交叉驗(yàn)證方法里一種。它是指將樣本集分為k份,其中k-1份作為訓(xùn)練數(shù)據(jù)集,而另外的1份作為驗(yàn)證數(shù)據(jù)集。用驗(yàn)證集來(lái)驗(yàn)證所得分類(lèi)器或者模型的錯(cuò)誤率。一般需要循環(huán)k次,直到所有k份數(shù)據(jù)全部被選擇一遍為止。

有關(guān)交叉驗(yàn)證的介紹可參考作者另一博文:
http://blog.csdn.net/yawei_liu1688/article/details/79138202

R語(yǔ)言實(shí)現(xiàn)

K折交叉驗(yàn)證,隨機(jī)分組

數(shù)據(jù)打折-數(shù)據(jù)分組自編譯函數(shù):進(jìn)行交叉檢驗(yàn)首先要對(duì)數(shù)據(jù)分組,數(shù)據(jù)分組要符合隨機(jī)且平均的原則

library(plyr)
CVgroup <- function(k,datasize,seed){
 cvlist <- list()
 set.seed(seed)
 n <- rep(1:k,ceiling(datasize/k))[1:datasize]  #將數(shù)據(jù)分成K份,并生成的完成數(shù)據(jù)集n
 temp <- sample(n,datasize)  #把n打亂
 x <- 1:k
 dataseq <- 1:datasize
 cvlist <- lapply(x,function(x) dataseq[temp==x]) #dataseq中隨機(jī)生成k個(gè)隨機(jī)有序數(shù)據(jù)列
 return(cvlist)
}
k <- 10
datasize <- nrow(iris)
cvlist <- CVgroup(k = k,datasize = datasize,seed = 1206)
cvlist

結(jié)果輸出示例:

輸出示例

K折交叉驗(yàn)證
第一種方法:循環(huán)語(yǔ)句寫(xiě)驗(yàn)證

data <- iris
pred <- data.frame()  #存儲(chǔ)預(yù)測(cè)結(jié)果
library(plyr)
library(randomForest)
m <- seq(60,500,by = 20) #如果數(shù)據(jù)量大盡量間隔大點(diǎn),間隔過(guò)小沒(méi)有實(shí)際意義
for(j in m){  #j指的是隨機(jī)森林的數(shù)量
 progress.bar <- create_progress_bar("text") #plyr包中的create_progress_bar函數(shù)創(chuàng)建一個(gè)進(jìn)度條,
 progress.bar$init(k)  #設(shè)置上面的任務(wù)數(shù),幾折就是幾個(gè)任務(wù)
 for (i in 1:k){
  train <- data[-cvlist[[i]],] #剛才通過(guò)cvgroup生成的函數(shù)
  test <- data[cvlist[[i]],]
  model <-randomForest(Sepal.Length~.,data = train,ntree = j)  #建模,ntree=j 指的樹(shù)數(shù)
  prediction <- predict(model,subset(test,select = -Sepal.Length))  #預(yù)測(cè)
  randomtree <- rep(j,length(prediction))  #隨機(jī)森林樹(shù)的數(shù)量
  kcross <- rep(i,length(prediction))  #i是第幾次循環(huán)交叉,共K次
  temp <- data.frame(cbind(subset(test,select = Sepal.Length),prediction,randomtree,kcross))#真實(shí)值、預(yù)測(cè)值、隨機(jī)森林樹(shù)數(shù)、預(yù)測(cè)組編號(hào)捆綁在一起組成新的數(shù)據(jù)框tenp
  pred <- rbind(pred,temp)  #temp按行和pred合并
  print(paste("隨機(jī)森林:",j)) #循環(huán)至樹(shù)數(shù)j的隨機(jī)森林模型
  progress.bar$step() #輸出進(jìn)度條。告知完成了這個(gè)任務(wù)的百分之幾
 }
}

結(jié)果輸出示例1:

輸出示例

結(jié)果輸出示例2:指標(biāo)分別為真實(shí)值、預(yù)測(cè)值、隨機(jī)森林樹(shù)數(shù)、預(yù)測(cè)組編號(hào)

這里寫(xiě)圖片描述

第二種方法:apply家族lapply
當(dāng)測(cè)試的循環(huán)數(shù)較多或單任務(wù)耗時(shí)較多時(shí),apply家族優(yōu)勢(shì)特別明顯

data <- iris
library(plyr)
library(randomForest)
k = 10
j <- seq(10,10000,by = 20)  #j樹(shù)的數(shù)量
i <- 1:k  #K折
i <- rep(i,times = length(j))
j <- rep(j,each = k)  #多少折,each多少
x <- cbind(i,j)
cvtest <- function(i,j){
 train <- data[-cvlist[[i]],]
 test <- data[cvlist[[i]],]
 model <- randomForest(Sepal.Length~.,data = train,ntree = j)
 prediction <- predict(model,subset(test,select = -Sepal.Length))
 temp <- data.frame(cbind(subset(test,select = Sepal.Length),prediction))
}

結(jié)果輸出示例3:指標(biāo)分別為真實(shí)值、預(yù)測(cè)值、隨機(jī)森林樹(shù)數(shù)、預(yù)測(cè)組編號(hào)

這里寫(xiě)圖片描述

system.time(pred <- mdply(x,cvtest))  

這里寫(xiě)圖片描述

mdyly在plyr包中:輸出三個(gè)指標(biāo):“用戶(hù)”“系統(tǒng)”“流逝”。其中“流逝”應(yīng)該是這段代碼從開(kāi)始到結(jié)束的真正時(shí)間。對(duì)于一般單線程的程序來(lái)說(shuō)這個(gè)時(shí)間近似于用戶(hù)時(shí)間和系統(tǒng)時(shí)間之和,可以看出共運(yùn)行了1386秒。

到此這篇關(guān)于R語(yǔ)言交叉驗(yàn)證的文章就介紹到這了,更多相關(guān)R語(yǔ)言交叉驗(yàn)證的實(shí)現(xiàn)代碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • R語(yǔ)言-如何循環(huán)讀取excel并保存為RData

    R語(yǔ)言-如何循環(huán)讀取excel并保存為RData

    這篇文章主要介紹了R語(yǔ)言循環(huán)讀取excel并保存為RData的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • R語(yǔ)言的特點(diǎn)總結(jié)

    R語(yǔ)言的特點(diǎn)總結(jié)

    在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于R語(yǔ)言的特點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • R語(yǔ)言 實(shí)現(xiàn)list類(lèi)型數(shù)據(jù)轉(zhuǎn)換

    R語(yǔ)言 實(shí)現(xiàn)list類(lèi)型數(shù)據(jù)轉(zhuǎn)換

    這篇文章主要介紹了R語(yǔ)言 實(shí)現(xiàn)list類(lèi)型數(shù)據(jù)轉(zhuǎn)換,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • R語(yǔ)言繪制line?plot線圖示例詳解

    R語(yǔ)言繪制line?plot線圖示例詳解

    這篇文章主要為大家介紹了R語(yǔ)言繪制line?plot線圖的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-02-02
  • R語(yǔ)言-在一張圖上顯示多條線的實(shí)現(xiàn)

    R語(yǔ)言-在一張圖上顯示多條線的實(shí)現(xiàn)

    這篇文章主要介紹了R語(yǔ)言-在一張圖上顯示多條線的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04
  • R包ggtreeExtra繪制進(jìn)化樹(shù)

    R包ggtreeExtra繪制進(jìn)化樹(shù)

    這篇文章主要為大家介紹了R包ggtreeExtra繪制進(jìn)化樹(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • R語(yǔ)言最簡(jiǎn)單的向量賦值方法示例

    R語(yǔ)言最簡(jiǎn)單的向量賦值方法示例

    這篇文章主要給大家介紹了關(guān)于R語(yǔ)言最簡(jiǎn)單的向量賦值方法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Rcpp入門(mén)R代碼提速方法過(guò)程

    Rcpp入門(mén)R代碼提速方法過(guò)程

    這篇文章主要為大家介紹了Rcpp入門(mén)如何讓R代碼更快的提速方法過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-11-11
  • R語(yǔ)言rmarkdown使用安裝教程

    R語(yǔ)言rmarkdown使用安裝教程

    markdown是文本處理的標(biāo)記語(yǔ)言,它的功能類(lèi)似于word,但與word中各種排版、字體設(shè)置不同,markdown能使我們更專(zhuān)注于碼字這件事,用標(biāo)記語(yǔ)法來(lái)代替常見(jiàn)的排版格式,Rmarkdown基于R中的文本處理格式,這篇文章主要介紹了R語(yǔ)言rmarkdown使用安裝教程,需要的朋友可以參考下
    2024-02-02
  • R語(yǔ)言繪制雙坐標(biāo)圖的案例詳解

    R語(yǔ)言繪制雙坐標(biāo)圖的案例詳解

    這篇文章主要介紹了R語(yǔ)言繪制雙坐標(biāo)圖,下面就跟大家介紹plotrix包中的twoord.plot()函數(shù)和twoord.stackplot()函數(shù),它們可以實(shí)現(xiàn)雙坐標(biāo)軸圖形的繪制,需要的朋友可以參考下
    2023-01-01

最新評(píng)論