2

我试图了解 AUC ROC 在我的 keras 模型中的适当使用。

我正在训练的具体模型是一个多类、多实验室

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)

每个样本可以属于第一类中的一个类和第二类中的一个类:构建模型(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 和精度对于二元分类器(标签 1 或标签 2)很有用,

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

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

谢谢

4

0 回答 0