Matthews相关系数

马休斯相关系数是衡量二分类模型结果的评估指标之一,具体参考Matthews Correlation Coefficient is The Best Classification Metric You’ve Never Heard Of,它能解决不均衡类别数据的指标衡量问题,首先介绍precision、recall及F1-score指标存在的问题。

precision、recall及F1定义

混淆矩阵的定义如下:

positive(true) negative(true)
positive(predict) TP FP
negative(predict) FN TN

则precision、recall、F1、TPR、FPR的定义如下:
p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP+FP} precision=TP+FPTP

r e c a l l = T P T P + F N recall = \frac{TP}{TP+FN} recall=TP+FN

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码主要是对 NER(命名实体识别)的预测结果进行评估和可视化。下面是代码的具体解释: 1. `with open("result/ner_predict.utf8", "r", encoding="utf-8") as f:`:打开 NER 预测结果文件 ner_predict.utf8,并使用 utf-8 编码方式读取文件内容,使用 with 语句可以确保文件读取完毕后自动关闭文件。 2. `data = f.read()`:读取文件内容并赋值给变量 data。 3. `data = [i.split(" ") for i in data.split("\n") if i]`:根据换行符对 data 进行分割,得到多行文本,然后对每一行文本使用空格进行分割,得到一个二维列表。 4. `y1 = [i for _, i, _ in data]` 和 `y2 = [i for _, _, i in data]`:从二维列表中分别提取出第二列和第三列的值,分别赋值给 y1 和 y2。 5. `label = set(list(y1))`:将 y1 转换成集合类型,得到命名实体类型,赋值给变量 label。 6. `acc = accuracy_score(y1, y2)`、`precision = precision_score(y1, y2, average='micro')`、`recall = recall_score(y1, y2, average='micro')`、`f1score = f1_score(y1, y2, average='micro')` 和 `mcc = matthews_corrcoef(y1, y2)`:使用 sklearn 库中的函数计算各种评估指标,包括准确率、精确率、召回率、f1 分数和 Matthews 相关系数。 7. `print`:输出各种评估指标的值。 8. `label = list(set(y1))`:将 y1 转换成列表类型,得到命名实体类型,赋值给变量 label。 9. `matrixs = pd.DataFrame(confusion_matrix(y1, y2, labels=label), index=label, columns=label)`:使用 pandas 库中的 DataFrame 函数构建混淆矩阵,其中 confusion_matrix 函数可以计算出混淆矩阵,labels 参数用于指定行和列的标签。 10. `del matrixs['O']` 和 `matrixs = matrixs[matrixs.index != 'O']`:将矩阵中的 O 类别删除,并将矩阵中行标签为 O 的行删除,因为 O 类别通常表示无命名实体。 11. `print(matrixs)`:打印出处理后的混淆矩阵。 12. `sns.heatmap(matrixs, cmap="Wistia")`:使用 seaborn 库中的 heatmap 函数将混淆矩阵以热力图的形式进行可视化,cmap 参数指定使用的颜色映射。 13. `plt.savefig("matrixs.png", dpi=300)`:将热力图保存为图片文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值