You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Sklearn生成的ROC曲线数据导出至CSV文件?

用Sklearn生成ROC曲线并导出至CSV的便捷方法

核心实现思路

Sklearn的roc_curve函数会返回ROC曲线的核心数据:假阳性率(fpr)、真阳性率(tpr)、对应阈值(thresholds)。虽然没有像Keras CSVLogger那样的现成回调,但可以用Pandas或Python内置模块快速完成导出,操作同样简洁。

具体代码示例

1. 先生成ROC曲线基础数据

假设你已经得到模型预测概率值y_score和真实标签y_true:

from sklearn.metrics import roc_curve

# 生成ROC曲线的关键数据
fpr, tpr, thresholds = roc_curve(y_true, y_score)

2. 用Pandas一键导出(最便捷)

Pandas可以直接将数组组合成结构化表格,一行代码完成导出,和CSVLogger的易用性看齐:

import pandas as pd

# 封装数据为DataFrame
roc_df = pd.DataFrame({
    'False Positive Rate': fpr,
    'True Positive Rate': tpr,
    'Threshold': thresholds
})

# 导出至CSV(index=False避免写入行号)
roc_df.to_csv('roc_curve_data.csv', index=False)

3. 无Pandas的纯Python方案

如果不想额外依赖Pandas,用内置csv模块也能快速实现:

import csv

# 写入CSV文件
with open('roc_curve_data.csv', 'w', newline='') as csv_file:
    writer = csv.writer(csv_file)
    # 先写入表头
    writer.writerow(['False Positive Rate', 'True Positive Rate', 'Threshold'])
    # 逐行写入数据
    for fpr_val, tpr_val, thresh_val in zip(fpr, tpr, thresholds):
        writer.writerow([fpr_val, tpr_val, thresh_val])

额外提示

  • 导出的CSV包含ROC曲线所有采样点,可直接用于二次绘图、AUC计算或其他分析。
  • 如果需要在训练流程中自动记录ROC数据,可以把导出逻辑封装成函数,在每个训练轮次结束后调用,模拟Keras回调的使用方式。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 11:50:22