如何指定设置为插入符号的验证保留

2023-12-06

我真的很喜欢至少在建模的早期阶段使用插入符号,特别是因为它非常容易使用重采样方法。然而,我正在研究一个模型,其中训练集通过半监督自我训练添加了相当数量的案例,因此我的交叉验证结果确实存在偏差。我的解决方案是使用验证集来衡量模型性能,但我看不到直接在插入符中使用验证集的方法 - 我是否遗漏了某些内容或只是不支持?我知道我可以编写自己的包装器来执行插入符通常为 m 执行的操作,但如果有一种解决方法而不必这样做,那就太好了。

这是我所经历的一个简单的例子:

> library(caret)
> set.seed(1)
> 
> #training/validation sets
> i <- sample(150,50)
> train <- iris[-i,]
> valid <- iris[i,]
> 
> #make my model
> tc <- trainControl(method="cv")
> model.rf <- train(Species ~ ., data=train,method="rf",trControl=tc)
> 
> #model parameters are selected using CV results...
> model.rf
100 samples
  4 predictors
  3 classes: 'setosa', 'versicolor', 'virginica' 

No pre-processing
Resampling: Cross-Validation (10 fold) 

Summary of sample sizes: 90, 90, 90, 89, 90, 92, ... 

Resampling results across tuning parameters:

  mtry  Accuracy  Kappa  Accuracy SD  Kappa SD
  2     0.971     0.956  0.0469       0.0717  
  3     0.971     0.956  0.0469       0.0717  
  4     0.971     0.956  0.0469       0.0717  

Accuracy was used to select the optimal model using  the largest value.
The final value used for the model was mtry = 2. 
> 
> #have to manually check validation set
> valid.pred <- predict(model.rf,valid)
> table(valid.pred,valid$Species)

valid.pred   setosa versicolor virginica
  setosa         17          0         0
  versicolor      0         20         1
  virginica       0          2        10
> mean(valid.pred==valid$Species)
[1] 0.94

