召回率 精确率 matlab,「机器学习」准确率、精确率、召回率、F1分数、ROC-AUC

本文详细解释了机器学习中用于评估模型性能的几个关键指标:准确率、精确率、召回率、F1分数和ROC-AUC,通过混淆矩阵阐述了它们的定义、计算方式以及各自的优缺点。特别是强调了ROC-AUC在处理样本不平衡问题时的优势,并指出其作为模型好坏的量化标准。
摘要由CSDN通过智能技术生成

「机器学习」准确率、精确率、召回率、F1分数、ROC-AUC

机器学习

最后更新 2020-08-31 16:22

阅读 210

最后更新 2020-08-31 16:22

阅读 210

机器学习

在机器学习中衡量一个模型是否准确我们有很多指标:

准确率 - accuracy

精确率 - precision

召回率 - recall

F1分数-F1 score

ROC曲线下面积 - ROC-AUC (area under curve)

那么,这些指标到底都是什么呢?各自有什么优缺点呢?笔者在了解这些指标的时候是在网上各大网站(CSDN、博客园、知乎)上找文章学习的。但是这些文章要么是过于数学化,要么是有地方不那么好读(前后变量不一致导致阅读苦难)、要么是过于“去数学化”。我自己整理了一份学习笔记,一定能够让大家一次性读懂这几个指标。

下面进入正文:

大家要明白,以上指标统统离不开一个工具:混淆矩阵-confusion matrix

混淆矩阵是个什么东西?

对于二分类问题,每一条数据要么预测正确,表示为1;要么预测错误,表示为0(注意这里是预测结果正确与否,而不是预测结果是0还是1),而事物本身也是被分为0(负样本)和1(正样本)两类。

用矩阵来表示就是这个样子

![混淆矩阵](https://dataset.flyai.com/混淆矩阵.jpg)

TP:True&Positive(positive表示正样本,true表示预测正确,即预测为positive是正确的)

机器学习中,评估模型性能常用的指标包括AUC、准确度(Accuracy)、精确度(Precision)、召回率(Recall)和F1-score。以下是使用Python中的`sklearn`库计算这些指标的一个简单示例: 首先,你需要有一个训练好的机器学习模型,并对其做预测,得到预测结果和真实的标签。然后,使用`sklearn.metrics`中的相关函数来计算这些性能指标。 ```python from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score, roc_auc_score from sklearn.metrics import confusion_matrix # 假设 y_true 是真实的标签数组,y_pred 是模型预测的标签数组,y_pred_proba 是模型预测的概率数组(对于二分类问题) y_true = [...] # 真实标签 y_pred = [...] # 模型预测的标签 y_pred_proba = [...] # 模型预测的概率 # 准确度(Accuracy) accuracy = accuracy_score(y_true, y_pred) print(f'准确度: {accuracy}') # 精确度(Precision) precision = precision_score(y_true, y_pred) print(f'精确度: {precision}') # 召回率(Recall) recall = recall_score(y_true, y_pred) print(f'召回率: {recall}') # F1-score f1 = f1_score(y_true, y_pred) print(f'F1-score: {f1}') # AUC (Area Under the Curve) # 注意:AUC只能应用于二分类问题的ROC曲线 if len(np.unique(y_true)) == 2: # 确保标签只有两个类别 auc = roc_auc_score(y_true, y_pred_proba) print(f'AUC: {auc}') ``` 请确保你已经安装了`sklearn`库,并且你的`y_true`和`y_pred`是适当格式的数组或列表,`y_pred_proba`是一个包含概率值的数组。对于二分类问题,`y_pred_proba`应该是一个二维数组,其中每一行对应一个样本,每一列对应一个类别的预测概率。 在多分类问题中,`precision_score`、`recall_score`和`f1_score`函数默认计算所有类别的加权平均值。你也可以通过设置参数`average=None`来得到一个针对每个类别的性能指标列表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值