当前位置: 首页 > 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.xdnf.cn/news/1230859.html

相关文章:

  • 如果esp_radar_train_stop()调用失败(比如训练未正常启动、持续时间不足、或其他配置未完成),那么:
  • 【相机】曝光时间长-->拖影
  • html5+css3+canvas长文转长图工具支持换行
  • sqli-labs:65个关卡的文章汇总
  • [BJDCTF2020]EasySearch
  • Python中元组,字典,集合的易错题(含解析)
  • C++音视频开发:基础面试题
  • C++ 指针常量 常量指针
  • Docker 镜像打包为 ZIP 文件便于分享和转发
  • 【python】转移本地安装的python包
  • C++ 模板初阶
  • 海洋大地测量基准与水下导航系列之九我国海洋PNT最新技术进展(下)
  • opencv学习(单模块匹配)
  • 初始C语言---第四讲(数组)
  • C# 的委托和事件 总结
  • kong网关集成Safeline WAF 插件
  • 【深度学习】【三维重建】windows11环境配置PyTorch3d详细教程
  • JAVA国际版同城服务同城信息同城任务发布平台APP源码Android + IOS
  • 【RK3568 RTC 驱动开发详解】
  • JP3-3-MyClub后台后端(三)
  • C语言输入安全10大边界漏洞解析与防御
  • PyTorch 中 Tensor 统计学函数及相关概念
  • 数据结构初学习、单向链表
  • chrome的数据采集插件chat4data的使用
  • Oracle 11g RAC集群部署手册(三)
  • 12:java学习笔记:多维数组1
  • 面试实战,问题二十二,Java JDK 17 有哪些新特性,怎么回答
  • JavaScript:Ajax(异步通信技术)
  • 用 JavaSwing 开发经典横版射击游戏:从 0 到 1 实现简易 Contra-like 游戏
  • Highly Compressed Tokenizer Can Generate Without Training