首页 > 其他分享 >机器学习评价指标之决策曲线

机器学习评价指标之决策曲线

时间:2024-07-16 21:02:59浏览次数:16  
标签:plt ROC 阈值 模型 曲线 决策 评价

决策曲线是一种用于评估和比较不同分类模型性能的工具,它可以帮助研究人员和数据分析者理解模型在不同阈值设置下的收益和风险。以下是一些关于分类模型决策曲线的详细信息:

决策曲线的构成:

  1. 阈值(Threshold):分类模型通常会输出一个概率分数,表示样本属于正类的概率。阈值是用于将概率转换为类别标签的界限。例如,如果阈值设定为0.5,那么概率大于或等于0.5的样本将被分类为正类。

  2. 真正率(True Positive Rate, TPR):也称为灵敏度或召回率,表示所有正类样本中被正确分类为正类的比例。

  3. 假正率(False Positive Rate, FPR):表示所有负类样本中被错误分类为正类的比例。

  4. 净收益(Net Benefit):是真正率与假正率的差值,或者说是分类器在特定阈值下的性能度量。

决策曲线的类型:

  1. 受试者工作特征曲线(Receiver Operating Characteristic, ROC):ROC曲线展示了不同阈值下真正率和假正率的关系。

  2. 提升曲线(Lift Curve):展示了模型相对于随机猜测的绩效提升。

  3. 净收益曲线(Net Benefit Curve):直接展示了不同阈值下的净收益。

如何创建决策曲线:

  1. 计算概率:使用分类模型为每个样本计算属于正类的概率。

  2. 设置阈值:选择一系列阈值(例如,从0到1,以0.01为步长)。

  3. 计算TPR和FPR:对于每个阈值,计算TPR和FPR。

  4. 绘制曲线:在坐标系中,以FPR为横轴,TPR为纵轴,绘制ROC曲线。对于净收益曲线,以阈值为横轴,净收益为纵轴。

决策曲线的应用:

  • 模型比较:通过比较不同模型的决策曲线,可以选择性能最佳的模型。
  • 阈值选择:可以帮助确定最佳的分类阈值,以最大化模型的净收益。
  • 临床决策支持:在医疗领域,决策曲线可以帮助医生理解不同诊断测试的收益和风险。

注意事项:

  • 决策曲线应结合具体的应用背景和业务目标来解释。
  • 在不平衡数据集的情况下,决策曲线的解读需要特别小心,因为假正率和真正率的计算可能会受到少数类的影响。

通过决策曲线,可以更全面地评估分类模型在实际应用中的表现,并作出更合理的决策。

代码实现:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import roc_curve, auc, roc_auc_score

# 创建一个分类数据集
X, y = make_classification(n_samples=1000, n_features=20, n_informative=2, n_redundant=10, random_state=42)

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.5, random_state=42)

# 训练随机森林分类器
clf = RandomForestClassifier(random_state=42)
clf.fit(X_train, y_train)

# 预测测试集的概率
y_score = clf.predict_proba(X_test)[:, 1]

# 计算ROC曲线的FPR和TPR
fpr, tpr, thresholds = roc_curve(y_test, y_score)
roc_auc = auc(fpr, tpr)

# 绘制ROC曲线
plt.figure(figsize=(10, 5))
plt.subplot(1, 2, 1)
plt.plot(fpr, tpr, color='darkorange', lw=2, label='ROC curve (area = %0.2f)' % roc_auc)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic (ROC) Curve')
plt.legend(loc="lower right")

# 绘制净收益曲线
# 计算净收益
net_benefit = tpr - fpr
# 找到最大的净收益和对应的阈值
max_net_benefit = np.max(net_benefit)
best_threshold = thresholds[np.argmax(net_benefit)]

plt.subplot(1, 2, 2)
plt.plot(thresholds, net_benefit, color='blue', lw=2, label='Net Benefit')
plt.axhline(0, color='black', lw=2, linestyle='--')
plt.axvline(best_threshold, color='red', linestyle='--', label='Best Threshold')
plt.xlabel('Threshold')
plt.ylabel('Net Benefit')
plt.title('Net Benefit Curve')
plt.legend(loc="lower right")

