如何通过改变数据帧中的参数绘制ROC曲线

2024-10-07 16:32:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过改变数据帧中单元格中的变量,在一个图上绘制多条ROC曲线enter image description here

因此,在特定行中,如果总额高于某个阈值,则将其归类为发票。我想在不同的总阈值上绘制不同的曲线

这是迄今为止我所拥有的用于测量基本指标的代码,是一种绘制ROC曲线的尝试,但迄今为止我一直没有成功

import os
import pandas as pd 
from sklearn import datasets, metrics, model_selection, svm
from sklearn.metrics import precision_recall_fscore_support as score
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report
import scikitplot as skplt
import matplotlib.pyplot as plt
import numpy as np

df = pd.read_csv("test_results.csv", header = 0)
true_array = list(df["actual"].to_numpy())
predicted_array = list(df["predicted"].to_numpy())

accuracy  = accuracy_score(true_array, predicted_array)
precision, recall, fscore, support = score(true_array, predicted_array, average = None, labels = ['invoice', 'non-invoice'])

print("Labels: \t invoice", "non-invoice")
print('Accuracy: \t {}'.format(accuracy))
print('Precision: \t {}'.format(precision))
print('Recall: \t {}'.format(recall))
print('Fscore: \t {}'.format(fscore))

skplt.metrics.plot_roc_curve(true_array, predicted_array)
plt.show()

我得到的错误是

fpr[i],tpr[i],u=roc_曲线(y_真,概率[:,i], 索引器:数组的索引太多

任何帮助都将不胜感激


Tags: fromimporttrueformatas绘制invoicesklearn