当前位置: 首页 > news >正文

技巧|SwanLab记录ROC曲线攻略

绘制ROC(Receiver Operating Characteristic)曲线,用于评估二分类模型的性能。ROC曲线展示了在不同阈值下真正率(True Positive Rate)和假正率(False Positive Rate)的关系。

ROC曲线是评估分类模型性能的重要工具,能够直观地展示模型在不同决策阈值下的表现。

你可以使用swanlab.roc_curve来记录ROC曲线。

Demo链接:ComputeMetrics - SwanLab

在这里插入图片描述

基本用法

from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
import xgboost as xgb
import swanlab# 生成示例数据
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.3, random_state=42)# 训练模型
model = xgb.XGBClassifier(use_label_encoder=False, eval_metric='logloss')
model.fit(X_train, y_train)# 获取预测概率
y_pred_proba = model.predict_proba(X_test)[:, 1]# 初始化SwanLab
swanlab.init(project="ROC-Curve-Demo", experiment_name="ROC-Curve-Example")# 记录ROC曲线
swanlab.log({"roc_curve": swanlab.roc_curve(y_test, y_pred_proba, title=True)
})swanlab.finish()

自定义标题

# 不显示标题(默认)
roc_curve = swanlab.roc_curve(y_test, y_pred_proba, title=False)
swanlab.log({"roc_curve_no_title": roc_curve})# 显示标题
roc_curve = swanlab.roc_curve(y_test, y_pred_proba, title=True)
swanlab.log({"roc_curve_with_title": roc_curve})# 自定义标题
roc_curve = swanlab.roc_curve(y_test, y_pred_proba, title="demo")
swanlab.log({"roc_curve_with_custom_title": roc_curve})

与其他指标一起使用

import swanlab# 记录多个ML指标
swanlab.log({"roc_curve": swanlab.roc_curve(y_test, y_pred_proba),"pr_curve": swanlab.pr_curve(y_test, y_pred_proba),"accuracy": accuracy_score(y_test, y_pred),"f1_score": f1_score(y_test, y_pred)
})

注意事项

  1. 数据格式: y_truey_pred_proba可以是列表或numpy数组
  2. 二分类: 此函数专用于二分类问题
  3. 概率值: y_pred_proba应该是模型对正类的预测概率,范围在0-1之间
  4. 依赖包: 需要安装scikit-learnpyecharts
  5. AUC计算: 函数会自动计算ROC曲线下的面积(AUC),但不会在标题中显示
  6. 曲线特征: ROC曲线从(0,0)开始,到(1,1)结束,对角线表示随机分类器的性能
http://www.dtcms.com/a/311422.html

相关文章:

  • VueX进阶Pinia
  • go idea goland debug 报错 no debug info found
  • 从递归到动态规划-解码方法
  • Json Jsoncpp
  • 深入 Go 底层原理(十四):timer 的实现与高性能定时器
  • python JSONPath 表达式生成器
  • 淘宝获取商品SKU详情API接口操作指南
  • 交互 Codeforces Round 1040 Interactive RBS
  • 开发指南128-基础类-BaseDAO
  • 力扣面试150题--回文数
  • ABP VNext + NATS JetStream:高性能事件流处理
  • FPGA kernel 仿真器调试环境搭建
  • 分类任务当中常见指标 F1分数、recall、准确率分别是什么含义
  • 「iOS」————SideTable
  • 基于Dockerfile 部署一个 Flask 应用
  • WAIC引爆AI,智元机器人收购上纬新材,Geek+上市,157起融资撑起热度|2025年7月人工智能投融资观察 · 极新月报
  • 【传奇开心果系列】Flet框架流式输出和实时滚动页面的智能聊天机器人自定义模板
  • github在界面创建tag
  • 性能测试-性能测试中的经典面试题二
  • 超级人工智能+无人机操控系统,振兴乡村经济的加速器,(申请专利应用),严禁抄袭!
  • spring-ai-alibaba 学习(十九)——graph之条件边、并行节点、子图节点
  • linux编译基础知识-库文件标准路径
  • Docker 的网络模式
  • 3 使用 Jenkins 构建镜像:将你的应用打包成镜像
  • 【20min 急速入门】使用Demucs进行音轨分离
  • ffmpeg命令和ffplay命令详解
  • Java高性能编程实践指南
  • ARM Cortex-M异常处理高级特性详解
  • OpenCV 全解读:核心、源码结构与图像/视频渲染能力深度对比
  • [硬件电路-121]:模拟电路 - 信号处理电路 - 模拟电路中常见的难题