1

我有一个用于分类的神经网络工作模型。目前,我已经应用交叉熵来计算测试结果(模型输出)和条件结果(真实输出)之间的误差。该模型用于二进制分类,但将扩展为处理多个类。到目前为止,误差是在 MATLAB 中使用交叉熵计算的:

err = sum( y.*log(h(x)) + (1-y).*log(1-h(x)) )

我希望模型能够以这样的方式执行,即它可以分类或检测更多的误报,然后是误报。我知道有所谓的混淆矩阵,我可以在其中指定所有内容,但我不知道这如何对应于错误计算。非常欢迎任何建议:)

干杯!

4

1 回答 1

3

您可以通过引入标量类权重来衡量正类高于或低于负类。自从

y .* log(h(x))

表示正训练样本的损失和

(1 - y) .* log(1 - h(x))

是负训练样本的损失,

err = -sum(w .* y .* log(h(x)) + (1 - y) .* log(1 - h(x)))

导致正样本在 时比负样本更重要,在 时w>1不重要w<1。确保您相应地修改导数。

于 2013-10-24T15:05:10.167 回答