【发布时间】:2014-04-21 16:23:42
【问题描述】:
我正在尝试使用应用功能。我有一个名为 rowcosty() 的函数:
rowcosty <- function(p,x,y){
return (-1*y*log(hyp(p,x))-(1-y)*log(1-hyp(p,x)))
}
hyp <- function(p, input){
return (sigmoid(p %*% input))
}
sigmoid <- function(y){
return (1/(1 + exp(-y)))
}
在我的示例中,p 是长度为 5000 的向量,x 是维度为 5000 X 400 的矩阵,y 也是长度为 5000 的向量。
现在我想将 rowcosty() 函数应用于 x 中的每一行,然后返回一个长度为 5000 的向量,其中包含 rowcosty() 为每一行返回的值。
我使用 for 循环成功地做到了这一点:
vec <- rep(0,5000)
for(i in 1:5000){
vec[i] <- rowcosty(p,x[i,],y[i])
}
但是这个 apply() 函数的调用产生了错误:“Error in -y * log(hyp(p, x)) : non-conformable arrays”
apply(x,1,rowcosty,p = p, y = y)
谁能告诉我这里出了什么问题?
【问题讨论】: