标签: r-caret

从插入符号模型中收集折叠后的预测

我想使用来自插入符号模型的折叠预测来训练包含一些原始预测变量的第二阶段模型.我可以收集如下的折叠预测:

#Load Data
set.seed(1)
library(caret)
library(mlbench)
data(BostonHousing)

#Build Model (see ?train)
rpartFit <- train(medv ~ . + rm:lstat, data = BostonHousing, method="rpart",
               trControl=trainControl(method='cv', number=folds, 
                                        savePredictions=TRUE))

#Collect out-of-fold predictions
out_of_fold <- rpartFit$pred
bestCP <- rpartFit$bestTune[,'.cp']
out_of_fold <- out_of_fold[out_of_fold$.cp==bestCP,]
Run Code Online (Sandbox Code Playgroud)

这很好,但它们的顺序错误:

> all.equal(out_of_fold$obs, BostonHousing$medv)
[1] "Mean relative difference: 0.4521906"
Run Code Online (Sandbox Code Playgroud)

我知道该train对象返回一个列表,其中列出了用于训练每个折叠的索引:

> str(rpartFit$control$index)
List of 10
 $ Fold01: int [1:457] 1 2 3 4 5 6 7 8 9 10 ...
 $ Fold02: int [1:454] 2 3 4 8 10 11 12 …
Run Code Online (Sandbox Code Playgroud)

r cross-validation r-caret

10
推荐指数
1
解决办法
2429
查看次数

如何从R中的confusionMatrix检索整体精度值?

在R插入库中,如果我得到如下的混淆矩阵,是否有办法检索整体精度0.992?我无法获得这个单值,因为我需要存储这个值并将其用于以后的处理.这有可能吗?

 Prediction    A    B    C    D    E
          A 1114    2    0    0    0
          B    9  745    5    0    0
          C    0    6  674    4    0
          D    0    0    3  640    0
          E    0    0    2    1  718
Run Code Online (Sandbox Code Playgroud)

总体统计

            Accuracy : 0.992         
              95% CI : (0.989, 0.994)
 No Information Rate : 0.286         
 P-Value [Acc > NIR] : <2e-16        

               Kappa : 0.99          
Run Code Online (Sandbox Code Playgroud)

Mcnemar的测试P值:NA

按班级统计:

                     Class: A Class: B Class: C Class: D Class: E
 Sensitivity             0.992    0.989    0.985    0.992    1.000
 Specificity             0.999 …
Run Code Online (Sandbox Code Playgroud)

r confusion-matrix r-caret

10
推荐指数
1
解决办法
2万
查看次数

在使用公式使用插入符号train()训练的randomForest对象上使用predict()时出错

在64位Linux机器上使用R 3.2.0 with caret 6.0-41和randomForest 4.6-10.

当尝试使用公式对使用包中的函数训练predict()randomForest对象使用该方法时,该函数返回错误.当通过训练和/或使用和而不是公式,这一切都顺利进行.train()caretrandomForest()x=y=

这是一个工作示例:

library(randomForest)
library(caret)

data(imports85)
imp85     <- imports85[, c("stroke", "price", "fuelType", "numOfDoors")]
imp85     <- imp85[complete.cases(imp85), ]
imp85[]   <- lapply(imp85, function(x) if (is.factor(x)) x[,drop=TRUE] else x) ## Drop empty levels for factors.

modRf1  <- randomForest(numOfDoors~., data=imp85)
caretRf <- train( numOfDoors~., data=imp85, method = "rf" )
modRf2  <- caretRf$finalModel
modRf3  <- randomForest(x=imp85[,c("stroke", "price", "fuelType")], y=imp85[, "numOfDoors"])
caretRf <- train(x=imp85[,c("stroke", "price", "fuelType")], y=imp85[, "numOfDoors"], method = "rf")
modRf4 …
Run Code Online (Sandbox Code Playgroud)

r formula predict random-forest r-caret

10
推荐指数
1
解决办法
1万
查看次数

R插入符号/如何在rfe工作中对列车进行交叉验证

rfecaret库中的功能有疑问.在插入符号主页链接上,他们提供以下RFE算法: 算法

对于这个例子,我使用rfe具有3倍交叉验证的功能和具有线性SVM和5倍交叉验证的列车功能.

library(kernlab)
library(caret)
data(iris)

# parameters for the tune function, used for fitting the svm
trControl <- trainControl(method = "cv", number = 5)

# parameters for the RFE function
rfeControl <- rfeControl(functions = caretFuncs, method = "cv",
                     number= 4, verbose = FALSE )

rf1 <- rfe(as.matrix(iris[,1:4]), as.factor(iris[,5]) ,sizes = c( 2,3) ,  
           rfeControl = rfeControl, trControl = trControl, method = "svmLinear")
Run Code Online (Sandbox Code Playgroud)
  • 从上面的算法我假设该算法可以使用2个嵌套的交叉验证:
    1. rfe 将数据(150个样本)分成3倍
    2. train功能将在训练集(100个样本)上运行,具有5倍交叉验证以调整模型参数 - …

r cross-validation rfe r-caret

