从CSV文件生成RoC曲线
我该如何使用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")
安装 R
的 ROCR
包)
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()