Как реализовать факт, связанный с ложью, положительной по сравнению с ложным отрицательным балансом в нейронной сети?

У меня есть да/нет проблема классификации, где ложные положительные стороны хуже, чем ложные отрицательные стороны.

Существует ли способ реализовать этот факт в нейронную сеть особенно на Панели инструментов Нейронной сети MATLAB?

6
задан menjaraz 15 December 2011 в 08:39
поделиться

2 ответа

Вы можете использовать настраиваемую функцию стоимости. Вот что я сделал недавно:

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.

2
ответ дан 10 December 2019 в 02:45
поделиться

Что вам нужно, так это мета-классификатор , чувствительный к стоимости (мета-классификатор работает с любым произвольным классификатором, будь то ИНС, SVM или любой другой).

Это может быть выполнено двумя способами:

  • повторным взвешиванием обучающих примеров в соответствии с матрицей затрат. Это делается путем повторной выборки данных, чтобы конкретный класс был чрезмерно представлен, поэтому построенная модель более чувствительна к этому конкретному классу, чем к другим классам.
  • прогнозирование класса с минимальной ожидаемой стоимостью ошибочной классификации (а не с наиболее вероятным классом). Идея состоит в том, чтобы минимизировать общие ожидаемые затраты, чаще совершая дешевые ошибки и реже совершая дорогостоящие ошибки.

Одним из алгоритмов, реализующих первый подход к обучению, является SECOC , который использует коды с исправлением ошибок; в то время как примером второго подхода является MetaCost , который использует бэггинг для улучшения оценок вероятности классификатора.

7
ответ дан 10 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: