Автоматическое распределение веса - несбалансированные данные в Keras и Confusion Matrix - PullRequest
0 голосов
/ 09 января 2019

У меня есть 10 классов для классификации с использованием CNN. Данные несбалансированы во всех этих 10 классах, для этого я попробовал оба из перечисленных ниже методов, но оценка F1 не показывает каких-либо улучшений. Вы можете обратиться к Отчету о классификации матриц путаницы - Keras Это матрица путаницы, которую я получил изначально без использования приведенного ниже кода. Но после использования кода, приведенного ниже, показатель Формулы 1 едва улучшился. Однако точность проверки составила 98% +. Нужна ваша помощь в этом.

#Method 1
counter  = Counter(training_set.classes)
max_val = float(max(counter.values()))
class_weights  = {class_id:max_val/num_images for class_id,num_images in counter.items()}

#Method 2
from sklearn.utils import class_weight
import numpy as np

class_weights = class_weight.compute_class_weight(
               'balanced',
                np.unique(training_set.classes),
                training_set.classes)
...