为什么在deepnet R包中的nn.test函数中错误计数除以2?

时间:2014-12-16 16:50:39

标签: r

我不明白为什么在deepnet R包中的nn.test函数的error_count计算中有'/ 2'(除以2),如下所示。

function (nn, x, y, t = 0.5) 
{
    y_p <- nn.predict(nn, x)
    m <- nrow(x)
    y_p[y_p >= t] <- 1
    y_p[y_p < t] <- 0
    error_count <- sum(abs(y_p - y))/2
    error_count/m
}

对我来说,“error_count&lt; - sum(abs(y_p - y))”是正确的。谁能解释为什么他们把'/ 2'放在那里?

感谢您的时间!

2 个答案:

答案 0 :(得分:0)

仅仅从观察它开始,我最好的猜测是error_count <- sum(abs(y_p - y))不仅会计入预测的左边,还会计入预测右侧的偏移量。由于您计算错误两次,因此除以2。

答案 1 :(得分:0)

你真的到过这个底部吗?我认为你是对的,它不应该除以2,除非这里有一些我不知道的错误率定义,并且与实际错误计数不对应。如果我在X,Y(0/1分类)上运行测试,我得到一个&#34;错误率&#34; 20%,但如果我只是使用相同网络的X进行预测来获得预测,然后将它们与Y进行比较,那么&#34;错误计数&#34;实际上是40%。