标签: r-caret

R caret/rfe/bayesglm功能选择

我正在使用bayesglm逻辑回归问题.它是150行和2000个变量的数据集.我试图做变量选择,通常看glmnetcaret::rfe.然而,没有一种方法bayesglm.

反正有手动定义方法rfe吗?

r rfe bayesglm r-caret

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

在插入符号的交叉验证过程中计算模型校准?

第一次在这里发布海报,为新秀错误道歉

我使用R中的插入包进行分类.我在训练集上使用重复的10倍交叉验证来拟合一些模型(GBM,线性SVM,NB,LDA).使用自定义trainControl,插入符号甚至可以为我提供一系列模型性能指标,如ROC,Spec/sens,Kappa,测试折叠的准确度.真的很棒.我希望还有一个指标:模型校准的一些衡量标准.

我注意到插入符号中有一个功能可以创建校准图来估计数据部分模型的一致性.在交叉验证的模型构建过程中,是否可以为每个测试折叠计算插入符号?或者它只能应用于我们正在进行预测的一些新的数据吗?

对于某些情况,目前我有这样的事情:

fitControl <- trainControl(method = "repeatedcv", repeats=2, number = 10, classProbs = TRUE, summaryFunction = custom.summary)
gbmGrid <-  expand.grid(.interaction.depth = c(1,2,3),.n.trees = seq(100,800,by=100),.shrinkage = c(0.01))
gbmModel <- train(y= train_target, x = data.frame(t_train_predictors),
              method = "gbm",
              trControl = fitControl,
              tuneGrid = gbmGrid,
              verbose = FALSE)
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我使用~25个数字预测器,N = 2,200,预测一个两级因子.

非常感谢您的任何帮助/建议.亚当

r classification machine-learning calibration r-caret

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

R的插入符号包。保留哪些样本?

我正在使用插入符号包来尝试许多分类方法。目前,我想使用离开小组出差交叉验证方法(我知道有更好的方法)。

这是我正在使用的火车控件:

train_control <- trainControl(method = "LGOCV", p = .7, number = 1)
Run Code Online (Sandbox Code Playgroud)

我的问题是当我通过火车功能应用时,例如

model <- train(Type ~ ., data=training, method = "rpart", trControl = train_control)
Run Code Online (Sandbox Code Playgroud)

如何获取用于训练的样本和小组中被保留的样本?

谢谢

statistics r r-caret

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

种子对象,用于在插入符号中并行操作的可重现结果

我正在尝试使用代码在插入符号中完全可重现的并行模型,但不了解如何设置种子对象中的向量的大小.对于gbm,我有4个调整参数,共有11个不同的级别,我的调优网格中有54行.如果我指定任何值<18作为下面"for(i in 1:10)"行中的最后一个值,我会收到一个错误:"坏种子:种子对象应该是长度为11的列表,其中包含10个整数向量大小为18,最后一个列表元素有一个整数." 为什么18?对于> 18(例如54)的值,它也会运行没有错误 - 为什么?非常感谢您的帮助.以下是基于http://topepo.github.io/caret/training.html,添加了一些内容.

library(mlbench)
data(Sonar)
str(Sonar[, 1:10])
library(caret)
library(doParallel)

set.seed(998)
inTraining <- createDataPartition(Sonar$Class, p = .75, list = FALSE)
training <- Sonar[ inTraining,]
testing  <- Sonar[-inTraining,]

grid <- expand.grid(n.trees = seq(50,150,by=50), interaction.depth = seq(1,3,by=1),
  shrinkage = seq(.09,.11,by=.01),n.minobsinnode=seq(8,10,by=2)) 

# set seed to run fully reproducible model in parallel mode using caret          
set.seed(825)
seeds <- vector(mode = "list", length = 11) # length is = (n_repeats*nresampling)+1
for(i in 1:10) seeds[[i]]<- sample.int(n=1000, 11) # ...the number of …
Run Code Online (Sandbox Code Playgroud)

r r-caret

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

从最佳R Caret模型中提取胜出的RMSE

我使用插入符号包创建nnet模型,并使用以下代码提取预测值:

nnet<-predict(my_model, newdata = my_new_data) 
nnet
[1] -0.1468207
Run Code Online (Sandbox Code Playgroud)

我还创建以下输出,从而可以查看最佳模型参数,如下所示:

Resampling results across tuning parameters:

  size  decay  RMSE        Rsquared   RMSE SD      Rsquared SD
  10    0.001  0.01867841  0.4789708  0.002538599  0.12778927 
  10    0.100  0.02349088  0.1233067  0.001859455  0.10188046 
  12    0.001  0.01826047  0.5059824  0.002630588  0.12962511 
  12    0.100  0.02348553  0.1238252  0.001890646  0.09851303 
  15    0.001  0.01795350  0.5289120  0.003021449  0.13908835 
  15    0.100  0.02318972  0.1429446  0.001932714  0.11156927 

RMSE was used to select the optimal model using  the smallest value.
The final values used for the model were size = …
Run Code Online (Sandbox Code Playgroud)

r r-caret

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

设置R~Caret包中的树木数量

我目前想知道使用Caret包中的随机森林算法设置10棵树的方法,并希望可以获得帮助:

下面是我的语法:

tr <- trainControl(method = "repeatedcv",number = 20)

fit<-train(y ~.,method="rf",data=example, trControl=tr)
Run Code Online (Sandbox Code Playgroud)

关于http://www.inside-r.org/packages/cran/randomForest/docs/randomForest的研究

在使用n=10randomForest()n.trees在使用情况下设置为参数gbm可能仅仅有帮助,但我对该Caret包感兴趣.

任何反馈都将非常感激.

谢谢

tree r classification random-forest r-caret

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

插入符号中preProcess的数据插补返回的观察结果少于预期

我想知道为什么用于插入数据集缺失值的R's插入包中的preProcess函数返回的观察数量少于原始数据集中的数量?
例如:

library(caret)

t <- data.frame(seq_len(100000),seq_len(100000))

for (i in 1:100000) 
{
if (i %% 10 == 0) t[i,1] <- NA; 
if (i %% 100 == 0) t[i,2] <- NA 
}

preProcValues <- preProcess(t, method = c("knnImpute"))
Run Code Online (Sandbox Code Playgroud)

preProcValues仅包含2个变量的90000个观测值,而预期值为100000个.

r r-caret

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

在Caret中使用火车时,"nrow(x)== n不为TRUE"; 已经设定为因素

我正在使用此处找到的数据集:http://archive.ics.uci.edu/ml/datasets/Qualitative_Bankruptcy

运行代码时:库(插入符号)

bank <- read.csv("Qualitative_Bankruptcy.data.txt", header=FALSE, na.strings = "?", 
             strip.white = TRUE)

x=bank[1:6]
y=bank[7]

bank.knn <- train(x, y, method= "knn", trControl = trainControl(method = "cv"))
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:错误:nrow(x)== n不为TRUE

我发现的唯一例子是Error:在Caret中使用Train时,nrow(x)== n不为TRUE ; 我的Y已经是一个有两个类的因子向量,所有的X特征都是因子.我尝试在X和Y上使用as.matrix和as.data.frame但没有成功.

nrow(x)等于250,但我不确定n在包中指的是什么.

r r-caret

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

使用R中的文本分类和大稀疏矩阵

我正在研究一个文本多类分类项目,我需要构建文档/术语矩阵,并用R语言进行训练和测试.

我已经有了不适合R中基矩阵的有限维度的数据集,并且需要构建大的稀疏矩阵才能对例如100k的推文进行分类.我正在使用quanteda软件包,因为它现在比包tm更有用和可靠,其中使用字典创建DocumentTermMatrix,使得过程难以置信地使用小数据集.目前,正如我所说的,我使用quanteda来构建等效的Document Term Matrix容器,稍后我将其转换为data.frame来执行培训.

我想知道是否有办法建立这么大的矩阵.我一直在阅读有关的bigmemory包,允许这种容器的,但我不知道它会与插入符号为后来的分类.总的来说,我想了解这个问题并构建一个解决方法,以便能够处理更大的数据集,因为RAM不是(大)问题(32GB),但我正试图找到一种方法来做到这一点,我觉得完全失去了关于它.

r classification text-mining r-caret quanteda

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

train()函数的插入符号中的值缺失错误

我是使用R的新手,正在尝试构建决策树。我已经使用了包partyctreerpart为rpart包。

但是,由于我需要对模型进行交叉验证,因此我开始使用该caret包,因为我可以通过使用函数`train()和我要使用的方法来做到这一点。

library(caret)
cvCtrl <- trainControl(method = "repeatedcv", repeats = 2,
                   classProbs = TRUE)

ctree.installed<- train(TARGET ~ OPENING_BALANCE+ MONTHS_SINCE_EXPEDITION+
                    RS_DESC+SAP_STATUS+ ACTIVATION_STATUS+ ROTUL_STATUS+ 
                    SIM_STATUS+ RATE_PLAN_SEGMENT_NORM,
                    data=trainSet,
                    method = "ctree",
                    trControl = cvCtrl)
Run Code Online (Sandbox Code Playgroud)

但是,我的变量OPENING_BALANCEMONTHS_SINCE_EXPEDITION缺少一些值,因此该函数无法正常工作。我不明白为什么会这样,因为我正在尝试构建一棵树。当我使用其他软件包时,不会发生此问题。

这是错误:

Error in na.fail.default(list(TARGET = c(3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,  : 
missing values in object
Run Code Online (Sandbox Code Playgroud)

我不想使用,na.action=pass因为我真的不想丢弃这些观察结果。

难道我做错了什么?为什么会这样呢?您对此有什么建议吗?

r decision-tree missing-data rpart r-caret

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