9
推荐指数
1
解决办法
3166
查看次数

使用插入包来找到GBM的最佳参数

我正在使用R GBM软件包来增强对尺寸为10,000 X 932的一些生物数据进行回归,我想知道什么是GBM软件包的最佳参数设置(n.trees,shrinkage,interaction.depth和n. minobsinnode)当我在网上搜索时,我发现R上的CARET包可以找到这样的参数设置.但是,我在使用带有GBM包的Caret包时遇到了困难,所以我只想知道如何使用插入符找到前面提到的参数的最佳组合?我知道这似乎是一个非常典型的问题,但是我读了插入手册并且仍然难以将插入符号与gbm集成,特别是因为我对这两个包都很新

optimization r gbm r-caret

9
推荐指数
2
解决办法
2万
查看次数

多核中的R caret nnet包

我们是否可以通过利用foreach包,nnet和插入包来使用多核并行训练神经网络模型?

我只是并行看到randomforest实现.神经网络是否可行.

我对插入符号的列车功能特别感兴趣,它可以对网格搜索最佳隐藏层和衰减大小.这需要很长时间才能在单核上运行.

任何帮助表示赞赏.

parallel-processing r r-caret

9
推荐指数
1
解决办法
5240
查看次数

在R中使用插入符训练后如何计算ROC下的ROC和AUC?

我使用了caret包的train函数和10倍交叉验证.我还设置了某个类的概率预测类classProbs = TRUEtrControl,如下所示:

myTrainingControl <- trainControl(method = "cv", 
                              number = 10, 
                              savePredictions = TRUE, 
                              classProbs = TRUE, 
                              verboseIter = TRUE)

randomForestFit = train(x = input[3:154], 
                        y = as.factor(input$Target), 
                        method = "rf", 
                        trControl = myTrainingControl, 
                        preProcess = c("center","scale"), 
                        ntree = 50)
Run Code Online (Sandbox Code Playgroud)

我得到的输出预测如下.

  pred obs    0    1 rowIndex mtry Resample

1    0   1 0.52 0.48       28   12   Fold01
2    0   0 0.58 0.42       43   12   Fold01
3    0   1 0.58 0.42       51   12   Fold01 …
Run Code Online (Sandbox Code Playgroud)

r random-forest roc r-caret

9
推荐指数
2
解决办法
4万
查看次数

使用插入包应用k-fold交叉验证模型

首先我要说的是,我已经阅读了很多关于交叉验证的帖子,似乎有很多混乱.我的理解就是这样:

  1. 执行k倍交叉验证,即10倍,以了解10倍的平均误差.
  2. 如果可接受,则在完整数据集上训练模型.

我正在尝试使用rpartR 构建一个决策树并利用该caret包.以下是我正在使用的代码.

# load libraries
library(caret)
library(rpart)

# define training control
train_control<- trainControl(method="cv", number=10)

# train the model 
model<- train(resp~., data=mydat, trControl=train_control, method="rpart")

# make predictions
predictions<- predict(model,mydat)

# append predictions
mydat<- cbind(mydat,predictions)

# summarize results
confusionMatrix<- confusionMatrix(mydat$predictions,mydat$resp)
Run Code Online (Sandbox Code Playgroud)

我有一个关于插入火车应用的问题.我已经阅读了插入符号列表部分的简短介绍,其中说明了在重新采样过程中确定了"最佳参数集".

在我的例子中,我是否正确编码了?我是否需要rpart在代码中定义参数或我的代码是否足够?

r cross-validation rpart r-caret

9
推荐指数
2
解决办法
4万
查看次数

插入包:列车功能中的分层交叉验证

有没有办法在使用列车功能将模型拟合到大的不平衡数据集时执行分层交叉验证?我知道可以直接进行k折交叉验证,但我的类别非常不平衡.我已经看过关于这个主题的讨论,但没有真正明确的答案.

提前致谢.

cross-validation r-caret

9
推荐指数
1
解决办法
3975
查看次数

从R中的交叉验证(训练)数据绘制ROC曲线

我想知道是否有一种方法可以根据caret包装生成的SVM-RFE模型的交叉验证数据绘制平均ROC曲线.

我的结果是:

Recursive feature selection

Outer resampling method: Cross-Validated (10 fold, repeated 5 times) 

Resampling performance over subset size:

 Variables    ROC   Sens   Spec Accuracy  Kappa  ROCSD SensSD SpecSD AccuracySD KappaSD Selected
         1 0.6911 0.0000 1.0000   0.5900 0.0000 0.2186 0.0000 0.0000     0.0303  0.0000         
         2 0.7600 0.3700 0.8067   0.6280 0.1807 0.1883 0.3182 0.2139     0.1464  0.3295         
         3 0.7267 0.4233 0.8667   0.6873 0.3012 0.2020 0.3216 0.1905     0.1516  0.3447         
         4 0.6989 0.3867 0.8600   0.6680 0.2551 0.2130 0.3184 0.1793     0.1458  0.3336         
         5 0.7000 0.3367 …
Run Code Online (Sandbox Code Playgroud)

r roc auc r-caret

9
推荐指数
1
解决办法
7587
查看次数