plt.tight_layout()
plt.show()

在这段代码中,我们首先创建了一个合成数据集,然后使用随机森林分类器进行训练。接着,我们使用测试集来计算分类概率,并使用这些概率来绘制ROC曲线和净收益曲线。

  • ROC曲线显示了不同阈值下模型的性能。
  • 净收益曲线则直接展示了不同阈值下的净收益,帮助确定最佳阈值。

通过这种方式,你可以直观地比较不同模型或同一模型在不同阈值下的表现。

标签:plt,ROC,阈值,模型,曲线,决策,评价
From: https://blog.csdn.net/a2313179618/article/details/140476472

相关文章

  • 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、
    全文链接:http://tecdat.cn/?p=27384最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出。在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、......
  • C++ OPENGL 贝塞尔曲线绘制
    代码 #include<glad/glad.h>#include<GLFW/glfw3.h>#include<iostream>#include<vector>structPoint{floatx;floaty;};//二次贝塞尔Pointbezier(floatt,Pointa,Pointc,Pointz){return{(1-t)*(1......
  • 数据分享|R语言决策树和随机森林分类电信公司用户流失churn数据和参数调优、ROC曲线可
    原文链接:http://tecdat.cn/?p=26868最近我们被客户要求撰写关于电信公司用户流失的研究报告,包括一些图形和统计输出。在本教程中,我们将学习覆盖决策树和随机森林。这些是可用于分类或回归的监督学习算法下面的代码将加载本教程所需的包和数据集。  library(tidyverse)......
  • MATLAB程序复现-基于合作博弈与改进理想解法的低碳化电网运营水平综合评价
    摘要:在我国能源领域“双碳”目标的引领下,电网呈现低碳化发展趋势,因此需要构建更加全面的综合评价体系进行低碳化电网运营水平的综合评价。提出了一种基于合作博弈与改进理想解法的低碳化电网运营水平综合评价方法。首先,考虑低碳化电网运营的影响因素,提出了包括安全与可靠性、经......
  • 快速入门:自动驾驶感知工程师的规划与决策核心技巧
    亚马逊云AWS大模型训练自动驾驶技术欢迎来到雲闪世界,亚马逊AWS雲服务器。经典的模块化自动驾驶系统通常由感知、预测、规划和控制组成。直到2023年左右,AI(人工智能)或ML(机器学习)主要在大多数量产自动驾驶系统中增强感知,其影响力在下游组件中逐渐减弱。与规划堆栈中AI的......
  • 现代企业决策的核心实践与持续发展之道——战略与运营并重
    “战略决定成败,运营决定生死”这一理念深刻揭示了企业战略规划和日常运营之间的紧密联系及其对企业生存与发展的重要性。在现代企业决策中,灵活运用这一理念需要将其转化为实际行动指南,并贯穿于企业管理的各个环节。在战略制定与评估方面,企业需要确保战略既具有前瞻性,又符合实......
  • 模糊综合评价
    对于模糊的概念,如确定一个人是秃子吗,我们不能确认少于多少根头发的人是秃子,所以需要模糊综合评价法。层次分析法上一页层次分析法所求为各个影响因素的分立权重。那现在我们更进一步,通过之前利用层次分析法求得的权重来求出一个评价函数。模型建立根据之前所得影响因素建立代......
  • 评价类模型-层次分析法
    该博客为个人学习清风建模的学习笔记,部分课程可以在B站:【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程以及Matlab等软件教学_哔哩哔哩_bilibili完整课程可以在公众号“数学建模学习交流”付费获得。目录1模型介绍1.1引入模型1.2提出问题1.3解决问题 1.4判断......
  • 048基于SSM+Jsp的教学质量评价系统
     开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:Maven3.3.9系统展示管理员登录管理员功能学院管理学生管理教师管理督导管理教师信息管理学生评教管理督导评......
  • 机器学习算法-决策树
    一、决策树简介    决策树是一种分类与回归的方法,它以树形结构的形式进行呈现,可以认为是if-then规则的集合,也可以认为是特征空间与类空间上的条件概率分布。二、如何理解决策树?    我们大部分人都有过租房子的经历,那你是怎么决定要租一个房子的呢?我们一般判......