从CSV文件生成RoC曲线

0 投票
2 回答
3697 浏览
提问于 2025-04-18 03:06

我该如何使用scikit-learn或其他Python库来为这样的CSV文件绘制ROC曲线:

1, 0.202
0, 0.203
0, 0.266
1, 0.264
0, 0.261
0, 0.291
.......

2 个回答

0

这不是针对 python 的答案,但如果你使用 R(可以去这个网站了解一下:http://www.r-project.org/),那就简单多了。

# load data
X <- read.table("mydata.csv", sep = ",")

# create and plot RoC curve
library(ROCR)
roc <- ROCR::performance(ROCR::prediction(X[,2], X[,1]), "tpr", "fpr")
plot(roc)

(你需要先通过 install.package("ROCR") 安装 RROCR 包)

2

在编程中,有时候我们需要处理一些数据,比如从一个地方获取数据,然后在另一个地方使用这些数据。这个过程就像是把水从一个水桶倒到另一个水桶里。

有些时候,我们会遇到一些问题,比如数据的格式不对,或者数据没有按照我们想要的方式排列。这就像是水桶的形状不一样,导致水倒不进去。

为了避免这些问题,我们可以使用一些工具或者方法来帮助我们整理和转换数据。就像我们可以用漏斗来帮助水顺利地流入另一个桶。

总之,处理数据的时候,我们需要注意数据的来源和格式,确保它们能够顺利地被使用。这样才能让我们的程序运行得更顺利。

import pandas as pd
import numpy as np
import pylab as pl
from sklearn.metrics import roc_curve, auc

df = pd.read_csv('filename.csv')

y_test = np.array(df)[:,0]
probas = np.array(df)[:,1]

# Compute ROC curve and area the curve
fpr, tpr, thresholds = roc_curve(y_test, probas)
roc_auc = auc(fpr, tpr)
print("Area under the ROC curve : %f" % roc_auc)

# Plot ROC curve
pl.clf()
pl.plot(fpr, tpr, label='ROC curve (area = %0.2f)' % roc_auc)
pl.plot([0, 1], [0, 1], 'k--')
pl.xlim([0.0, 1.0])
pl.ylim([0.0, 1.0])
pl.xlabel('False Positive Rate')
pl.ylabel('True Positive Rate')
pl.title('Receiver operating characteristic')
pl.legend(loc="lower right")
pl.show()

撰写回答