R
我试图线性优化R中的预测精度,我一直在寻找一个收敛点和一个方便的答案 我的想法如下:我有一组32个参数要优化。这32个参数是使用“rnorm”从正态分布中随机抽取的R,r,optimization,R,Optimization,我试图线性优化R中的预测精度,我一直在寻找一个收敛点和一个方便的答案 我的想法如下:我有一组32个参数要优化。这32个参数是使用“rnorm”从正态分布中随机抽取的 linCoeff <- rnorm(32,0,5) 如果有人能帮上忙,我很乐意 提前感谢。您可以尝试使用其他优化器吗?即,包rgenoud或RcppDE通常优于optim。我自己会用这些软件包为您做一些测试,但是由于您省略了数据的任何值,因此示例实际上不可复制。您好,非常感谢您的回答!可以考虑数据的每个列的值位于[-3;+3
linCoeff <- rnorm(32,0,5)
如果有人能帮上忙,我很乐意
提前感谢。您可以尝试使用其他优化器吗?即,包
rgenoud
或RcppDE
通常优于optim
。我自己会用这些软件包为您做一些测试,但是由于您省略了数据的任何值,因此示例实际上不可复制。您好,非常感谢您的回答!可以考虑数据的每个列的值位于[-3;+3]范围,取自正态分布(难以给出所有数据集,但值接近分布)。您甚至可以在尝试中删除14和15项,有一些比例因子起初并不太有用。但至少,非常感谢,我会尝试这两个包,然后回来!
myVal <- (((clSigm*lCoeff[1])+lCoeff[2])*data[,1])+
(((clSigm*lCoeff[3])+lCoeff[4])*data[,2])+
(((clSigm*lCoeff[5])+lCoeff[6])*data[,3])+
(((clSigm*lCoeff[7])+lCoeff[8])*data[,4])+
(((clSigm*lCoeff[9])+lCoeff[10])*data[,5])+
(((clSigm*lCoeff[11])+lCoeff[12])*data[,6])+
(((clSigm*lCoeff[13])+lCoeff[14])*data[,7])+
(((clSigm*lCoeff[15])+lCoeff[16])*data[,8])+
(((clSigm*lCoeff[17])+lCoeff[18])*data[,9])+
(((clSigm*lCoeff[19])+lCoeff[20])*data[,10])+
(((clSigm*lCoeff[21])+lCoeff[22])*data[,11])+
(((clSigm*lCoeff[23])+lCoeff[24])*data[,12])+
(((clSigm*lCoeff[25])+lCoeff[26])*data[,13])+
(((clSigm*lCoeff[27])+lCoeff[28])*data[,14])*data$indDV1+
(((clSigm*lCoeff[29])+lCoeff[30])*data[,15])*data$indDV2+
((clSigm*lCoeff[31])+lCoeff[32])
retrieveVal <- function(lCoeff,data){
clSigm <- 1/(1+exp(.5-(data$acc)))
myVal <- (((clSigm*lCoeff[1])+lCoeff[2])*data[,1])+
(((clSigm*lCoeff[3])+lCoeff[4])*data[,2])+
(((clSigm*lCoeff[5])+lCoeff[6])*data[,3])+
(((clSigm*lCoeff[7])+lCoeff[8])*data[,4])+
(((clSigm*lCoeff[9])+lCoeff[10])*data[,5])+
(((clSigm*lCoeff[11])+lCoeff[12])*data[,6])+
(((clSigm*lCoeff[13])+lCoeff[14])*data[,7])+
(((clSigm*lCoeff[15])+lCoeff[16])*data[,8])+
(((clSigm*lCoeff[17])+lCoeff[18])*data[,9])+
(((clSigm*lCoeff[19])+lCoeff[20])*data[,10])+
(((clSigm*lCoeff[21])+lCoeff[22])*data[,11])+
(((clSigm*lCoeff[23])+lCoeff[24])*data[,12])+
(((clSigm*lCoeff[25])+lCoeff[26])*data[,13])+
(((clSigm*lCoeff[27])+lCoeff[28])*data[,14])*data$indDV1+
(((clSigm*lCoeff[29])+lCoeff[30])*data[,15])*data$indDV2+
((clSigm*lCoeff[31])+lCoeff[32])
act <- c(lapply(myVal,FUN=activate))
return(-BACC(inp,act))
}
optim(par=linCoeff,fn=retrieveVal,data=myData)