【发布时间】:2017-01-23 15:13:36
【问题描述】:
我正在计算数据集的成本。有没有办法简化这个嵌套的 for 循环?我应该使用应用还是矩阵乘法?
更多背景:这是多类逻辑损失,将用于机器学习。 y_m 是从标签 y 派生的指标矩阵(10 个标签的分类)。我通过随机生成 h2 和 y 来简化问题,以获得最小的可重现代码。
h2=matrix(runif(5000*10),ncol=10)
y=round(runif(5000)*9)+1
y_m <- matrix(0,ncol=10,nrow=length(y))
y_m[cbind(1:length(y),y)] <- 1
J=0
for(i in 1:5000){
for(k in 1:10){
J=J-y_m[i,k]*log(h2[i,k])-(1-y_m[i,k])*log(1-h2[i,k]);
}
}
J
【问题讨论】:
标签: r matrix machine-learning vectorization