小编Sta*_*onk的帖子

下标超出界限(对于randomForest的Caret变量重要性)

我在R训练了一个模型:

require(caret)
require(randomForest)
myControl = trainControl(method='cv',number=5,repeats=2,returnResamp='none')
model2 = train(increaseInAssessedLevel~., data=trainData, method = 'rf', trControl=myControl)
Run Code Online (Sandbox Code Playgroud)

数据集相当大,但模型运行正常.我可以访问它的部件并运行命令,例如:

> model2[3]
$results
  mtry      RMSE  Rsquared      RMSESD RsquaredSD
1    2 0.1901304 0.3342449 0.004586902 0.05089500
2   61 0.1080164 0.6984240 0.006195397 0.04428158
3  120 0.1084201 0.6954841 0.007119253 0.04362755
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

> varImp(model2)
Error in varImp[, "%IncMSE"] : subscript out of bounds
Run Code Online (Sandbox Code Playgroud)

显然应该有一个包装器,但似乎并非如此:(cf:http://www.inside-r.org/packages/cran/caret/docs/varImp)

varImp.randomForest(model2)
Error: could not find function "varImp.randomForest"
Run Code Online (Sandbox Code Playgroud)

但这特别奇怪:

> traceback()
No traceback available 

> sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-redhat-linux-gnu (64-bit) …
Run Code Online (Sandbox Code Playgroud)

r prediction random-forest

15
推荐指数
1
解决办法
6612
查看次数

使用RCurl和SFTP

我是ftpUpload第一次尝试在RCurl包中使用它.

我正在尝试访问的站点使用sftp协议.我已确保安装libcurl版本,其中包括进行安全连接的能力.

SFTP列在RCurl可用的协议中:

curlVersion()$protocols
[1] "dict"   "file"   "ftp"    "ftps"   "gopher"
[6] "http"   "https"  "imap"   "imaps"  "ldap"  
[11] "pop3"   "pop3s"  "rtmp"   "rtsp"   "scp"   
[16] "sftp"   "smtp"   "smtps"  "telnet" "tftp"
Run Code Online (Sandbox Code Playgroud)

然而,当我运行该fileUpload功能时,我得到:

ftpUpload(what = "some_file.png",
          to = "userid:password@sftp://ec2-some-server-ip.compute-1.amazonaws.com")

Error in function (type, msg, asError = TRUE)  : 
Couldn't resolve host 'sftp'
Run Code Online (Sandbox Code Playgroud)

我也尝试在参数化方面打破useridpassword退出,但我得到相同的响应.

任何建议,将不胜感激.

sftp r rcurl

5
推荐指数
1
解决办法
6597
查看次数

如何加快这个_for_循环?使用data.table + lapply?

此代码生成一个类似于我自己的数据集:


df <- c(seq(as.Date("2012-01-01"), as.Date("2012-01-10"), "days"))
  df <- as.data.frame(df)
  df <- rbind(df, df)

id <- c(rep.int(1, 10), rep.int(2, 10))
  id <- as.data.frame(id)

cnt <- c(1:3, 0, 0, 4, 5:8, 0, 1, 0, 1:7)
  cnt <- as.data.frame(cnt)

df <- cbind(id, df, cnt)
  names(df) <- c("id", "date", "cnt")

df$date[df$date == "2012-01-10"] <- "2012-01-20"
Run Code Online (Sandbox Code Playgroud)

我试图找到过去7天内发生的变量'cnt'的总和.有时日期不是连续的(参见前面'df'中的最后一个日期) - 按id.

这是循环:


system.time(

  for(i in 1:length(df$date)) {
    df$cnt.weekly[i] <- 
      sum(df$cnt[which((df$date == df$date[i] - 1) & df$id == df$id[i])],
          df$cnt[which((df$date == df$date[i] - 2) & df$id == df$id[i])], …
Run Code Online (Sandbox Code Playgroud)

r lapply data.table

3
推荐指数
1
解决办法
320
查看次数

标签 统计

r ×3

data.table ×1

lapply ×1

prediction ×1

random-forest ×1

rcurl ×1

sftp ×1