Questions tagged «caret»

Caret是一个R软件包,其中包含一组试图简化创建预测模型的过程的函数。

1
GBM软件包与使用GBM的插入符
我一直在使用进行模型调整caret,但随后使用该gbm软件包重新运行模型。据我了解,caret程序包使用gbm的输出应相同。然而,data(iris)使用RMSE和R ^ 2作为评估指标,使用进行的快速测试显示模型中的差异约为5%。我想使用来找到最佳模型性能,caret但要重新运行gbm以利用部分依赖图。下面的代码具有可重复性。 我的问题是: 1)为什么即使这两个软件包应该相同,我仍会看到这两个软件包之间的差异(我知道它们是随机的,但5%的差异还是很大的,尤其是当我没有使用iris建模时使用的很好的数据集时) 。 2)同时使用这两个软件包有什么优点或缺点? 3)不相关:使用iris数据集时,最佳interaction.depth值为5,但高于我所阅读的最大值,使用最大值floor(sqrt(ncol(iris)))为2。这是严格的经验法则还是非常灵活? library(caret) library(gbm) library(hydroGOF) library(Metrics) data(iris) # Using caret caretGrid <- expand.grid(interaction.depth=c(1, 3, 5), n.trees = (0:50)*50, shrinkage=c(0.01, 0.001), n.minobsinnode=10) metric <- "RMSE" trainControl <- trainControl(method="cv", number=10) set.seed(99) gbm.caret <- train(Sepal.Length ~ ., data=iris, distribution="gaussian", method="gbm", trControl=trainControl, verbose=FALSE, tuneGrid=caretGrid, metric=metric, bag.fraction=0.75) print(gbm.caret) # …

1
如何找到GBM预测间隔
我正在使用插入符号包处理GBM模型,并希望找到一种方法来解决我的预测数据的预测间隔。我进行了广泛的搜索,但只提出了一些想法来找到随机森林的预测间隔。任何帮助/ R代码将不胜感激!

1
使用带有插入符号包的RandomForest的FinalModel进行预测之前是否需要进行预处理?
我使用插入符号包训练10x10CV的randomForest对象。 library(caret) tc <- trainControl("repeatedcv", number=10, repeats=10, classProbs=TRUE, savePred=T) RFFit <- train(Defect ~., data=trainingSet, method="rf", trControl=tc, preProc=c("center", "scale")) 之后,我在testSet上测试randomForest(新数据) RF.testSet$Prediction <- predict(RFFit, newdata=testSet) 混乱矩阵向我展示了该模型还不错。 confusionMatrix(data=RF.testSet$Prediction, RF.testSet$Defect) Reference Prediction 0 1 0 886 179 1 53 126 Accuracy : 0.8135 95% CI : (0.7907, 0.8348) No Information Rate : 0.7548 P-Value …

2
随机森林的特征选择和带有尖号的参数调整
我有具有数千个功能的数据,并且我想进行递归功能选择(RFE)以删除无信息的功能。我使用插入符号和RFE 进行此操作。但是,我开始思考,如果我想获得最佳的回归拟合(例如,随机森林),什么时候应该执行参数调整(mtry针对RF)?也就是说,据我所知,插入符号使用固定的mtry在不同的特征子集上反复训练RF。我想mtry应该在特征选择完成后找到最佳mtry值,但是插入符号使用的值会影响特征的所选子集吗?使用插入符号低mtry的速度要快得多,当然。 希望有人可以向我解释。

