在keras模型中适当使用ROC和AUC进行多类,多标签任务

问题描述

我试图了解我的keras模型中AUC ROC的适当用法

我正在训练的特定模型是多班,多实验室的

el classifier,where each sample can belong to multiple classes. the code is as follows (starting at one-hot encoding):


##one-hot encode 
categoryone=to_categorical(data['categoryone'],num_classes=12)
categorytwo=to_categorical(data['categorytwo'],num_classes=7)

trainingtarget = np.concatenate((categoryone,categorytwo),axis=1)

每个样本在类别1中可以属于一个类别,而在类别2中可以属于一个类别:模型被构建(4层模型)并按如下方式进行编译和拟合:

metrics=[tf.keras.metrics.AUC(name='auc'),tf.keras.metrics.Precision(name='precision'),tf.keras.metrics.Recall(name='recall')]

finalmodel=tf.keras.models.Sequential()
finalmodel.add(tf.keras.layers.Dense(units=832,input_dim=20767,activation="relu"))
finalmodel.add(tf.keras.layers.Dense(units=976,activation="relu"))
finalmodel.add(tf.keras.layers.Dense(units=880,activation="relu"))
finalmodel.add(tf.keras.layers.Dense(units=944,activation="relu"))
finalmodel.add(tf.keras.layers.Dense(units=19,activation="sigmoid"))

finalmodel.compile(loss="binary_crossentropy",optimizer=optimizer,metrics=metrics)

#fit model
finalmodel.fit(normCountsscale1.values,trainingtarget,epochs=200,validation_split=0.1,callbacks=[(early_stopping,checkpoint)],shuffle=True,batch_size=32,verbose=1
              )

我知道AUC ROC和precision对二进制分类器(标签1或标签2)很有用,

我的问题是,对于上述多类多标签网络(binary_crossentropy属于多个类),合适的度量标准是什么?

使用AUC可以在这里区分适当的类吗?即,它能否成功衡量第一类和第二类的可分离性?并足以将其与常用的混淆矩阵,损失精度曲线等一起用作度量标准吗?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)