RandolphVI / Multi-Label-Text-Classification

About Muti-Label Text Classification Based on Neural Network.
Apache License 2.0
550 stars 147 forks source link

采取何种评估方法最能评估一个模型的好坏? #10

Open JiaWenqi opened 5 years ago

JiaWenqi commented 5 years ago

关于multi-label text classification的问题,用何种方式来评估模型的好坏最好呢?我看你用的是precision_score, recall_score, f1_score, roc_auc_score, average_precision_score。那么其他的评估方法可以吗?比如说hamming_loss,zero_one_loss,jaccard_similarity_score还是accuracy_score

RandolphVI commented 5 years ago

@JiaWenqi

其他的评估方法当然是可以,只是主流的 Multi-Label Classification 任务的评估方法就是我使用的那几项。根据你任务的定义,需要参考一下其他人论文中与你类似任务中的评价指标的选取(特别是你是想写论文的话),可以更改成你提到的那些方法。

JiaWenqi commented 5 years ago

^_^,不写paper,要用到生产中,比如新用一个模型,想通过一些切实的评估指标来评估这个模型是否比之前的要好?

RandolphVI commented 5 years ago

@JiaWenqi

不同评估方法侧重评价模型的性能不一样。 一般而言,如果是 Multi-Label Classification 任务,主流用到的就是:

  1. threshold 相关,包括 Precision、Recall 以及 F1 三个主流指标
  2. threshold 非相关,包括 AUC 与 PRC
  3. Top-K 相关,就是 ranking 的评价方法,包括 Precision@K、Recall@K 以及 F1@K

视实际生产业务需求定吧。

JiaWenqi commented 5 years ago

:thumbsup: 总结的真心好,不过我不清楚我理解的是否正确,请@RandolphVI帮忙看: 1)threshold 相关 是不是就是最后某些类别的概率如果大于某个阈值的话,那么这些类别就是预测出的标签结果? 2)那threshold 非相关呢,这种的预测结果是怎么得到的? 3)Top-K的话,是不是就是最后结果按照每个类别的概率从大到小排序,取Top-K的结果?

RandolphVI commented 5 years ago

@JiaWenqi 第一第三点理解正确。

第二点非 threshold 相关,是这样的。因为如果采用 threshold 阈值相关的评价指标的话,其最终指标结果是受人工阈值选取的影响,例如选取 threshold 为 0.4 与 0.5,其指标的结果就会不同。因此为了避免这种人工阈值选取的影响,像 AUC 和 PRC 这种评价指标就可以用来表示模型整体在 Precision 和 Recall 的表现。拿 PRC 举例,就是通过绘制 Precision-Recall 的曲线来计算曲线下的面积。网上有挺多 AUC 和 PRC 相关的资料与介绍,可以去了解一下。