python模型性能ROC和AUC是什么

发布时间:2023-05-11 17:06:40 作者:iii
来源:亿速云 阅读:104

这篇文章主要讲解了“python模型性能ROC和AUC是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python模型性能ROC和AUC是什么”吧!

正文

ROC 分析和曲线下面积 (AUC) 是数据科学中广泛使用的工具,借鉴了信号处理,用于评估不同参数化下模型的质量,或比较两个或多个模型的性能。

传统的性能指标,如准确率和召回率,在很大程度上依赖于正样本的观察。因此,ROC 和 AUC 使用真阳性率和假阳性率来评估质量,同时考虑到正面和负面观察结果。

从分解问题到使用机器学习解决问题的过程有多个步骤。它涉及数据收集、清理和特征工程、构建模型,最后是,评估模型性能。

当您评估模型的质量时,通常会使用精度和召回率等指标,也分别称为数据挖掘领域的置信度和灵敏度。

这些指标将预测值与通常来自保留集的实际观察值进行比较,使用混淆矩阵进行可视化。

python模型性能ROC和AUC是什么

让我们首先关注精度,也称为阳性预测值。使用混淆矩阵,您可以将 Precision 构建为所有真实阳性与所有预测阳性的比率。

python模型性能ROC和AUC是什么

召回率,也称为真阳性率,表示真阳性与观察到的和预测的所有阳性的比率。

python模型性能ROC和AUC是什么

使用混淆矩阵中的不同观察集来描述 PrecisionRecall,您可以开始了解这些指标如何提供模型性能的视图。

值得注意的是 Precision 和 Recall 只关注正例和预测,而不考虑任何负例。此外,他们不会将模型的性能与中值场景进行比较,中值场景只是随机猜测。

1. ROC 曲线

ROC 作为汇总工具,用于可视化 Precision 和 Recall 之间的权衡。ROC 分析使用 ROC 曲线来确定二进制信号的值有多少被噪声污染,即随机性。它为连续预测器提供了一系列操作点的灵敏度和特异性摘要。ROC 曲线是通过绘制 x 轴上的假阳性率与 y 轴上的真阳性率来获得的。

由于真阳性率是检测信号的概率,而假阳性率是误报的概率,因此 ROC 分析也广泛用于医学研究,以确定可靠地检测疾病或其他行为的阈值。

python模型性能ROC和AUC是什么

一个完美的模型将具有等于 1 的误报率和真阳性率,因此它将是 ROC 图左上角的单个操作点。而最差的可能模型将在 ROC 图的左下角有一个单一的操作点,其中误报率等于 1,真阳性率等于 0。

随机猜测模型有 50% 的机会正确预测结果,因此假阳性率将始终等于真阳性率。这就是为什么图中有一条对角线,代表检测信号与噪声的概率为 50/50。

2. AUC 面积

要全面分析 ROC 曲线并将模型的性能与其他几个模型进行比较,您实际上需要计算曲线下面积 (AUC),在文献中也称为 c 统计量。曲线下面积 (AUC) 的值介于 0 和 1 之间,因为曲线绘制在 1x1 网格上,并且与信号理论平行,它是信号可检测性的度量。

这是一个非常有用的统计数据,因为它可以让我们了解模型对真实观察结果和错误观察结果的排名有多好。它实际上是 Wilcoxon-Mann-Whitney 秩和检验的归一化版本,它检验零假设,其中两个有序测量样本是从单个分布 中抽取的。

要绘制 ROC 曲线并计算曲线下面积 (AUC),您决定使用 SckitLearn 的 RocCurveDisplay 方法并将多层感知器与随机森林模型进行比较,以尝试解决相同的分类任务。

import matplotlib.pyplot as plt
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_auc_score, RocCurveDisplay
def plot_roc(model, test_features, test_targets):
    """
    Plotting the ROC curve for a given Model and the ROC curve for a Random Forests Models
    """
    # comparing the given model with a Random Forests model
    random_forests_model = RandomForestClassifier(random_state=42)
    random_forests_model.fit(train_features, train_targets)
    rfc_disp = RocCurveDisplay.from_estimator(random_forests_model, test_features, test_targets)
    model_disp = RocCurveDisplay.from_estimator(model, test_features, test_targets, ax=rfc_disp.ax_)
    model_disp.figure_.suptitle("ROC curve: Multilayer Perceptron vs Random Forests")
    plt.show()
# using perceptron model as input
plot_roc(ml_percetron_model, test_features, test_targets)

python模型性能ROC和AUC是什么

感谢各位的阅读,以上就是“python模型性能ROC和AUC是什么”的内容了,经过本文的学习后,相信大家对python模型性能ROC和AUC是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Python第三方库管理Pip和Conda怎么用
  2. Python浮点数保留小数位数怎么实现

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python roc auc

上一篇:SpringCloud读取Nacos配置中心报错怎么解决

下一篇:Golang并发编程之main goroutine的创建与调度的方法是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》