我有10个要使用CNN进行分类的课程。在这10个类别中,数据都是不平衡的,为此,我尝试了以下两种技巧,但F1分数并未显示出任何改善。 您可以参考Confusion Matrix Classification Report - Keras,这是我最初使用的混淆矩阵,而没有使用下面的代码。但是也使用下面的代码后,F1得分几乎没有提高。但是,验证准确性为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)