- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用 caret::train
通过 repeatedcv
过程训练随机森林模型。我的数据有一些缺失值,因此我想在训练函数中使用 preProcess="bagImpute"
选项。我不想在train之外使用preProcess函数,因为我想为repeatedcv过程的每次迭代bagImpute
我的数据。但是,当我尝试执行此操作时,会引发错误:
Error in { : task 1 failed - "'n' must be a positive integer >= 'x'"
In addition: There were 50 or more warnings (use warnings() to see the first 50)
> warnings()
Warning messages:
1: In eval(expr, envir, enclos) :
model fit failed for Fold01.Rep01: mtry=2 Error in na.fail.default(structure(list(Sepal.Length = c(5.1, 4.9, 4.7, :
missing values in object
下面是使用虹膜数据的最小可重现示例。我在 Minkoo 的网站上借用了数据集准备的初始代码:http://mkseo.pe.kr/stats/?p=719 。非常感谢明科!
library(caret)
data(iris)
inTrain <- createDataPartition(iris$Species, p=0.8, list=FALSE)
training <- iris[inTrain, ]
fillInNa <- function(d) {
naCount <- NROW(d) * 0.1
for (i in sample(NROW(d), naCount)) {
d[i, sample(4, 1)] <- NA
}
return(d)
}
training <- fillInNa(training)
tc<-trainControl("repeatedcv", repeats=30, selectionFunction="oneSE",returnData=T,
classProbs = T,num=10, preProcOptions ="bagImpute",
summaryFunction=multiClassSummary, savePredictions = T)
training.x<-training[,1:4]
training.y<-training[,5]
rfTri_Bag<- train(training.x,training.y,
method="rf",
trControl=tc,
preProcess= c("bagImpute"),
tuneLength=10,
control=rpart.control(usesurrogate=0),
ntree=250,
proximity=T)
编辑:这是我的 session 信息:
R version 3.3.1 (2016-06-21)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_UnitedStates.1252 LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C LC_TIME=English_United States.1252
attached base packages:
[1] stats4 grid stats graphics grDevices utils datasets methods base
other attached packages:
[1] ipred_0.9-5 e1071_1.6-7 latticeExtra_0.6-28 RColorBrewer_1.1-2 randomForest_4.6-12 caret_6.0-71
[7] rpart_4.1-10 party_1.0-25 strucchange_1.5-1 sandwich_2.3-4 zoo_1.7-13 modeltools_0.2-21
[13] mvtnorm_1.0-5 gdata_2.17.0 DMwR_0.4.1 pROC_1.8 Metrics_0.1.1 raster_2.5-8
[19] sp_1.2-3 gridExtra_2.2.1 readr_1.0.0 tidyr_0.6.0 tibble_1.2 tidyverse_1.0.0
[25] MuMIn_1.15.6 merTools_0.2.2 devtools_1.12.0 plyr_1.8.4 arm_1.9-1 lattice_0.20-33
[31] MASS_7.3-45 xtable_1.8-2 lmerTest_2.0-32 lme4_1.1-12 Matrix_1.2-6 xlsx_0.5.7
[37] xlsxjars_0.6.1 rJava_0.9-8 AICcmodavg_2.0-4 pander_0.6.0 ggplot2_2.1.0 purrr_0.2.2
[43] dplyr_0.5.0 broom_0.4.1
loaded via a namespace (and not attached):
[1] TH.data_1.0-7 VGAM_1.0-2 minqa_1.2.4 colorspace_1.2-6 class_7.3-14 MatrixModels_0.4-1
[7] DT_0.2 prodlim_1.5.7 coin_1.1-2 codetools_0.2-14 splines_3.3.1 mnormt_1.5-4
[13] knitr_1.14 Formula_1.2-1 nloptr_1.0.4 pbkrtest_0.4-6 cluster_2.0.4 shiny_0.14
[19] compiler_3.3.1 httr_1.2.1 assertthat_0.1 lazyeval_0.2.0 acepack_1.3-3.3 htmltools_0.3.5
[25] quantreg_5.29 tools_3.3.1 coda_0.18-1 gtable_0.2.0 reshape2_1.4.1 Rcpp_0.12.7
[31] nlme_3.1-128 iterators_1.0.8 psych_1.6.6 stringr_1.1.0 mime_0.5 gtools_3.5.0
[37] scales_0.4.0 parallel_3.3.1 SparseM_1.7 yaml_2.1.13 quantmod_0.4-6 curl_1.2
[43] memoise_1.0.0 reshape_0.8.5 stringi_1.1.1 foreach_1.4.3 blme_1.0-4 TTR_0.23-1
[49] caTools_1.17.1 boot_1.3-18 lava_1.4.4 chron_2.3-47 bitops_1.0-6 evaluate_0.9
[55] ROCR_1.0-7 htmlwidgets_0.7 labeling_0.3 magrittr_1.5 R6_2.1.3 gplots_3.0.1
[61] Hmisc_3.17-4 multcomp_1.4-6 DBI_0.5 foreign_0.8-66 withr_1.0.2 mgcv_1.8-12
[67] xts_0.9-7 survival_2.39-4 abind_1.4-5 nnet_7.3-12 car_2.1-3 KernSmooth_2.23-15
[73] rmarkdown_1.0 data.table_1.9.6 git2r_0.15.0 digest_0.6.10 httpuv_1.3.3 munsell_0.4.3
[79] unmarked_0.11-0
编辑2:这里提出了几乎相同的问题https://stackoverflow.com/a/20081954/5617640 ,但给出的答案只是显示如何从 train()
函数外部的 preProcess()
对象进行预测。正如 @Misconstruction 在评论中指出的那样,使用此方法,插补“不包含在 CV 循环内”。 - 我的想法完全正确。
最佳答案
这不是错误消息的解决方案,但有望解决您的问题。
如果您正在运行随机森林模型,它本质上会在某种意义上与袋外 (OOB) 误差估计“交叉验证”自身。使用随机森林时不需要进行任何类型的交叉验证,如这篇伯克利文章中所示:
“在随机森林中,不需要交叉验证或单独的测试集来获得测试集误差的无偏估计。它是在运行过程中内部估计的...... “(https://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm)
关于r - 在 caret::train 函数中使用 bagImpute 预处理时出现缺失值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39619913/
当我同时定义两条指令时,如何做到这一点,我会收到编译错误? 在这里我想要错误 #define ENG #define POL #if defined POL #if defined ENG 这里没有
我有actix-web,并且调试困难,因为记录器仅在最后写入,如果出现故障,则根本不会写入。RUST_LOG=actix_web=debug,actix_server=debug let server
对于以下有关数据预处理聚类的问题,我很困惑,在互联网上找不到令人信服的答案。 根据Python documentation ,当我们使用 sckit learn 库中的内置命令进行预处理时,假设数据被
我无法理解预处理器的工作原理以及 ## 在这个特定示例中代表什么 #include #define TEMP_KEY(type,Key) (TEMP_##type | Key) enum TEMPK
我一直在尝试对 Kaggle 上的 Sentiment140 数据库进行一些预处理:https://www.kaggle.com/kazanova/sentiment140 我使用的代码是这样的: i
例如,考虑在 Keras 中微调 Resnet50 模型。 For example here : from keras.applications.resnet50 import ResNet50 fr
我想预处理 JavaScript 属性名称以将其转换为 { 'extension': object, 'config': {id: 1} } 到 { extension: object,
我在编译 C 程序时在预处理步骤中遇到错误。 奇怪的是,我可以运行预处理而没有错误或警告: gcc -I/usr/local/libpng-1.6.24/include -Wall -std=c99
我很好奇 GCC 预处理步骤的输出。更准确地说,以下两行的目的是什么: # 1 "" # 1 "" 我知道格式是 但我不明白本节中可能会出现什么类型的数据。它的目的是什么? 谢谢! 最佳答案 目的是
我需要能够预处理多个 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法开始处插入生成的代码,在任何现有代码之前。但是,我在检测方法的打开时遇到问题。我最初尝试了一个正则表达式来匹配,但最终出现
如何使用 C 预处理自动生成以下代码模式(访问器)? // Immutable accessor. const auto& member1 () const { return _member1;
我正在考虑分两个阶段实现 C 预处理器,其中第一阶段将源文件转换为预处理标记数组。这对于简单性和性能都有好处,因为当项目中的多个文件包含头文件时,不需要重做标记化工作。 障碍: #define f(x
有没有办法“预处理”C99 样式的二合字母以获得 C 文件(或 .i 预处理源),使得生成的文件不包含任何二合字母? 例如,给出以下源代码: %:define N 5 int main() = ;
如何使用 browserify 预处理函数调用? 在一个大的 js 文件中,有时我需要将一个 JSON 对象传递给一个变量,但这个 JSON 对象只能通过函数调用创建: var myvar = Rac
我正在对电视镜头中的字幕应用 OCR。 (我正在使用带 C++ 的 Tesseact 3.x)我正在尝试拆分文本和背景部分作为 OCR 的预处理。 这是原图: 然后,预处理图像: OCR结果为:Sic
我正在开发一个函数,该函数采用众所周知的参数范围,但我不想为每种情况编写许多不同的函数。有没有一种方法可以定义函数的“模式”并使预编译器根据这种模式生成函数? 例子。我有以下功能: int addit
我有一个包含多个脚本标签(接近 20 个)的 html 文件。我决定将所有 JS 文件连接成一个文件,然后缩小连接后的文件。我正在使用 ant 任务来连接并将这样做以进行缩小。我知道我需要提供非串联/
我想在 AngularJS 更新任何 HTML 之前添加一个预处理步骤。为了简单起见,让我们将 hello 的所有实例都加粗。 . 也就是说,如果我们让$scope.text = "hello wor
我正在使用 tess4j 作为来自 JAVA 的 tesseract 的包装器对图像运行一系列 OCR。 ocr 的过程仍然需要大量时间(有时甚至 5 秒),我正在努力加快它的速度。 我正在对图像进行
我一直在阅读有关 Phing 和 Ant 的文章,但我不确定这些工具中哪一个(如果有的话)对这种情况最有用。 它很容易是调试语句等,但我会给你我们的字面扫描。 我们有一个可下载的 PHP 应用程序的免
我是一名优秀的程序员,十分优秀!