使用Keras对不平衡数据集进行分类

时间:2020-05-09 10:25:50

标签: python image-processing keras classification imbalanced-data

我正在尝试对多标签图像(脑肿瘤)进行分类。每种肿瘤类型从0到4标记为分类类别。我的数据集非常不平衡。为了克服这个问题,根据我对stackoverflow的研究,我在Keras中使用了class_weight。

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数组中的类吗?

0 个答案:

没有答案