Я пытаюсь классифицировать изображения с несколькими метками (опухоль головного мозга). Каждый тип опухоли помечен от 0 до 4 для категорий классификации. У меня очень несбалансированный набор данных. Чтобы преодолеть это, согласно моим исследованиям в stackoverflow, я использовал class_weight в Keras.
y_integers = np.argmax(allY, axis=1)
class_weights = compute_class_weight('balanced', np.unique(y_integers), y_integers)
d_class_weights = dict(enumerate(class_weights))
model.fit(X_train,y_train,epochs=1,verbose=1,class_weight=d_class_weights ,validation_data=(X_val,
y_val))
Мои данные разделены следующим образом:
количество обучающих примеров = 72086
количество примеров разработки = 12015
количество тестовых примеров = 12014
После модели скомпилирован, мой отчет о классификации: :
precision recall f1-score support
0 0.89 0.84 0.87 2612
1 0.86 0.85 0.86 2224
2 0.87 0.78 0.82 1537
3 1.00 1.00 1.00 3842
4 0.78 0.93 0.85 1799
accuracy 0.90 12014
Я не понимаю, как насчет номеров поддержки отчета о классификации. Номера поддержки разные. Я хочу, чтобы мои номера поддержки были такими же. Есть проблема с реализацией? Если это так, следует ли мне балансировать классы в массиве numpy перед компиляцией модели?