我最初以为我可以通过创建自定义来做到这一点summaryFunction() for a trainControl()对象,但我看不到如何引用我的模型对象以从验证集中获取预测(文档 -http://caret.r-forge.r-project.org/training.html- 仅列出“data”、“lev”和“model”作为可能的参数)。例如,这显然行不通:

tc$summaryFunction <- function(data, lev = NULL, model = NULL){
  data.frame(Accuracy=mean(predict(<model object>,valid)==valid$Species))
}

编辑:为了想出一个真正丑陋的修复程序,我一直在寻找是否可以从另一个函数的范围访问模型对象,但我什至没有看到它们存储在任何地方。希望有一些我什至没有看到的优雅的解决方案......

> tc$summaryFunction <- function(data, lev = NULL, model = NULL){
+   browser()
+   data.frame(Accuracy=mean(predict(model,valid)==valid$Species))
+ }
> train(Species ~ ., data=train,method="rf",trControl=tc)
note: only 1 unique complexity parameters in default grid. Truncating the grid to 1 .

Called from: trControl$summaryFunction(testOutput, classLevels, method)
Browse[1]> lapply(sys.frames(),function(x) ls(envi=x))
[[1]]
[1] "x"

[[2]]
 [1] "cons"      "contrasts" "data"      "form"      "m"         "na.action" "subset"   
 [8] "Terms"     "w"         "weights"   "x"         "xint"      "y"        

[[3]]
[1] "x"

[[4]]
 [1] "classLevels" "funcCall"    "maximize"    "method"      "metric"      "modelInfo"  
 [7] "modelType"   "paramCols"   "ppMethods"   "preProcess"  "startTime"   "testOutput" 
[13] "trainData"   "trainInfo"   "trControl"   "tuneGrid"    "tuneLength"  "weights"    
[19] "x"           "y"          

[[5]]
[1] "data"  "lev"   "model"

看一眼trainControl。现在有选项可以直接指定用于对数据建模的数据行(index参数)以及哪些行应该用于计算保留估计(称为indexOut)。我认为这正是您所寻找的。

Max

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何指定设置为插入符号的验证保留 的相关文章

  • 如何用日语创建 ggplot2 标题?

    我正在准备日语演示文稿 并希望图像的标题和图例名称为日语 我可以让文本在 RStudio 中渲染得很好 但是当渲染图像时 日语字符仅显示为方框 x 10 10 y x x df data frame x y ggplot df aes x
  • 使用 SparkR 1.5 从 RStudio 中的 hdfs 读取大文件(纯文本、xml、json、csv)的选项

    我是 Spark 新手 想知道除了下面的选项之外是否还有其他选项可以使用 SparkR 从 RStudio 读取存储在 hdfs 中的数据 或者我是否正确使用它们 数据可以是任何类型 纯文本 csv json xml 或任何包含关系表的数据
  • 在捕食者-被捕食者系统的生态建模中正确使用 deSolve

    我有一个捕食者 被捕食者模型 其中包含指定的参数和初始值 我在这里用两种方法求解微分方程 1 使用 for 循环 2 使用 deSolve 包 我相信 for 循环是正确的 并且应该给出如下图所示的输出 For loop attempt r
  • 使用亚毫秒日期时间从字符->POSIXct->字符准确转换

    我的文件中有一个字符日期时间列 我加载文件 到data table 并执行需要将列转换为的操作POSIXct 然后我需要写POSIXct值返回文件 但日期时间不会相同 因为打印不正确 这个打印 格式问题是众所周知的 并且已经被讨论过多次 我
  • 在 Linux 下更改 RStudio 用户界面(不是图形等)中的字体大小

    This is not关于更改使用 RStudio 生成的图表中的字体大小的问题 我已经知道该怎么做了 我在配备 视网膜 显示屏的 MacBook Pro 上的 Linux 下使用 RStudio 我使用 KDE 作为我的窗口管理器 我可以
  • 如何制作一连串的ggplots并在它们之间绘制箭头?

    对于一个项目 我需要绘制一些图并在它们之间放置箭头作为序列的指示 我想知道我是否可以用 ggplot 来做到这一点 是否可以使用 ggplot2 绘制一个干净的大箭头并将其添加到最终的多重图中 作为示例 我使用此代码来绘制绘图 librar
  • 如何根据查找表匹配多列

    我有以下两个数据框 lookup lt data frame id c A B C price c 1 2 3 results lt data frame price 1 c 2 2 1 price 2 c 3 1 1 我现在想要浏览所有列
  • 在 R 中收集多组列[重复]

    这个问题在这里已经有答案了 我有一个宽数据框 需要将其收集或融化成一个高数据框 我遇到的问题是我有几组列需要保持关联 分组 我每个表单提交有 2 个用户 每个用户有 3 列数据 我想将这 6 列基本上以 3 组的形式堆叠起来 以便每个用户都
  • 如何处理包内部的 R 数据?

    我正在开发的 R 包需要多个 R 数据对象 例如预先计算的模型和参数 目前 我将包的 数据 目录中的每个对象放在单独的 RData 文件中 使用该包时 用户可以使用 数据 功能将这些对象附加到他们的环境中 我想要的行为是 在加载包时 数据对
  • 使用插入符和方法 = gamLoess 进行训练时 R 崩溃

    当我运行下面的代码时 R 崩溃了 如果我在训练调用中注释掉tuneGrid行 就不会发生崩溃 我已经用另一个数据集尝试过此操作 但仍然使 R 崩溃 崩溃消息是 R 会话中止 R遇到致命错误 会话被终止 开始新会话 代码是 library s
  • R 中 if-else 中的逻辑运算符

    我有一个名为 mat 的下表 5 列和 3 行 AC CA RES 1 0 2 2 1 3 0 0 0 1 正在执行的操作是mat 1 mat 1 mat 2 我正在测试以下内容 1 如果一行的两列都为零 则结果应为 NA 2 如果一行中只
  • R -> kdb:将 R 数据作为二进制对象传递给 kdb+

    最有效的插入方式是什么R对象 更具体地说 时间序列表示为xts or data table对象 即基于时间和数字的列 到kdb 数据库 我能够通过以下方式找到唯一涉及字符串序列化的解决方案q所描述的表达式here https stackov
  • dplyr:同一公式中全年每日值的总和以及特定每日值的总和

    Using df数据框 date lt rep as Date seq as Date 2003 01 01 as Date 2005 12 31 by 1 format Y m d 9 site lt c rep Site 1 3 109
  • R:行数不相等的列绑定

    我有两个数据集 它们每个都有变量 ID Block 和 RT 反应时间 我想合并 列绑定这两个集合 以便我拥有一个包含变量的数据集 ID 块 RT1 RT2 问题是两个集合中的行数不相等 此外 ID 和块号匹配也很重要 缺失值应替换为 NA
  • 在 Rlattice xyplot 上分别控制轴刻度和轴线

    我怎样才能去除周围的盒子xyplot 同时保留轴刻度刻度线 本着爱德华 塔夫特 Edward Tufte 极简主义数据图形美学的精神 这些轴线是 非数据墨水 并且可以 应该 被 擦除 library lattice my df lt dat
  • 如何强制在较新版本的 R 上安装较旧的软件包?

    我无法安装proj4string进入我当前版本的 R 2 15 1 Warning message package proj4string is not available for R version 2 15 1 我认为这是因为 2 15
  • tidyr:将一列分成可变数量的列

    我的数据框中有一个变量 其中包含回答问卷中不同问题的长度 数据结构如下 data lt data frame variables c q1 2 q2 3 q3 4 q4 10 q5 1 q2 3 q1 2 q3 2 q5 2 q4 9 q1
  • 零膨胀泊松分布:无法估计参数,错误代码为 100

    以下是我正在研究的一种数据集 data lt c 0 1 0 11 2 0 3 0 0 2 1 3 1 0 1 0 0 0 2 3 0 0 0 8 1 1 1 0 1 1 2 7 0 0 0 5 2 3 6 1 1 5 2 9 0 0 1
  • geom_polygon 的渐变填充

    此代码生成一个包含 3 个多边形的图表 我正在创建一个显示 3 个多边形的图表 如果有更好的方法来绘制多边形 我不太感兴趣 实际上这些多边形代表事件 并且这些事件有一个持续时间 首先 我感兴趣的是使用渐变填充每个多边形的可能性 librar
  • R:中断 for 循环

    你能确认下一个break是否取消了内部for循环吗 for out in 1 n old id velho lt old table df id out for in in 1 n id novo lt new table df ID in

随机推荐

  • C++ strtok - 多次使用更多数据缓冲区

    我使用时没有什么问题strtok 功能 我正在解析两个文件 首先我将文件 1 加载到buffer 该文件包含我需要加载的第二个文件的名称 这两个文件都是逐行读取的 我的代码如下所示 char second file name 128 cha
  • 使用 jQuery 制作 CSS3 渐变位置动画

    是否可以使用 jQuery 对 CSS3 渐变颜色的位置进行动画处理 我想以此为动画 background moz linear gradient top FF0000 0 FF0000 0 FFFFFF 0 FFFFFF 100 fire
  • 使组合框可编辑

    我想让组合框在 C 中可编辑 它应该接受来自键盘和下拉列表的输入 并且我想将输入的文本附加到下拉列表中 你需要 1 将 AutoCompleteMode 属性设置为 AutoCompleteMode SuggestAppend 2 将 Au
  • 参考.Net Core 2.0项目中的.Net Framework 4.5.2

    我花了几个小时试图弄清楚为什么 Net Core 2 0 不会加载 Net Framework 4 5 2 nuget 包 现在我想是时候问一下了 发生的情况是我有一个 Net Core 2 0 WebApi 应用程序 A 并且我想重用我的
  • 通过反射使用默认参数实例化案例类

    我需要能够通过反射实例化各种案例类 既可以确定构造函数的参数类型 也可以使用所有默认参数调用构造函数 我已经做到了这一点 import reflect runtime universe gt ru val m ru runtimeMirro
  • ASP.Net Core的ConfigureServices中访问数据库(EF Core DbContext)

    我想向 ASP Net Core 授权添加一些策略 这些策略存储在我的数据库 EF Core with MySQL 中 目标是根据用户的权限限制用户的访问 据我所知 我应该在ConfigureServices方法中的Startup像这样的类
  • Data.table:如何获取它所承诺的极快的子集并将其应用于第二个 data.table

    我试图根据另一个数据集 lsr 的子集来丰富一个数据集 依从性 对于依从性中的每一行 我想计算 作为第三列 可用于实施规定方案的药物 我有一个返回相关结果的函数 但它仅在我必须运行它的总数据的一个子集上运行数天 数据集是 library d
  • 添加 (...) {...} 函数文字,同时避免回溯

    建立在找到的答案的基础上如何同时具有函数调用和括号分组而不回溯 我想添加以非 LL 方式实现的函数文字 tokens FN ID LIST stmt expr SEMI SEMI callable fn fn OPAREN opt id l
  • 如何编写一个知道单元格输入数字的单元格魔术?

    有没有办法编写一个知道单元格输入编号的单元格魔术 我所说的 输入数字 是指 在细胞的In 字首 乍一看 似乎IPython core magic cell magic只知道细胞内容 还有什么办法可以超越这个范围吗 此信息由execution
  • 使用桌子+针织乳胶的简单示例

    我正苦苦挣扎tables包 可打包文档中的所有示例都非常复杂 没有一个适合我knitr和乳胶 有人可以帮忙显示一个简单的表格 其中包含一些公式和标题中的多行标签吗 像这样的东西 df lt data frame matrix 1 9 nro
  • 重新启动应用程序时 GIDSignIn.sharedInstance().currentUser nil

    最初 我在检查是否已将数据保存到钥匙串中时遇到问题 我找到了这篇文章并遵循了 BhavinBhadani 的建议 每当您检查 if GIDSignIn sharedInstance hasAuthInKeychain 时 在此之前添加您的登
  • 如何在没有 JFileChooser 的情况下在 Java Swing 中打开文件

    我正在使用 Java Swing GUI 我想向我的项目添加一个用于打开文件的按钮 我不喜欢JFileChooser因为它会打开一个小窗口来浏览目录中的文件 我可以用其他东西代替吗JFileChooser 在 Java Swing 下 我尝
  • 使用 Microsoft Dynamics NAV 2016 中的 Odata Web 服务获取特定集合或实体的 $metadata

    环境 作为集成项目的一部分 我需要一个 PHP 网站能够读取和写入 Microsoft Dynamics NAV 2016 的 Odata 服务 Microsoft Dynamics NAV 2016 使用Odata v3 标准 上下文 现
  • 在 Access 中将分隔条目拆分为新行

    有人给了我一个订单电子表格 每个订单的唯一值是采购订单 给我电子表格的人很懒 决定使用具有多个采购订单的订单 但他们只是用 分隔它们相同的信息 例如我的桌子看起来像这样 PO Vendor State 123456 234567 Bob K
  • 如何克隆或冻结 Android 数据库游标

    我有一个自定义光标适配器 我想将光标的每一 行 传递回应用程序 通过正在运行的注册回调 我知道我可以读取光标中的每个字段并手动执行此操作 但我只想将光标的 冻结克隆 传回 读取适配器中的字段需要我制作此类的几个专用版本 理想情况下 我想传回
  • 将样式组件拆分为多个文件,但将它们导出为一个文件

    当我构建应用程序时 我没有意识到我最终会得到一百多个样式组件 因此 我将它们放在同一个文件中 如下所示 export const StyledTabs styled Tabs display inline flex important ma
  • 无法更改我的 Google 表格插件的版本

    我已经对 Google 表格插件进行了一些错误修复 现在需要发布这些更改 我通过 文件 gt 管理版本 在脚本中创建了一个新版本 当我尝试更新 G Suite Marketplace SDK 中的附加组件时 我得到 Error 抱歉 有问题
  • 在 PHP 中生成带有偏差结果的随机数

    我目前正在为我维护的网站编写积分系统 因此我想每天奖励我的用户随机数量的积分 这就是我的想法 0 25 has a 75 chance 26 51 has a 13 chance 52 76 has a 6 chance 77 115 ha
  • 使用黑名单边缘增强过滤图

    我想在具有黑名单边缘的图上运行 Dijkstra 即我想计算不使用这些链接的最短路径 目前 我首先定义过滤器 typedef std pair
  • 如何指定设置为插入符号的验证保留

    我真的很喜欢至少在建模的早期阶段使用插入符号 特别是因为它非常容易使用重采样方法 然而 我正在研究一个模型 其中训练集通过半监督自我训练添加了相当数量的案例 因此我的交叉验证结果确实存在偏差 我的解决方案是使用验证集来衡量模型性能 但我看不