不平衡CNN上的类权重

2024-05-28 19:56:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在一组x射线图像上实现一个简单的CNN分类,这些图像分为4类。 数据集如下所示:

                                           img              A   B   C   D
   1    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1
   2    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1
   3    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   1   0
   4    [[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], ...   0   0   0   1 

A-80 B-300 C-70 D-150

如何在这些设置中应用类权重


Tags: 数据图像img分类cnn权重射线
1条回答
网友
1楼 · 发布于 2024-05-28 19:56:41

类权重是一个字典,用于补偿数据集中的不平衡。例如,如果您有1000个狗图像和100个猫图像的数据集,那么您的分类器可能会偏向狗类。如果它每次都预测狗,那么它90%的时间都是正确的。为了弥补这种不平衡,class_权重字典允许您在计算损失时,将猫的样本重量增加到狗的10倍。一种方法是使用sklearn的class_weight方法,如下所示

from sklearn.utils import class_weight
import numpy as np

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

相关问题 更多 >

    热门问题