Разумно ли использовать манипуляцию class_weight keras для проблемы мультикласса с потерей binary_crossentropy? - PullRequest
0 голосов
/ 26 мая 2020

я делаю проект в keras по этой задаче kaggle: https://www.kaggle.com/c/jigsaw-toxic-comment-classification-challenge

Все дело в классификации между этими 6 классами:

 [’toxic’, ’severe_toxic’, ’obscene’, ’threat’, ’insult’, ’identity_hate’]

наблюдения в набор данных можно обозначить как наличие множества этих меток.

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

array([0.9973441 , 0.3160533 , 0.9706196 , 0.05208771, 0.88174516, 0.15740213],

Теперь почти во всех прогнозах первое число, обозначающее класс toxi c, имеет высокое значение. Я предполагаю, что это связано с тем, что toxi c является основным классом в наборе.

теперь я бы хотел использовать функцию keras class_weights, чтобы снизить приоритет 'toxi c '(здесь произвольные веса). Примерно так

class_weight = {0: 0.75,
            1: 1.25
2: 1.25
3: 1.25
4: 1.25
5: 1.25}

, а затем передайте это в метод fit (). но теперь мой вопрос: будет ли эта манипуляция весом иметь значение в такой проблеме, где классы не взаимозависимы, и это не бинарная проблема?

...