我正在使用该randomForest包进行一些工作,虽然它运行良好,但它可能非常耗时.任何人都有加快速度的建议吗?我正在使用带有双核AMD芯片的Windows 7机箱.我知道关于R不是多线程/处理器,但如果任何并行包(的好奇rmpi,snow,snowfall等)工作过randomForest的东西.谢谢.
编辑:
我正在使用rF进行一些分类工作(0和1).数据有大约8-12个可变列,训练集是10k行的样本,因此它的体积适中但不疯狂.我正在运行500棵树和2只,3只或4只.
编辑2:这是一些输出:
> head(t22)
Id Fail CCUse Age S-TFail DR MonInc #OpenLines L-TFail RE M-TFail Dep
1 1 1 0.7661266 45 2 0.80298213 9120 13 0 6 0 2
2 2 0 0.9571510 40 0 0.12187620 2600 4 0 0 0 1
3 3 0 0.6581801 38 1 0.08511338 3042 2 1 0 0 0
4 4 0 0.2338098 30 0 0.03604968 3300 5 0 0 0 …Run Code Online (Sandbox Code Playgroud) 如果pymc实现Metropolis-Hastings算法从感兴趣的参数中提取后验密度的样本,那么为了决定是否移动到马尔可夫链中的下一个状态,它必须能够评估与后验成比例的事物.所有给定参数值的密度.
后验密度与基于观察数据乘以先前密度的似然函数成比例.
如何在pymc中代表这些?它如何从模型对象计算这些数量?
我想知道是否有人能给我一个关于这种方法的高级描述,或者指出我能找到它的地方.
如果我创建一个线图(例如时间序列)并设置我的轴限制,我希望当点超出轴限制时,该线继续离开图,然后返回到下一点的图中在轴限制范围内.现在,似乎ggplot2将完全放弃点并给我一个"错误:"消息.
仍在努力与R,尤其是错误处理:
如果我使用:
result <- try(sqlSave(ch,df,tablename="tblTest"))
Run Code Online (Sandbox Code Playgroud)
我可以用:
if (class(result) != "try-error")
Run Code Online (Sandbox Code Playgroud)
检查是否出了问题.没问题.
但是如果我try与一个函数结合使用它并不像我预期的那样工作:
result <- try(ch<-odbcConnect("TEST"))
Run Code Online (Sandbox Code Playgroud)
给出"-1"表示result和"整数"表示class(result)
所以我应该使用
ch<-odbcConnect("TEST")
if (ch != -1)
Run Code Online (Sandbox Code Playgroud)
并geterrmessage()用于错误消息?
我正在做R中的逻辑回归.有人可以澄清运行这两行的区别是什么?
1. glm(Response ~ Temperature, data=temp,
family = binomial(link="logit"))
2. glm(cbind(Response, n - Response) ~ Temperature,
data=temp, family =binomial, Ntrials=n)
Run Code Online (Sandbox Code Playgroud)
数据如下所示:(注意:响应是二进制.0 =死1 =不死)
Response Temperature
0 24.61
1 39.61
1 39.50
0 22.71
0 21.61
1 39.70
1 36.73
1 33.32
0 21.73
1 49.61
Run Code Online (Sandbox Code Playgroud) 我在R中制作回归树时遇到问题.我有一个包含17个属性的数据框
library(rpart)
rt.model <- rpart(razlika ~ ., learn)
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
Error in `[.data.frame`(frame, predictors) : undefined columns selected
Run Code Online (Sandbox Code Playgroud)
看起来很奇怪,因为我用一个非常类似的数据库做了类似的事情.您可以在http://uploading.com/files/de8a966d/exa.Rda/上下载数据帧- 然后加载
load("exa.Rda")
Run Code Online (Sandbox Code Playgroud) 我有一个包含两个数字行的表,其中一行设置为key.我想data.table通过数字键值对我进行子集化,但它似乎不起作用.当我将它转换为字符时,它的工作原理.
你能帮我理解为什么吗?我正在使用data.table 1.8.6.
谢谢一堆.这是测试代码:
> ID <-c(rep(210, 9), rep(3917,6))
> Count <- c(1,1,0,1,1,1,1,1,1,1,1,1,1,0,1)
> x <- data.table(ID, Count)
>
> # numeric key doesn't work with i argument
> setkey(ID)
[1] 210 210 210 210 210 210 210 210 210 3917 3917 3917 3917 3917 3917
> x[210,list(ID, Count)]
ID Count
1: NA NA
>
> # create character key
> x$charID <- as.character(x$ID)
> setkey(x, charID)
> x["210",list(ID, Count)]
charID ID Count
1: 210 210 1
2: …Run Code Online (Sandbox Code Playgroud) 我有一个向量
x = c(1820.0, 2235.0, 2534.0, 2580.0, 2322.0, 2317.0, 2331.0, 2345.0,
2305.0, 2265.0, 2277.0, 2289.0, 2338.0, 2387.0, 2152.0, 2256.0,
2360.0, 2590.0, 2529.0, 2468.0, 2776.0, 2909.0, 3017.0, 3081.0,
3118.5, 3156.0, 3338.0, 3211.5)
Run Code Online (Sandbox Code Playgroud)
我想计算除边缘以外的每个元素的左右邻居的平均值。例如,结果应如下所示: mean(1820,2534), mean(2235,2580), mean(2534,2322) ...
我可以使用循环来做到这一点,但这很慢。我需要向量化解决方案。
我的代码使用for循环:
neighbour_m = function(x) {
newx = c(x[length(x)], x, x[1])
for (i in 2:(length(newx) - 1)){
m = mean(c(newx[i-1], newx[i+1]))
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以设置逐步线性模型以使用BIC标准而不是AIC?
我一直在尝试这个,但它仍然使用AIC值而不是BIC计算每一步
null = lm(data[,1] ~ 1)
full = lm(data[,1] ~ age + bmi + gender + group)
step(null, scope = list(lower=null,upper=full),
direction="both", criterion = "BIC")
Run Code Online (Sandbox Code Playgroud) 如果a的列名data.frame以数字开头,或者有空格,则aes_string()无法处理它们:
foo=data.frame("1st Col"=1:5, "2nd Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:2: unexpected symbol
# 1: 1st
# ^
foo=data.frame("First Col"=1:5, "Second Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2])) + geom_point()
# Error in parse(text = x) : <text>:1:7: unexpected symbol
# 1: First Col
# ^
foo=data.frame("First_Col"=1:5, "Second_Col"=5:1, check.names=F)
bar=colnames(foo)
ggplot(foo, aes_string(x=bar[1],y=bar[2]))+geom_point()
# Now it works
Run Code Online (Sandbox Code Playgroud)

有没有办法在列名中有空格,或者它们是以数字开头的,我们可以在ggplot2中使用它们吗?请考虑我们可能不知道列名称,因此请避免提供具有常量列名称的示例 - 如下所示:
aes_string(x=`1st Col`, y=`2nd Col`)
Run Code Online (Sandbox Code Playgroud)