Keras多输出场景下,多分类class_weight等效设置咨询
多分类任务中class_weight的设置方法
嘿,这个问题其实很好理清,咱们先回到核心逻辑上:
首先你要明确:Keras里的
class_weight参数,键对应的是类别的整数索引,不管是二分类还是多分类,和输出是不是one-hot编码完全没关系。one-hot只是模型输出的一种格式,背后对应的类别还是0、1、2这类整数标签。你之前二分类时用
{0: .1 , 1: .14},这里的0和1就是两个类别的索引。现在你的多分类任务里,[1,0,0]对应类别0,[0,1,0]对应类别1,[0,0,1]对应类别2——所以等效的class_weight字典,只需要把第三个类别的权重加进去就行。
举个实际的例子,假设你对类别2的权重需求是根据它的样本不平衡程度来设置(比如和前两类的逻辑一致),那字典就可以写成:
class_weight = {0: 0.1, 1: 0.14, 2: 你的目标权重值}
额外提醒
如果不确定one-hot向量对应的类别索引,可以检查你生成标签的代码:比如如果是用keras.utils.to_categorical(y)转换的,那原标签y里的0就对应[1,0,0],1对应[0,1,0],以此类推,完全对应得上。
内容的提问来源于stack exchange,提问作者Cibgks
相关产品推荐
相关产品推荐

