Функция за загуба за небалансиран двоичен класификатор на клас в потока Tensor
Опитвам се да приложа дълбоки учения за бинарен класификационен проблем с висок клас дисбаланс между целевите класове (500 000, 31 000). Искам да напиша персонализирана функция за загуби, която трябва да бъде: минимизиране (100 - ((предсказан_малък клас)/(общ_малък клас)) * 100)

Оценявам всички намеци за това как мога да изградя тази логика.
6 отговора
Кодът, който предложихте, ми се струва грешен. Отслабването трябва да се умножи по тегло, съгласен съм.
Но ако умножите дневника по теглото на класа, завършете с:
вторият мандат не е равно на:
За да покажем това, можем да пренапишем последния като:
Ето кода, който предлагам:
Можете да добавяте тежести на класа към функцията за загуби, като умножавате регистрационните файлове. Редовната загуба на кръстосана ентропия е както следва:
По този начин, като умножавате регистрационните файлове, предефинирайте прогнозите за всеки клас по теглото на класа.
Има стандартна функция за загуби, която поддържа тежести на партиди:
Ако тежестите трябва да бъдат преобразувани от теглата на класа в тегло например (с формата [lot_size]). Вижте документацията тук .
Въпреки че посочването на скаларна загуба намалява загубата за цялата партида, понякога искаме да променим размера на пробата за загуба на партида. Например, ако имаме определени примери, които са по-важни, за да ни направят правилни, може да искаме да имаме по-голяма загуба от други проби, чиито грешки имат по-малко значение. В този случай можем да осигурим вектор на тегло с дължина lot_size, което води до загуба за всяка проба в партидата, която се мащабира от съответния елемент на теглото. Например, разгледайте случая на проблем с класификацията, при който искаме да увеличим максимално точността, но сме особено заинтересовани от получаването на висока точност за определен клас:
Трябваше да работя с подобен небалансиран набор от данни с няколко класа и затова работих през него, надявам се да помогне на някой, който търси подобно решение:
Това е вярно във вашия модул за обучение:
Това отговаря на вашата дефиниция за клас модел: