如何在神经网络中实现与假阳性与假阴性平衡相关的事实?

发布于 2024-08-26 19:08:54 字数 98 浏览 10 评论 0原文

我遇到的是/否分类问题,其中误报误报更糟糕。

有没有办法将这一事实应用到神经网络中,特别是在 MATLAB 的神经网络工具箱中?

I have a yes/no classification problem, where false positives are worse than false negatives.

Is there a way to implement this fact into neural network especially in MATLAB's Neural Network Toolbox?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

请远离我 2024-09-02 19:08:54

您需要的是一个成本敏感的元分类器(元分类器可与任何任意分类器配合使用,无论是 ANN、SVM 还是任何其他分类器)。

这可以通过两种方式完成:

  • 根据成本矩阵重新加权训练实例。这是通过对数据进行重新采样来完成的,以便过度表示特定的类,因此构建的模型对该特定的类比其他类更敏感。
  • 预测具有最小预期错误分类成本的类别(而不是最有可能的类别)。这里的想法是通过更频繁地犯低级错误和更少地犯昂贵错误来最小化总预期成本。

实现第一种学习方法的一种算法是SECOC,它使用纠错码;第二种方法的一个例子是使用装袋的 MetaCost 。 > 改进分类器的概率估计。

What you need is a cost-sensitive meta-classifier (a meta-classifier works with any arbitrary classifier, be it ANN, SVM, or any other).

This can be done in two ways:

  • re-weighting training instances according to a cost matrix. This is done by resampling the data so that a particular class is over represented, thus the model built is more sensitive to that particular class as opposed to the other classes.
  • predicting the class with minimum expected misclassification cost (rather than the most likely class). The idea here is to minimize the total expected costs by making cheap mistakes more often and expensive mistakes less often.

One algorithm that implements the first learning approach is SECOC, which uses error-correcting codes; while an example of the second approach is the MetaCost which uses bagging to improve the probability estimates of the classifier.

2024-09-02 19:08:54

您可以使用自定义成本函数。这就是我最近所做的:

cost(true negative) = 0
cost(true positive) = 0
cost(false positive) = infinity
cost(true negative) = L

这可以通过以下公式来完成:

cost(y, t) = (1 - t) log (1 - y) - L * t * (1 - y)

这当然意味着一些推导和实现,并且不超出 Matlab 工具箱。

You can use a custom cost function. This is what I did recently:

cost(true negative) = 0
cost(true positive) = 0
cost(false positive) = infinity
cost(true negative) = L

This can be accomplished e.g. by this formula:

cost(y, t) = (1 - t) log (1 - y) - L * t * (1 - y)

This implies some deriving and implementing of course and is not out of the Matlab toolbox.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文