如何解决在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 举报,一经查实,本站将立刻删除。