1
R / mgcv:为什么te()和ti()张量积产生不同的曲面?
的mgcv软件包R具有两个功能,用于拟合张量积相互作用:te()和ti()。我了解两者之间的基本分工(拟合非线性交互与将这种交互分解为主要效果和交互)。我不明白的是为什么te(x1, x2)而ti(x1) + ti(x2) + ti(x1, x2)可能产生(略)不同的结果。 MWE(改编自?ti): require(mgcv) test1 <- function(x,z,sx=0.3,sz=0.4) { x <- x*20 (pi**sx*sz)*(1.2*exp(-(x-0.2)^2/sx^2-(z-0.3)^2/sz^2)+ 0.8*exp(-(x-0.7)^2/sx^2-(z-0.8)^2/sz^2)) } n <- 500 x <- runif(n)/20;z <- runif(n); xs <- seq(0,1,length=30)/20;zs <- seq(0,1,length=30) pr <- data.frame(x=rep(xs,30),z=rep(zs,rep(30,30))) truth <- matrix(test1(pr$x,pr$z),30,30) f <- test1(x,z) y <- f + rnorm(n)*0.2 par(mfrow = c(2,2)) # …
11 r  gam  mgcv  conditional-probability  mixed-model  references  bayesian  estimation  conditional-probability  machine-learning  optimization  gradient-descent  r  hypothesis-testing  wilcoxon-mann-whitney  time-series  bayesian  inference  change-point  time-series  anova  repeated-measures  statistical-significance  bayesian  contingency-tables  regression  prediction  quantiles  classification  auc  k-means  scikit-learn  regression  spatial  circular-statistics  t-test  effect-size  cohens-d  r  cross-validation  feature-selection  caret  machine-learning  modeling  python  optimization  frequentist  correlation  sample-size  normalization  group-differences  heteroscedasticity  independence  generalized-least-squares  lme4-nlme  references  mcmc  metropolis-hastings  optimization  r  logistic  feature-selection  separation  clustering  k-means  normal-distribution  gaussian-mixture  kullback-leibler  java  spark-mllib  data-visualization  categorical-data  barplot  hypothesis-testing  statistical-significance  chi-squared  type-i-and-ii-errors  pca  scikit-learn  conditional-expectation  statistical-significance  meta-analysis  intuition  r  time-series  multivariate-analysis  garch  machine-learning  classification  data-mining  missing-data  cart  regression  cross-validation  matrix-decomposition  categorical-data  repeated-measures  chi-squared  assumptions  contingency-tables  prediction  binary-data  trend  test-for-trend  matrix-inverse  anova  categorical-data  regression-coefficients  standard-error  r  distributions  exponential  interarrival-time  copula  log-likelihood  time-series  forecasting  prediction-interval  mean  standard-error  meta-analysis  meta-regression  network-meta-analysis  systematic-review  normal-distribution  multiple-regression  generalized-linear-model  poisson-distribution  poisson-regression  r  sas  cohens-kappa 

2
插入符varImp用于randomForest模型
我在了解该varImp函数如何对带有caret包的randomForest模型起作用时遇到了麻烦。在下面的示例中,功能var3使用插入符号varImp函数的重要性为零,但基础的randomForest最终模型对功能var3的重要性为非零。为什么会这样呢? require(randomForest) require(caret) rf <- train(x, y, method = "rf", trControl = trainControl(method = "oob"), importance = TRUE, verbose = TRUE, tuneGrid = data.frame(mtry = num.predictors) ) fm <- rf$finalModel > varImp(f) rf variable importance Overall var1 100.00 var2 80.14 var3 0.00 > importance(fm) %IncMSE IncNodePurity var2 872.7935 40505276 var1 …
10 r  caret  random-forest 

1
R / caret:训练和测试集与交叉验证?
这可能是一个愚蠢的问题,但是当使用插入符号生成模型并使用诸如LOOCV或(甚至更重要)时LGOCV,如果这实际上是交叉验证步骤的话,将数据分为训练集和测试集有什么好处?反正吗? 我阅读了一些相关的问题,他们建议一些交叉验证方法(例如,在插入符号处描述的方法)是出于特征选择的目的。但就我而言,我使用的是randomForest(method = "rf")和kernlab(method = svmRadial),它们在试图清除预测变量的组中未列出。 所以,我的问题是,如果我使用类似的方法cross_val <- trainControl(method = "LGOCV", p = 0.8),那与对80%的数据进行训练,对其余20%的数据进行测试所得模型并反复进行以了解模型是否有效? 如果是这样,是否有必要将我的数据分为训练/测试集? PS:我在根据经验生成的DOE原型进行模型处理时会提出一些要求(想想一些硬货,我们会调整输入,然后使用测试方法来测量该原型的各种属性)。 因此,我没有庞大的数据集,可以使用许多重叠的预测变量级别进行建模-我们经常在每个DOE兴趣点进行一次试验,因为在这种情况下,数据生成非常昂贵。因此,我想使用所有可能的数据建立一个准确的模型,但我想在这里检查一下,我没有遗漏明显的东西,也没有通过拆分来制作一个不好的模型。 编辑:针对@topepo的问题,我正在根据调整配方的化学输入来对化合物的物理测量属性进行建模。我无法讨论我的实际应用,但是我将基于配制内部乳胶​​漆组成一个示例。我正在运行设计的实验,我们将4-5种化学物质混合在一起,也许与%的固体混合,并花费一定的时间加热聚合物溶液以调节聚合度。 然后,我们可以测量流变性,分子量,油漆涂层的硬度,耐水性等。 我们有几个变量的不错的复制品,但是从每个DOE级别完全相同的意义上讲,真正复制品很少。总数据集为〜80个观察值,也许4-5是精确重复。我们已经进行了15种不同的测试,也许对每个观察都进行了5-6次测试。对于25-50%的数据,存在一些响应。 从这里开始,我们想对输出的属性上的7个预测变量的效果进行建模,然后进行优化以定位最有可能提供所需属性的新设计空间。 (因此,请在这里提出我的问题。一旦我拥有训练有素的模型,最好进行“反向”操作并输入所需的响应,以在可能的输入水平上获得最佳的猜测,然后再尝试)。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.