返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >详解R语言caret包trainControl函数
  • 753
分享到

详解R语言caret包trainControl函数

R语言caret包trainControl函数R语言caret包 2022-11-13 14:11:40 753人浏览 独家记忆
摘要

目录trainControl参数详解源码参数详解示例trainControl参数详解 源码 caret::trainControl <- function (method =

trainControl参数详解

源码

caret::trainControl <- 
function (method = "boot", number = ifelse(grepl("cv", method), 10, 25), repeats = ifelse(grepl("[d_]cv$", method), 1, NA), p = 0.75, search = "grid", initialWindow = NULL,  horizon = 1, fixedWindow = TRUE, skip = 0, verboseIter = FALSE, returnData = TRUE, returnResamp = "final", savePredictions = FALSE, 
    classProbs = FALSE, summaryFunction = defaultSummary, selectionFunction = "best", 
    preProcOptions = list(thresh = 0.95, ICAcomp = 3, k = 5, 
        freqCut = 95/5, uniqueCut = 10, cutoff = 0.9), sampling = NULL, 
    index = NULL, indexOut = NULL, indexFinal = NULL, timingSamps = 0, 
    predictionBounds = rep(FALSE, 2), seeds = NA, adaptive = list(min = 5, 
        alpha = 0.05, method = "gls", complete = TRUE), 
    trim = FALSE, allowParallel = TRUE) 
{
    if (is.null(selectionFunction)) 
        stop("null selectionFunction values not allowed")
    if (!(returnResamp %in% c("all", "final", "none"))) 
        stop("incorrect value of returnResamp")
    if (length(predictionBounds) > 0 && length(predictionBounds) != 
        2) 
        stop("'predictionBounds' should be a logical or numeric vector of length 2")
    if (any(names(preProcOptions) == "method")) 
        stop("'method' cannot be specified here")
    if (any(names(preProcOptions) == "x")) 
        stop("'x' cannot be specified here")
    if (!is.na(repeats) & !(method %in% c("repeatedcv", 
        "adaptive_cv"))) 
        warning("`repeats` has no meaning for this resampling method.", 
            call. = FALSE)
    if (!(adaptive$method %in% c("gls", "BT"))) 
        stop("incorrect value of adaptive$method")
    if (adaptive$alpha < 1e-07 | adaptive$alpha > 1) 
        stop("incorrect value of adaptive$alpha")
    if (grepl("adapt", method)) {
        num <- if (method == "adaptive_cv") 
            number * repeats
        else number
        if (adaptive$min >= num) 
            stop(paste("adaptive$min should be less than", 
                num))
        if (adaptive$min <= 1) 
            stop("adaptive$min should be greater than 1")
    }
    if (!(search %in% c("grid", "random"))) 
        stop("`search` should be either 'grid' or 'random'")
    if (method == "oob" & any(names(match.call()) == "summaryFunction")) {
        warning("Custom summary measures cannot be computed for out-of-bag resampling. ", 
            "This value of `summaryFunction` will be ignored.", 
            call. = FALSE)
    }
    list(method = method, number = number, repeats = repeats, 
        search = search, p = p, initialWindow = initialWindow, 
        horizon = horizon, fixedWindow = fixedWindow, skip = skip, 
        verboseIter = verboseIter, returnData = returnData, returnResamp = returnResamp, 
        savePredictions = savePredictions, classProbs = classProbs, 
        summaryFunction = summaryFunction, selectionFunction = selectionFunction, 
        preProcOptions = preProcOptions, sampling = sampling, 
        index = index, indexOut = indexOut, indexFinal = indexFinal, 
        timingSamps = timingSamps, predictionBounds = predictionBounds, 
        seeds = seeds, adaptive = adaptive, trim = trim, allowParallel = allowParallel)
}

参数详解

trainControl所有参数详解
method重抽样方法:Bootstrap(有放回随机抽样)Bootstrap632(有放回随机抽样扩展)LOOCV(留一交叉验证)LGoCV(蒙特卡罗交叉验证)cv(k折交叉验证)repeatedcv(重复的k折交叉验证)optimism_boot(Efron, B., & Tibshirani, R. J. (1994). “An introduction to the bootstrap”, pages 249-252. CRC press.)none(仅使用一个训练集拟合模型)oob(袋外估计:随机森林、多元自适应回归样条、树模型、灵活判别分析、条件树)
number控制K折交叉验证的数目或者Bootstrap和LGOCV的抽样迭代次数
repeats控制重复交叉验证的次数
pLGOCV:控制训练比例
verboseIter输出训练日志的逻辑变量
returnData逻辑变量,把数据保存到trainingData中(str(trainControl)查看)
searchsearch = grid(网格搜索)random(随机搜索)
returnResamp包含以下值的字符串final、all、none,设定有多少抽样性能度量被保存。
classProbs是否计算类别概率
summaryFunction根据重抽样计算模型性能的函数
selectionFunction选择最优参数的函数
index指定重抽样样本(使用相同的重抽样样本评估不同的算法、模型)
allowParallel是否允许并行

示例

library(mlbench) #使用包中的数据
Warning message:
程辑包‘mlbench'是用R版本4.1.3 来建造的 
> data(Sonar)
> str(Sonar[, 1:10])
'data.frame':   208 obs. of  10 variables:
 $ V1 : num  0.02 0.0453 0.0262 0.01 0.0762 0.0286 0.0317 0.0519 0.0223 0.0164 ...
 $ V2 : num  0.0371 0.0523 0.0582 0.0171 0.0666 0.0453 0.0956 0.0548 0.0375 0.0173 ...
 $ V3 : num  0.0428 0.0843 0.1099 0.0623 0.0481 ...
 $ V4 : num  0.0207 0.0689 0.1083 0.0205 0.0394 ...
 $ V5 : num  0.0954 0.1183 0.0974 0.0205 0.059 ...
 $ V6 : num  0.0986 0.2583 0.228 0.0368 0.0649 ...
 $ V7 : num  0.154 0.216 0.243 0.11 0.121 ...
 $ V8 : num  0.16 0.348 0.377 0.128 0.247 ...
 $ V9 : num  0.3109 0.3337 0.5598 0.0598 0.3564 ...
 $ V10: num  0.211 0.287 0.619 0.126 0.446 ...

数据分割:

library(caret)
set.seed(998)
inTraining <- createDataPartition(Sonar$Class, p = .75, list = FALSE)
training <- Sonar[ inTraining,] #训练集
testing  <- Sonar[-inTraining,] #测试

模型拟合:

fitControl <- trainControl(## 10折交叉验证
                           method = "repeatedcv",
                           number = 10,
                           ## 重复10次
                           repeats = 1)
                           
set.seed(825)
gbmFit1 <- train(Class ~ ., data = training, 
                 method = "gbm", # 助推树
                 trControl = fitControl,
                 verbose = FALSE)
gbmFit1   
Stochastic Gradient Boosting 

157 samples
 60 predictor
  2 classes: 'M', 'R' 

No pre-processing
Resampling: Cross-Validated (10 fold, repeated 10 times) 
Summary of sample sizes: 141, 142, 141, 142, 141, 142, ... 
Resampling results across tuning parameters:

  interaction.depth  n.trees  Accuracy   Kappa    
  1                   50      0.7935784  0.5797839
  1                  100      0.8171078  0.6290208
  1                  150      0.8219608  0.6383173
  2                   50      0.8041912  0.6027771
  2                  100      0.8296176  0.6544713
  2                  150      0.8283627  0.6520181
  3                   50      0.8110343  0.6170317
  3                  100      0.8301275  0.6551379
  3                  150      0.8310343  0.6577252

Tuning parameter 'shrinkage' was held constant at a value of 0.1

Tuning parameter 'n.minobsinnode' was held constant at a value of 10
Accuracy was used to select the optimal model using the largest value.
The final values used for the model were n.trees = 150, interaction.depth
 = 3, shrinkage = 0.1 and n.minobsinnode = 10.
                        

到此这篇关于R语言caret包trainControl函数详解的文章就介绍到这了,更多相关R语言caret包trainControl函数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 详解R语言caret包trainControl函数

本文链接: https://lsjlt.com/news/172037.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 详解R语言caret包trainControl函数
    目录trainControl参数详解源码参数详解示例trainControl参数详解 源码 caret::trainControl <- function (method =...
    99+
    2022-11-13
    R语言caret包trainControl函数 R语言caret包
  • R语言中aggregate 函数详解
    目录R语言中aggregate 函数001、测试数据框002、 调用函数R语言中aggregate 函数 aggregate函数是数据处理中常用到的函数,具有强大的功能。可以按照要求...
    99+
    2023-05-17
    R语言aggregate 函数 aggregate 函数
  • R语言中merge函数详解
    1、创建测试数据: name <- c('A','B','A','A','C','D') school <- c('s1','s2','s1','s1','s1','...
    99+
    2024-04-02
  • R语言利用caret包比较ROC曲线的操作
    说明 我们之前探讨了多种算法,每种算法都有优缺点,因而当我们针对具体问题去判断选择那种算法时,必须对不同的预测模型进行重做评估。 为了简化这个过程,我们使用caret包来生成并比较不...
    99+
    2024-04-02
  • R语言Legend函数深入详解
    legend(x, y = NULL, legend, fill = NULL, col = par("col"), border = "black", lty, lwd, pc...
    99+
    2024-04-02
  • 怎么在R语言中使用caret包比较ROC曲线
    这篇文章将为大家详细讲解有关怎么在R语言中使用caret包比较ROC曲线,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。操作加载对应的包与将训练控制算法设置为10折交叉验证,重复次数为3:li...
    99+
    2023-06-14
  • 详解R语言plot函数参数合集
    最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅。 plot(x, y = NULL, type = "p", xlim = NU...
    99+
    2024-04-02
  • R语言函数详解及实例用法
    函数是一组组合在一起以执行特定任务的语句。 R 语言具有大量内置函数,用户可以创建自己的函数。 在R语言中,函数是一个对象,因此R语言解释器能够将控制传递给函数,以及函数完成动作所需...
    99+
    2024-04-02
  • R语言strsplit函数用法深入详解
    1、R语言strsplit用于分割字符串 创建测试数据 > test <- "aa bb cc dd ee ff" ##创建测试数据 > test [1] "a...
    99+
    2024-04-02
  • R语言中set.seed()函数的作用详解
    目录001、首先查看不使用set.seed函数的情况002、使用set.seed函数的情况003、改变种子序号的情况R语言中set.seed()函数的作用是保证前后生成的随机数保持一...
    99+
    2024-04-02
  • R语言ggplot2包之坐标轴详解
    引言 我们还可以对图形中的坐标轴进行处理,包括x、y轴对换、设定坐标轴范围、刻度线修改与去除等等。要想对图形玩得转,坐标轴处理精通不可或缺。 坐标轴对换 我们使用coord_flip...
    99+
    2024-04-02
  • 详解R语言图像处理EBImage包
    目录什么是EBImage1. 图像读取与保存2.色彩管理3.图像处理4.空间变换5.形态运算6.图像分割本文摘自《Keras深度学习:入门、实战及进阶》第四章部分章节。 什么是EBI...
    99+
    2024-04-02
  • R语言dplyr包之高效数据处理函数(filter、group_by、mutate、summarise)详解
    R语言dplyr包的数据整理、分析函数用法文章连载NO.01 在日常数据处理过程中难免会遇到些难处理的,选取更适合的函数分割、筛选、合并等实在是大快人心! 利用dplyr包中的函数更...
    99+
    2024-04-02
  • R语言学习笔记之lm函数详解
    在使用lm函数做一元线性回归时,发现lm(y~x+1)和lm(y~x)的结果是一致的,一直没找到两者之间的区别,经过大神们的讨论和测试,才发现其中的差别,测试如下: -------...
    99+
    2024-04-02
  • R语言中的fivenum与quantile()函数算法详解
    fivenum()函数: 返回五个数据:最小值、下四分位数数、中位数、上四分位数、最大值 对于奇数个数字=5,fivenum()先排序,依次返回最小值、下四分位数、中位数、上四分位数...
    99+
    2024-04-02
  • R语言which函数介绍及Rcpp改写详解
    目录引言which 函数的介绍which函数的一些小例子which函数的改进以及时间对比总结引言 首先来介绍一下R语言which函数的作用:which函数在向量、矩阵、数据框,列表、...
    99+
    2024-04-02
  • R语言boxplot函数深入讲解
    箱线图简介 箱线图又称箱形图或盒须图,该图是由5个特征值绘制而成的图形。 5个特征值是变量的最大值、最小值、中位数、第1四分位数和第3四分位数。 连接两个分位数画出一个箱子,箱子用中...
    99+
    2024-04-02
  • R语言行筛选的方法之filter函数详解
    目录1. 数据2. 生成ID列和类型3. 提取effect大于0.1的行4. 提取加性效应,且effect小于0的行5. 根据部分行名删选6. 固定字符特征进行行筛选总结下面介绍一下...
    99+
    2024-04-02
  • R语言使用cgdsr包获取TCGA数据示例详解
    目录TCGA数据源TCGA数据库探索工具查看任意数据集的样本列表方式选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据选定样本列表获取临床信息综合性获取下载mRNA数据获...
    99+
    2024-04-02
  • R语言中if(){}else{}语句和ifelse()函数的区别详解
    首先看看定义: # if statement if(cond) expr if(cond) cons.expr else alt.expr # ifelse functio...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作